Hello!
In our project we have a mechanism where the materials of trees and bushes becomes transparent as the camera gets near them - and consequently they will disappear from reflections. (left tree has Masked blend mode, right has Translucent)
[Image Removed]This behavior happens with both SSR and Lumen reflections. Planar reflection does display translucent objects but it’s not the ideal workaround for us.
Please correct me on the following at any point:
If my understanding is correct, on SSR this behavior is expected since it relies on the information of the Gbuffers, which translucency doesn’t write into. As for Lumen reflections, is it also expected? I scoured the source code and didn’t find any configs or cvars that would allow rays to hit transparent objects, only options that affect how translucent objects receive reflections.
If that’s correct, are there any plans to implement this feature into Lumen reflections in the future?
I appreciate any help,
João
[Attachment Removed]
Hello,
Thank you for reaching out.
I’ve been assigned this issue, and we will be looking into reflections of translucent objects for you.
[Attachment Removed]
Hello,
This ticket covers a solution that uses Lumen Hardware Ray Tracing:
[Content removed]
If that does not fit your needs, you can look into using the CVar “r.Lumen.ScreenTracingSource 1” to get screen traces for the translucent meshes.
Alternatively, if you cannot use hardware ray tracing, you could look into using “reflection proxies” - similar to Shadow Proxies, a lower-resolution copy of the mesh, with an opaque Material. It would be marked “Hidden In Game” and “Affect Indirect Lighting While Hidden “. Keep in mind this does add more primitives to the scene.
Please let us know if this helps.
[Attachment Removed]
Hello Stephen,
Thank you for the reply. I tried the fix from the ticket - translucent meshes are now visible in reflections and looks good after “r.Lumen.Reflections.ScreenTraces 0”, but meshes with Masked blend mode present an artifact which makes it unusable. [Image Removed]I also tried “r.Lumen.ScreenTracingSource 1”, but I cannot see translucent meshes in the reflection. ScreenTraces and Hardware raytracing is enabled. Am I missing something else?
[Attachment Removed]
Hello,
Screen tracing translucent might not show them if there isn’t an opaque surface covered by the translucent for the trace to hit. Since screen traces use the Scene Depth, and translucency does not write into Scene Depth, a translucent objects can have issues reflecting in this way.
It also matters what Translucency Pass your translucent Material uses. If it is using After Motion Blur, it will not be reflected, as that will blend the translucent into a different buffer later in the pipeline.
Regarding the issue with masked Materials, we have created a bug report:
Please let us know if this helps.
[Attachment Removed]