Dynamic lights into surface lightmaps #262
MattHorn25
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This is a complex feature, certainly something for the long term - but I think it's worth bringing up as a goal:
Retroquad, the fully software-based Quake engine being developed by mankrip, has recently shown its realtime software-raytraced solution for dynamic lights:
The key part about this solution is not just that it raytraces the light, but that it does so into the surface lightmaps: "This feature performs traces in world space, from dynamic point lights to each coordinate in the surface's lightmap, to check for collisions against the world geometry. It's a straightforward approach with no bouncing and no PBR features."
That means every dynamic light not only gets accurate shadows but is fully visually integrated into the scene, always matching all preexisting baked lighting regardless of circumstance. This makes it aesthetically superior to any per-pixel solution.
While there's certainly room for per-pixel lighting in engines like Darkplaces, I think that for any engine that aims to preserve the Quake aesthetic the dynamic lighting should be rendered into surface lightmaps - plus, this technique being so low-frequency means low performance requirements (no hardware RT required, demonstrably performant even on CPU) and computing bounces is unnecessary (except as a potential high-end option).
(Worth mentioning that Retroquad is GPLv2 licensed, though as a software renderer I'm sure its implementation can at most be used as reference.)
Beta Was this translation helpful? Give feedback.
All reactions