0

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

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

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

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

4

1 回答 1

0

好的,有两种解决方法,一种是老派的方法,使用模板计算被遮挡像素的数量并根据它缩放镜头光晕的精灵。

其他方式:现代方法,使用屏幕空间镜头光晕,隔离明亮像素(我推荐 HDR 渲染管道并使用高于 1.0 的亮度值来生成镜头光晕,但这取决于场景平均值和最大值)并生成重影,如下所示:

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

于 2015-03-27T09:28:59.067 回答