Download

How do you do Render Programming in UE4?

Hey guys! How does Unreal’s rendering pipeline work? Any illustrations? Is there anything like Unity’s neat Frame Debugger that lets you visually step through each step of the rendering of a frame and see the engine’s components at work?

What are my options to plug into the engine pipeline?
- the custom shader node
- an API?
- the engine source – any systems for this? any examples? I hope I wouldn’t have to blindly hack through, or rewrite the renderer myself…

For example is anyone familiar with the unity Command Buffer? - That’s where I’m coming from.
Can I set up and inject my own mini render queue into UE4’s render pipeline? Can I access UE4’s GBuffers? Can I create my own GBuffers? Can I do my own deferred decals? My own raytraced Distance Fields? Lighting? Compute Shaders?
…Sorry for asking a lot of questions. :stuck_out_tongue:

Am I somehow missing the UE4 community for doing all this neat custom stuff? It’s weird that I see so many GPGPU or PCG or physics research demos made in Unity (which is a mediocre engine).

Cheers!

GPU profiler is the analogue for Unity’s frame debugger.

Custom material node allows you to add direct shading language code to your material.
You can also author your own shaders from scratch, without using material system.

For any kind of more advanced rendering pipeline modifications I’d say that would have to work through engine source for that.

Okay, that’s useful, thanks.
Note to others that the custom material node just has that small box where you can paste only something like a little function for a shader, not a full HLSL program.

I also found this sample project in the unrealenginewiki by accident. It says:

I’m guessing this is what you mean by “You can also author your own shaders from scratch, without using material system.”

This does not quite tell me much about UE’s GBuffers and pipeline, but it’s a start to know I can output to custom RenderTargets. - which frankly is baffling to me that such an Epic game engine has been able to go for so long without advertising or widely using multiple/custom RTs…

This link would be a good place to start for you.

There’s a set of “visualize” menu items that show all of the gbuffer components. As well as showing texel density, light map density, light coverage, overdraw, etc. Highly recommended to go spelunking!

Yes! https://docs.unrealengine.com/latest/INT/Engine/Performance/Visualizers/index.html
That’s not bad.
Thanks guys.

[Update]
Graphics programming in UE4 is actually a huge problem: https://forums.unrealengine.com/showthread.php?106655-Is-Epic-doing-anything-to-address-UE4-s-crippling-shader-problem&p=619377