Official way to do custom post-processing with URP?

Now HDRP officially supports custom post-processing effects - what’s the plan for URP?

Are custom renderers capable of doing this? If so - are there any guides as I’m not sure where to start?

If not - what’s the plan?

4 Likes

Where did you get the information that the latest 2019.3 HDRP has official custom post processing method? Afaik, there is still no official way to do that yet? Or have I missed on some news?

https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@7.1/changelog/CHANGELOG.html

“Added Custom Post Processes with 3 injection points: Before Transparent, Before Post Process and After Post Process”

I did a quick test here to confirm it was working: https://github.com/IxxyXR/HDRP-Custom-Post-Processing-Test

Unity can you please clarify the official steps to do custom post effects? What on earth is going on?

2 Likes

just saw this,

“Custom post processes are back in #HDRP 7.1.1 + #Unity3d 2019.3!!! Integrated with the volume system. One must create script and shader templates and list the custom post processes inside the HDRP default settings.”

5042045--494519--EGV-nY-W4AAhOFd.png

*oops, missed that this was URP thread…

It will come to URP too

How do you know it will come to URP, and when?. Is this on a roadmap anywhere? I really need custom post processing on mobile VR, and at the moment I can’t find a way to do that in Unity.

2 Likes

You should periodically check the branches and commits on the scriptable render pipeline GitHub if you’re in a rush. Could pop up there any day. Or it could be in a year. Who knows?

1 Like

A bit confused over here too. The message seemed to point to the fact that URP is the new face LWRP and continue on it, but there seems to be an actual rewrite going on, I’m having a bunch of classes and extensions for QoL that I can’t really find how to fix…
what happened to PropertySheet, ParameterOverride’s, etc? Are they not available (or will-be-changed) for the time being?

After reading the above is it proper to say I should change my project back to standard mobile shaders and the post processing effects stack and or Blit effects if I want to do custom screen effects render passes for mobile devices?

1 Like

For all things mobile where you have control of what to use, I would strongly suggest using Legacy Built-In pipeline… I’m stuck on it and have no leverage on deciding what to use.

Can you point us to that GitHub?
I don’t fully get how URP works… can I choose LWRP and Post Processing Stack v2 on 2019.3? it’s installed, but I just can’t use it. The camera has changed completely and has post processing deeply embedded in it, seems to not accept Post Processing Volumes, just “Volumes” (the new ones).
There are many things with less features and/or broken, for example, Post Processing doesn’t respect the alpha channel anymore no matter what, so rendering 3D with post processing and then UI with fewer ones (say, only bloom) makes it impossible to mix them together afterwards because the alpha channel will be forced to full-on even if it is told to clear to a fully transparent color.

@AlejUb https://github.com/Unity-Technologies/ScriptableRenderPipeline

If you’re on 2019.3 you can either use URP or PostProcessing but not both. Ditch LWRP, it’s not needed. URP replaces it. URP has its own version of PostProcessing but it’s missing some important features. Unless you’re starting a new project and aren’t in any great rush for things such ambient occlusion then stick with the standard pipeline.

Wait, with custom render pass you can perform something very similar to old post process (in terms of results). It’s just that the way to do pp is quite different than before, and it’s only per command buffer.
Inside of this project: GitHub - Unity-Technologies/UniversalRenderingExamples: This project contains a collection of Custom Renderer examples. This will be updated as we refine the feature and add more options.
you will find a Blit custom render pass, which is basically what any standard post process does.

I’ve suspected this to be the case but the lack of any official docs, comment or any examples from Unity has made it fairly unclear. The examples they do provide are quite specialist and the only comments have been “custom PP is not supported in URP” so it’s not surprising that people have taken that statement at face value.

2 Likes

I totally agree! If I wasn’t forced to support old pp for our project (recently converted in URP) I wouldn’t have bothered. And it took me 2 days to convert a simple motion blur pp…

I gave up after getting builds working with the new pipelines. Nothing is stable or well documented and its more complex then it needs to be. So im back to learning the previous system cause it most resembles other systems in gl I have worked with with the Custom Buffers, but I still need to figure out its workflow still

Use ScriptableRenderPass for custom post processing
See this unity urp example GitHub - Unity-Technologies/UniversalRenderingExamples: This project contains a collection of Custom Renderer examples. This will be updated as we refine the feature and add more options.


2 Likes

PP2 will supportg 2019.3,see here.

neat but looks like the deprecate the same year. NOT promising

There is this post which has some additonal info: https://discussions.unity.com/t/769536 page-3#post-5466441

Our plan is the same as it has been which is to provide a nice template for custom post using the render feature/pass system. There is some work to be done before we are happy with saying ‘This is how it is done’ as there is a lack of a RT ‘ping-pong’ system, which is needed for perfomance.
We are also needing to add some more capabilities to the render pass system to allow passes to request data and if not available, generate it(this will be for things like depth, normals, color copy, etc), another feature missing is additional injection points so that if you are simply wanting to blit a shader over the screen after PPv3’s DOF and before it’s colour-grading then it is possible.

HDRP went down a different path becasue at an archetecture level they did not have a modular rendering system, which meant it was simpler for them to just copy the old system, but this is limiting once you get outside the realms of classic post processing.

As for an estamate, I cannot give one, right this minute we are not working on custom postprocessing but we are working on features to help better support making it easier later(the things I mentioned earlier), and interms of being able to do custom post processing, it is entirely possible to do now, and poeple have been doing it and making some cool stuff, the information to do it just isnt documented and finding examples can be hard.
We plan to have a simple sample shipped with the package in 7.4.0, it just missed 7.3.0 this week.

This is very much close to what we will be doing, and right now this paried with a VolumeComponent script will be rthe same as the builtin URP PPv3

PPv2 is only going in for the reason to provide custom PP now, like this instant, it was never intended to be part of URP and was designed for the Builtin renderer. We will depricate it and it will no longer be supported, but it will live in URP 19LTS for 2 years, we are hoping well before then that we have the work done to suppliment creating custom effects in URP.

These are part of the old PPv2 (which now you can still use if you choose to) but the PPv2 was reimagined as the Volume system, this is a much better and generic system that can be used for much more than post processing, it’s an intergral part of SRP and URP PPv3 uses it, HDRP uses it heavily for everything from lighting to skyboxes.