灰度效果常被用于死亡世界,其实现方式是利用全屏后处理对每帧渲染的纹理图像进行灰度处理,在Away3D中利用Filter3DBase滤镜可以很容易的扩展出各种后处理效果。 其基本原理即:每帧对场景及场景中所有对象进行渲染,渲染得到的图像数据并不直接绘制到后台缓冲区,而是绘制到纹理(RTT)然后对这张纹理进行处理并将最终结果传入缓冲区显示。
Away3D中滤镜的工作流程: 在每帧绘制的时候判断是否有滤镜效果 如果当前开启滤镜则先绘制到纹理,在对该纹理进行第二次绘制。


实现灰度效果只需继承滤镜基类 (因为功能比较简单且直接绘制到后台缓冲故无需其他太多处理)

实现具体灰度效果绘制任务 ps 的主要算法对原纹理(每帧绘制场景的数据)采样得到颜色值ft0 对颜色值进行如下计算得到最终灰度效果ft0 *= fc0(r g b分别乘以常量分量)将r g b三个分量只和最为最终颜色值



绘制效果:开灰度效果之前:



开灰度效果之后:




锐亚教育

锐亚教育,游戏开发论坛|游戏制作人|游戏策划|游戏开发|独立游戏|游戏产业|游戏研发|游戏运营| unity|unity3d|unity3d官网|unity3d 教程|金融帝国3|8k8k8k|mcafee8.5i|游戏蛮牛|蛮牛 unity|蛮牛