Understanding the Purpose and Benefits of Accessing Unreal Engine’s Render Hardware Interface (RHI) in Compiled Builds

Apologies, looks like the original reply slipped through the notification cracks. I’m more focused on surface level engine mechanics, so I can’t confidently say much about the rendering core outside of my short excursions into it, though some of these can be done (or there is a workaround) without modifying the source.

  1. and 4. Unfortunately you can’t easily “remove” an opaque mesh from the standard Depth Pass without making it non-opaque ( for example translucent) or modifying engine source code. It’s also not easy to use CustomDepth here, as it’d need source edits. If possible, I’d lean into other non-opaque material types and just not utilize the transparency when it comes to needing custom depth and stencils. A skilled engine developer could probably get it working, but it may be more complicated than I expect.

  2. Without source edits, from what I can tell, the way the depth buffer is setup, it can’t be cleared mid operation as it would break rendering for everything that comes after the object. Though I’m no expert on that topic. Most users tend to either using Render After DOF or using Scene Captures.

Render after DOF method:

Scene Capture Method:

  1. Unreal actually has a built in imposter system just for this, and it’s usually what I recommend using over self rolled systems, but if you wanted to handle it yourself, you can still use the ImposterUVs material node to WPO to handle to orientation instead of handling WPO yourself. A plane’s WPO is really light, so I believe the performance requirements there are quite low.

https://dev.epicgames.com/documentation/en-us/unreal-engine/render-3d-imposter-sprites?application_version=4.27

Disclaimer: One or more of these links are unaffiliated with Epic Games. Epic Games is not liable for anything that may occur outside of this Unreal Engine domain. Please exercise your best judgment when following links outside of the forums.

1 Like