Deferred renderpath: fix volumetric light combined with translucent materials #2523
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes an issue described in #2520 that would draw translucent materials on top of the volumetric light when using the deferred renderpath.
Previously the render order on deferred was
Volumetric Light -> World -> Translucenct Materials
, now it isWorld -> Translucent Materials -> Volumetric Light
. As a side effect, the world shader is now also subject to light scattering, but god rays still work exactly as before. We discussed this a little on the Discord server and came to the conclusion that this change is acceptable and more correct.I wasn't sure whether it is required to unbind depth for the volumetric lighting like it was done before, but it isn't done in the forward render path and it worked without issues on Krom (DirectX), html5 and HL (DirectX) on many different example files. On OpenGL platforms the depth un-binding is disabled anyways.