Looking for literally any comprehensible information on how to create custom render passes

Hello, I come from Unity, where I have experience creating custom render passes with their own buffers & draw calls (specifically, I implemented screen space reflection in URP myself, including a custom shader pass to draw metallic & roughness for whichever materials have that pass into a separate buffer).

I’ve been looking into how to do similar things with Unreal and I am getting desperate.

The documentation for things like the render dependency graph are made largely of code snippets with no context or information on where to use them, and are seemingly made with the assumption you already know a lot about unreal engine’s rendering code.

Peoples have also told me to just read the source code, which is pretty grating since it involves reading functions that are sometimes hundreds of lines long without knowing if the information I am looking for is even there (and most of the time it isn’t). On top of that I have ADHD, which makes the whole thing even worse.

Basically what I want to know is :

  • How to create a custom pass
  • How to create a buffer / render target in that pass (with depth & color)
  • How to draw specific meshes to that buffer
  • How to composite that buffer back over the screen buffer
  • Where to put all this code

The end goal being to replicate Sea of Thieves’s cloud rendering tech from this talk The Technical Art of Sea of Thieves - YouTube and to generally better understand how to modify and extend Unreal’s render pipeline

3 Likes

any updates to this?

I’ve been looking into unreal’s FSceneViewExtension. You can add a custom pass this way that is right before final post process pass, all at the project level.

I assume any deeper than this would be engine modifications. Either way, I assume this should give you a sufficient bread crumb trail to follow. I’ll link some tuts I’m looking at currently. Second link even has a compute shader :+1:

I gave up a while back
I knew about SVT but couldn’t find anything else, everyone else I asked about the subject condescended to me a whole lot about my lack of knowledge but didn’t give me any useful advice, since then I’ve gone back to unity/godot for render pipeline experiments and have also started learning openGL and Vulkan
It seems unlike unity you can’t really do anything clean with unreal’s render pipeline without prior out of engine experience with rendering APIs

3 Likes

that’s generally what I’m finding too. I hate how unreal sort of forces you to modify the engine if you want to make changes. The engine has been plagued with bugs since before 4.25 so, unless you have a team to handle engine stuff, you’re constantly chasing keeping up with the newest engine version. That makes it a nightmare to do something like custom engine changes when the core of the engine is changing so often.

1 Like