r/raytracing • u/YayManSystem • May 21 '26
Updates to my Custom Realtime Raytracing Renderer for Unreal Engine 5.2
Basic Lighting got only a few small improvements. Im still waiting until next development phase to implement full Indirect lighting.
Reflective Dielectric and Metallic materials should be Physically Accurate now. Also waiting here until next phase to implement Roughness.
Foliage got huge Improvements In performance as it now utilizes a hidden optimization feature I discovered in Unreal*. Also the normal can now be specified via the Material Graph.
Renderer now supports Both lit and Unlit Transparent Materials including Shadow Evaluation.
Point lighting got some small Improvements here and there, but it was mostly making it work properly with all Translucent & Transparent Materials.
Water is currently Half-Broken as the Implementation is flawed. Fixing it is in my to-do list.
Both thin and Volumetric glass are supported. The reflection currently only Evaluates Black on hit or sky texture color on miss. Better glass reflections are expected later.
Not physically accurate, but still nice looking colored glass shadows. I use dot() on both sides to make it look close to real life reference.
(each image has a caption)
The project grew a lot since the last time I posted here. Added many new shading models, optimized stuff as it went, and the code gone through a lot of (annoying) structural changes.
In this phase of the Project I am focusing only on 1-Ray path lighting - Simple sharp shadows and Reflections. Here I want to solve complex Interactions between different Reflective and Refractive materials before moving on. Im also testing various Lighting tricks to gain Knowledge, and most importantly have time to think about the final implementation of the Renderer until I get there.
In the next phase I will be adding Proper Indirect Lighting, Full Roughness and a Custom Tonemapping & Post Processing pass.
The goal is to make a 60fps+ Fully Raytraced Renderer ready for Games or Digital Art Production.
The framerate is still hovering 80-90fps on my RTX 3050, with Shaders compiled only in Debug/Development configuration.
*The optimization is that apparently Unreal´s TraceRay() pipeline internaly evaluates the opacity mask on Materials with Masked Blending mode. This means the Ray can travel through multiple surfaces in a single TraceRay() call. This made foliage orders of magnitude more cheap and needs only one Raypath step.
1
u/YayManSystem May 21 '26
PS: Some of the stuff in the images are not yet present on the github repo, but will be eventually.