-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HDRP Support #7
Comments
May be a late update but what you're looking for is here: https://github.com/Unity-Technologies/ScriptableRenderPipeline/pull/4317 It's already merged into 7.x |
Unfortunately that's not quite what we need (yet). The custom passes can only be injected into the pipeline at certain points and none of the currently supported points ( We talked to some Unity engineers at the Unite conference about this and they're not very keen on adding new points at the moment. Their view is that each new point in the pipeline reduces their future flexibility because they have to keep those points consistent - they couldn't rearrange the render pipeline without breaking passes injected at these points. They said that once HDRP is released fully stable they might consider adding more points. |
I see, sorry then. I really loved wet stuff plugin, and I want to use it in every project I have, but HDRP is a real dealbreaker at the moment. I hope it gets sorted out. The link I provided solved a custom PP for my current project, so I thought it would solve it for wet stuff, too, but I should've considered the reflection pass too. I thought it just got it from reflection probe. |
Even if it's not quite what we needed, thanks very much for pointing it out to us! ❤️ |
Any plans to support URP? |
Unfortunately I don't think it's possible at the moment. The way that Wet Stuff works fundamentally requires a "Deferred" renderer, but URP is currently a "Forward" renderer. According to the FAQ there are plans to support a deferred mode for URP. When that is released we might be able to support it (it depends on exactly how the deferred renderer is implemented, if we can access/modify the data needed to apply the effect). |
Oh that's unfortunate. Thanks for the quick response :) |
2 years later still nothing on URP or HDRP . |
Why isn't HDRP supported yet? it has a Deferred renderer and there is also an LTS version available |
Unfortunately it's not as simple as HDRP having a deferred renderer. The renderer also needs to store information in a way that's compatible with the effect and available for the effect to modify in an efficient way. For a long time HDRP didn't allow access to that data, we think that it does now but we still need to investigate in detail. We have another asset coming out soon. Our plan is that when that's released we'll start working on investigating WetStuff:HDRP in detail. |
What about URP too? This is also a main blocker for most of new Unity projects... |
URP does support a deferred renderer, so in theory it's possible but the same caveat about efficient access still applies of course. We'll probably investigate URP support after looking into HDRP. |
Any chance this will ever be supported in URP and forward rendering? |
Unfortunately it almost certainly won't ever work with forward rendering - the way the effects works is by accessing and modifying the gbuffer (an important part of a deferred renderer). We'd have to come up with a completely new technique to work with a forward renderer. |
Hi, |
We'll probably wait a while for it to stabilise (Wet Stuff fiddles around with some of the renderer internals which are generally not intended to be stable and can be broken by minor updates, so we need to wait a while to make sure we can provide good support). It's definitely something we'll like to investigate in the future though. Since Deferred support in HDRP is much more mature than deferred support in URP I've created a separate issue to track URP support. |
Are there any news on this? Really looking forward to it! |
Unfortunately there's bad news on this: @TomGillen did an investigation last month to work out feasbility and came to the conclusion that's still not possible to build Wet Stuff for HDRP. He came up with three different ways to implement the effect (each with some slightly different tradeoffs) and did a writeup on each different technique (and ultimately why it wouldn't work with the limitations of HDRP). This means that there is no chance WetStuff:HDRP will be happening this year. There is a small chance it might become possible in the Unity 2022 release cycle (see the To summarise Tom's notes on the topic: GBuffer ModificationThis is how WetStuff works with the legacy renderer - directly reading and writing the data in the GBuffer. HDRP does not allow documented read/write access to the gbuffer. To quote this forum post:
There are workarounds to get access to the GBuffer, but they could break at any time so we can't use that in an asset. HDRP DecalsHDRP includes a fairly powerful decal system, this renders to a screen space buffer which is then blended into both deferred and forward materials later. This would actually be a huge improvement on WetStuff because it would apply to all materials (even forward rendered!). However, WetStuff requires access to Shader Replacement (Shader Graph)End users can modify HDRP built in shaders through shader graph. There are master nodes for all of the HDRP shaders (Lit, StackLit, etc) which allow you to plug in material properties and it does the rest. It would be quite simple to create our own Shader Graph block which applies the material modifications we need and plug that into these master nodes. However, these master nodes require setting many of the shader's feature flags in the graph node settings; they are not exposed in the material settings when the shader is used. This means we would need a Shader Graph for every permutation of every feature flag (of which there are many), which is completely impractical. |
Did you guys evaluate the option of using Better Shaders? Might be an alternative. |
For the people who are trying to do a wet effect with hdrp it seems that another package is available on unity HDRP - Wet Shaders and another guy made something call Better Lit Shader and both seems to do the same effect. FYI I didn't try those yet. Sry for WetSurfaceDecals but the purpose here is to find solution for endusers. Hope you will understand it. |
These don't do quite the same thing as Wet Stuff. Both of them require swapping out the material on an object to make the entire object look wet. This is kind of the opposite of Wet Stuff which allows you to place decals that make everything within the decal look wet (no matter what material it uses). Both approaches have their advantages - for example it might make sense to make big things (e.g. roads) in your scene use
We didn't, but I don't think we could depend on users buying a €71 to make our €15 asset work :( |
For clarity, Better Shaders doesn't require the user to buy Better Shader to use the resulting shaders created with it. It can export to a single file which, at import time, becomes the shader for the installed pipeline (and SRP version), and thus acts like a universal shader that just works on all pipelines. |
I asked Jason to contribute since I'm not familiar with the technical details. All I can tell is that he was able to pull off what Unity couldn't: Create a unified shader for all render pipelines. It's an option that would also get you to URP. I love Wet Stuff and I'd really love to see it in other render pipelines. |
Oh that is interesting, I'll take a closer look at it. If that works then it might enable us to do option 3 (material replacement). |
The nice thing you can do is write all of your wet shader stuff as a stackable- basically Better Shaders allows you to chain multiple shaders together kind of like a photoshop stack- then you could ship your replacement shader for HDRP, but include the stackable's source so anyone who wants to add support for your system can easily add it by stacking your code onto theirs (assuming they are writing their shaders with Better Shaders). Better Shaders has an example for puddles, which also does wetness, like this, and there are a bunch of integrations for shaders included as stackables (vegetation studio, bakery, etc). It makes it much easier for asset store authors to include each others stuff.. |
Any updates? |
Tom has spent the last couple of days investigating using Better Shaders to build a new version of Wet Stuff that's compatible with HDRP/URP, unfortunately it looks like it still doesn't solve all of the problems. The concept is good, but the base shaders are missing a number of features compared to the standard HDRP ones, so users of Wet Stuff would find themselves missing out on certain HDRP features (or we would have to re-implement e.g. our own base lit shader and keep it on par with HDRP/URP over time). |
Fingers crossed, this is the only wet solution that makes everything consistent and realistic |
True, true... [Having a Bud]! 😻 🥳🎉 |
Better Shaders is an authoring system, and supports all HDRP inputs- the
examples are just examples- and are not trying to be a replacement for the
HDRP shaders. But you can implement any feature of an HDRP shader in Better
Shaders.
…On Fri, May 27, 2022 at 2:40 PM Martin Evans ***@***.***> wrote:
Tom has spent the last couple of days investigating using Better Shaders
to build a new version of Wet Stuff that's compatible with HDRP/URP,
unfortunately it looks like it still doesn't solve all of the problems. The
concept is good, but the base shaders are missing a number of features
compared to the standard HDRP ones, so users of Wet Stuff would find
themselves missing out on certain HDRP features (or we would have to
re-implement e.g. our own base lit shader and keep it on par with HDRP/URP
over time).
—
Reply to this email directly, view it on GitHub
<#7 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADAWC67O7UNOTXMFIOKIZG3VMEJI7ANCNFSM4FRHTZMA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
The problem as I understand it (please do tell me if I'm wrong!) is that if we wanted to ship an asset that required using better shaders it would be easy - we'd just ship a wet stuff shader which could be added into any better shaders stack. However, we don't want to require the end user owns better shaders! Instead we would have to precompile all of the shaders for the package, which would mean we would need a complete replacement shader for HDRP materials with all features included (which is a moving target and would probably require hundreds of variants compiled). |
Nope. You just create a shader using Better Shaders stack. |
I think SpaceGraphicsToolkit may actually be a good demonstration of the problem with a better shaders based approach. With the way Wet Stuff works in the legacy renderer if you wanted to make the surface of a planet look wet you could do that easily - you render the planet with SGT materials and then WS tweaks the GBuffer to make it look wet, the two shaders are completely independent. However, if we've published a set of shaders which include the wetness effect then you can either use the SGT planet shader or the WS replacement shader. Not being able to do the overlaid wetness in decals really make the system much less useful. |
Hi, Screen Space Wetness from the HDRP Custom Pass. Can be seen at the bottom. I wonder if this would also be done with snow D; |
HDRP custom passes were an option we evaluated quite a while ago. I asked @TomGillen about why we couldn't use custom passes:
|
What do you think about this one? It's also made with custom passes Rough explanation from author: "for the collision detection I created a standard orthograpic camera and used the custom renderer API so that only the depth are rendered into a singlechannel 128x128 render texture where each pixel is a half unit. |
That's a very cool way to generate the decal map! We considered something similar early on in the development of Wet Stuff but thought it would probably be too expensive and never prototyped it, I wish we had after seeing that video! However generating the decal map is only the first stage in deciding what things in the scene are wet, after that you need to modify things to actually look wet. I would imagine this effect will probably have the same limitations as mentioned in my previous comment about custom passes - i.e. it will only look correct on some materials and not others because the relevant information isn't available in a custom pass. |
I would really thankful for the URP compatible version, even if it's not that good. Please could you share that with us? I would happily pay for that on unity asset store. |
I'm afraid we've stopped working on URP and/or HDRP support. None of the things Tom prototyped ever quite solved the problem in a usable way :( |
That's a pity, but it can't be helped. Perhaps if down the line I am working on a project that has the budget for it, I could try and commission a custom implementation from you guys. Something that wouldn't need to keep up with future versions of Unity. At the very least, I'd gladly pay just to access your expertise. |
Wet Stuff currently does not support the High Definition Render Pipeline. There are a few issues that need to be resolved:
The final issue is the only major blocker here. Currently, the HDRP does not respect
Camera.AddCommandBuffer
, nor does it have its own equivalent API. We may need to submit our own PR to Unity to add this functionality ourselves. Alternatively, we may need to provide instructions for users on how to import the HDRP from source and make the modifications themselves, or fork the HDRP ourselves.Forum thread regarding Camera.AddCommandBuffer: https://forum.unity.com/threads/hdrp-how-to-render-anything-custom.592093/
Updates
If you are interested in updates to HDRP support for Wet Stuff "Subscribe" to this issue. We'll post an update here as soon as there's some news!
The text was updated successfully, but these errors were encountered: