代码改变世界

为bloom hdr加上传说中的star...

2010-05-29 16:04  六水  阅读(411)  评论(0编辑  收藏  举报
如引用,请注明出处:http://www.cnblogs.com/sixwater

 images/star.jpg


有太阳的时候,在某些角度观看水,就能看到非常强烈的反光,因此为bloom hdr加上传说中的star更能增强水的感染能力.不过帧速度是降了许多啊...本展示星光的质量也不高,静止后认真观看会发现星光还是比较粗糙的.但当人在场景里走的时候,就无所谓了.以后为了优化,甚至还可以继续降低质量.

以下是没有star的效果,确实减色不少...
 images/nostar.jpg


至于star的做法,是首先获取场景里高亮的部分,然后分四批(每批设定screenX/2 * screenY/2的渲染目标),分别在四个方向拼命地拉伸,直到你需要的长度.接着,再来一批,继续拉长,同时最后把四个合在一起.最后再跟原图合并....操作很简单,但这操作对帧速度很大,特别是当场景比较简单的时候.因为这个的复杂度只跟分辨率有关系,跟场景复杂度无关......

为了优化,可以把渲染目标设置为screenX/4 * screenY/4 ,这样一来,象素的操作马上降低为原来的1/4......,但结果是,那星星都比较粗,而且场景动起来的时,星光会闪的非常厉害,会有比较大的失真(太小的亮点就无法产生星光效果)

如果想进一步,可以降低PS里的操作的次数.现在每一批都会在一个方向上采样16 次进行混合......