最近接到一个策划需求,他想让玩家进入一个场景后整个屏幕变成灰白色,也就是ps中的去色效果。其实,很多游戏都有这种效果,一般是用在角色死亡后灵魂状态的场景渲染,说起来很简单,几句话的事儿。
1.用rendertarget把整个场景渲染到一张纹理上,或者把背缓拷贝到一张纹理,都可以。
2.把这张纹理放在屏幕的最上层,这时你看到的和之前的场景没什么不同,只不过它是先被渲染到这张纹理,然后再被绘制出来。
3.准备一个像素shader用来去色,去色算法是Gray = R*0.299 + G*0.587 + B*0.114; R = Gray; G = Gray;B = Gray; 注意要把计算后的Gray值分别付给输出像素的 R,G,B。
4.用写好的shader对这张纹理进行处理,这样你看到的就是经过灰化后的游戏场景了。
由于游戏还没上线,不方便把渲染后的场景效果图贴出来,这里只是简单的说说实现方法,希望能对你有所帮助。