镜头光晕在2D XNA 4.0场景

本文关键字:0场景 XNA 2D 镜头光晕 | 更新日期: 2023-09-27 18:13:25

我在XNA中创建实时场景,它是只使用精灵的2D场景(在quads上渲染,在精灵上使用alpha地图的标准spritebatch)。我想创建简单的镜头光晕,实际上只有光源周围的遮挡(我不需要相机中心的方向来抵消镜头光晕的多个精灵,等等)我基本上只需要计算光源精灵(小星星)渲染了多少像素,并根据它设置镜头光晕精灵的比例(如果精灵没有相关精灵的可见像素,则缩放为0)。

我知道如何在3D中做到这一点,我阅读了这篇文章并测试了一些东西:http://my.safaribooksonline.com/book/programming/game-programming/9781849691987/1dot-applying-special-effects/id286698039

我想问一下,在2D场景中,什么是最好和最便宜的方法(计算每个像素精度渲染/遮挡的精灵像素数量或类似的东西)。

我也知道模板缓冲可以帮助,但我不确定如何在这种情况下应用

镜头光晕在2D XNA 4.0场景

好的,有两种方法可以解决这个问题,一种是老式的方法,使用模板来计算遮挡像素的数量,并根据它来缩放镜头光晕的精灵。

其他方法:现代方法,使用屏幕空间镜头光晕,隔离明亮像素(我建议HDR渲染管道和使用高于1.0的亮度值来生成镜头光晕,但这取决于场景的平均值和最大值)和生成鬼,像这样:

https://www.youtube.com/watch?v=_A0nKfzbs80&列表= UUywPlxpmCZtuqOs6_bZEG9A