I’m trying to get a feel on how to create a custom render pass. I don’t really know where to start. I’ve read the documentations Threaded Rendering in Unreal Engine | Unreal Engine 5.2 Documentation and Graphics Programming for Unreal Engine | Unreal Engine 5.2 Documentation. I don’t have experience in rendering and I would like to dig into it and get it. When I read the documentation, it explains what are the important graphics programming classes and the important functions that are called by which thread. It feels like I can call these functions by myself in a custom script and then modify the rendering process behaviour. As an exercice, I would like to create my own class, call all these important functions in it, reproduce the exact same behaviour the renderer has now and make the engine/my project use my custom renderer.
Can I program this code in my project? Which class should I extend? How should I make the project use my renderer?
When this will be done, I will try to modify the renderer. But I’ll think about that later.
As for why I want to learn this, it’s because I’m trying to learn the rendering process, so that I can evaluate by myself what I can and can’t do with it and why.
Start by looking in Source/Runtime/Renderer/Private/DeferredShadingRenderer.cpp at (line 782 in 4.10 branch, same file for the rest but can be at a different line)
and went through it step by step. I’m starting to feel a bit more comfortable than before with unreal deferred rendering.
If I want to create my custom renderer, do I create my own FSceneRenderer ?
The renderer is created in SceneRendering.cpp line 1660