Hacker News new | ask | show | jobs
by jsheard 3382 days ago
There is one major difference in terms of graphics programming - deferred rendering doesn't work well in VR since it's incompatible with proper multisampled antialiasing, and the edge-detect and/or temporal AA methods typically used instead are too blurry when combined with the low perceived resolution of today's VR headsets.

For this reason there's been a trend back towards forward rendering, with some modern twists to efficiently handle many dynamic lights like deferred does. UE4 for example:

https://docs.unrealengine.com/latest/INT/Engine/Performance/... | https://youtu.be/6kfMVxNSowM?t=3046

1 comments

In the youtube video, they mention that moving lights can't cast shadows. https://youtu.be/6kfMVxNSowM?t=3276

That's a significant limitation for a modern technique.

Here's the full algorithm for anyone curious:

> The Forward Renderer works by culling lights and Reflection Captures to a frustum-space grid. Each pixel in the forward pass then iterates over the lights and Reflection Captures affecting it, sharing the material with them. Dynamic Shadows for Stationary Lights are computed beforehand and packed into channels of a screen-space shadow mask, leveraging the existing limit of 4 overlapping Stationary Lights.

That was a limitation of the initial implementation in UE4.14, not the technique itself. They iterated on it in UE4.15: https://www.unrealengine.com/blog/unreal-engine-4-15-release...

> Forward renderer now supports shadowing from movable lights and light functions.

> Only 4 shadow casting movable or stationary lights can overlap at any point in space, otherwise the movable lights will lose their shadows and an on-screen message will be displayed.

Excellent! Thanks for passing along the technique. This is an interesting evolution.