A few days ago I had a chance to attend and speak at Digital Dragons 2017 about rendering in Shadow Warrior 2. It was a total blast – very pro organized, had a honor to meet some incredible people and listen to some very inspiring talks. Anyway, if you are interested in the presentation (with notes), you can download it here – “Rendering of Shadow Warrior 2”.
-
Recent Posts
C++ CELL Conference Global Illumination Graphics Lighting Multithreading PBR Post Processing Shader Tools
Follow me on Twitter
My Tweets
Thanks! I found these slides very interesting.
LikeLike
Thank you!
LikeLike
Realtime indirectdiffuseandindirectspecularlighting, cool. But how to blend between the env cubemap?Thanks.
LikeLike
Blending is done in a deferred pass. Its very similar to rendering lights in a deferred renderer. I just draw every shape of local environment map into a light buffer and use alpha blending to falloff on the edges (similar to lights, you can do that in one tiled compute shader too).
LikeLike
Thanks for your reply. I think in any pixel, the sum of all local env map’s blend factor should equal to 1, right? So, how to calculate the blend factor? Or just falloff every env map to zero on the edges? Thanks.
LikeLike
Yes, in every pixel sum of all env map blend factors should be 1. This is why instead of additive blend (like for lights) you need to use alpha blend. And again yes – you need to falloff every env map alpha to zero on the edges in order to hide harsh transitions. E.g. first draw a global env map, then draw your local env maps with some alpha falloff on the borders and alpha blend mode.
LikeLike
Cool, use this method, we can put local env map in any position, don’t need to consider the intersect of each env map volume, and calculate blend factor is easy. Thanks.
LikeLike