游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7842|回复: 0

Away3D之- 简单的后处理 灰度滤镜(GrayFilter)

[复制链接]

17

主题

44

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
发表于 2014-8-28 20:21:43 | 显示全部楼层 |阅读模式
灰度效果常被用于死亡世界,其实现方式是利用全屏后处理对每帧渲染的纹理图像进行灰度处理,在Away3D中利用Filter3DBase滤镜可以很容易的扩展出各种后处理效果。 其基本原理即:  每帧对场景及场景中所有对象进行渲染,渲染得到的图像数据并不直接绘制到后台缓冲区,而是绘制到纹理(RTT)然后对这张纹理进行处理并将最终结果传入缓冲区显示。

Away3D中滤镜的工作流程: 在每帧绘制的时候判断是否有滤镜效果 如果当前开启滤镜则先绘制到纹理,在对该纹理进行第二次绘制。



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


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




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




开灰度效果之后:




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-17 17:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表