I’m using Forward Rendering and I can’t utilize any Buffer Visualization except for scene depth. The other visualizations are blacked out. I was looking for normal map specifically, but of course it’s an important tool to have all of the options available. I can’t find anything in the documentation about this.
Is there some settings that needs to be changed? Or is this just a Unreal Engine limitation?
forward rendering doesn’t use any buffers. it computes it all in one shader and writes it to the scene color output. i guess that’s why the visuallizers don’t work. you’d have to compile a ton of more debug combos to only passthru the required information for the specific visualizers. this adds unnecessary complexity to the shaders.
so… short answer is… this is likely normal and intended.
Ambient occlusion and custom depth/stencil should also be available if you have them enabled.
Interestingly I would have expected velocity to work too, but apparently it doesn’t which makes me wonder how motion blur is handled in forward.
Otherwise as glitchered said, forward shading doesn’t write/use gbuffers. This isn’t specific to Unreal, it’s specific to how forward rendering works and it’s one of the reasons why it can be less resource intensive than deferred.
Glitchered:
But what did Unreal developers do before before deferred rendering? Just output normal through the base color in material?
I’ve been messing around with godot as well, and there the visualization exist within forward rendering.
Arkiras:
I’ve turned of ambient occlusion (it had a grid like pattern to it, maybe it was dithering?). But that probably work as well.
Shouldn’t there be a tool for this without the gbuffer? Instead of manually change material outputs
Probably. That or they used the material preview, or they had visualizers that weren’t reliant on sampling the gbuffer data. Unreal has been deferred for over a decade though, since the earliest versions of UE4 when I first started using it. Can only speculate what it was like before that.
Old game dev tools weren’t exactly feature rich though so it wouldn’t surprise me at all to find out they had no good way of visualizing the scene normals back then.
in forward rendering you don’t need any scene normals, just tangent space and the light information. and you gotta know the local light limit per mesh. that should still be 4 dynamic lights (point or spot lamps) and 1 directional shadow cascade. like the mobile renderer. or did that change by now? are we at 8 forward lights yet? i dunno.
either way, to show world normals you’d have to compile or link a shader combo for every material in the scene that only samples the normal maps and writes that to the scene color for the visualizer.
@Arkiras if i look into source engine code they have baseline vertex shaders for the deformation and debug pixel shaders for this kinda visualizer stuff. it’s actually quite simple. just replace the pixel shader and link it. you gotta have proper coded pipelines between those 2 shader stages tho. the vs output gotta match the ps input. structured shaders.
But this is one feature which should be added. I was surprised when it didn’t work, and that there wasn’t any documentation about it. Otherwise they have a lost of feature which doesn’t work.
@glitchered Last I heard there was 4 dynamic lights, there are rarely big updates for forward rendering, somewhat forgotten hehe.
Thank you for the temporally solution with post processing, I will se if I give it a go. Right now I just output the normal as BaseColor and then keep some reference objects around with normal output as basecolor as well.
What can I do to poke epic about adding this to the engine?