反射效果:
在上一期的帧数解析中水面效果出现的并不多,所以今天直接来看一看这个大大的游泳池。
和之前一样,这个场景也是有一个个环境块图组成的,用来实现周围物体在本体上的反射效果,例如图中的游泳池扶手就是通过这个块图内容进行反射渲染。
首先我们放出泳池水呈现出来之前的图像,由于水面呈现是截然不同的步骤,所以上面的块图中并没有反射出来。
反射贴图:
首先建立平面反射图,分辨率不需要太高,240X120即可,这个步骤类似于之前块图的构成,但这次缓冲区的数据将会包括人物和梯子。下图是直接用的水面视角反射,随后做对称采样就可以获得正确的反射了。
折射贴图:
游泳池画面的一部分被提取出来,利用水面折射光将影响到的范围来创建折射贴图,折射光是太阳光摄入水面后再从水中射出的效果。
同时要注意画面中的不透明水,水越深画面中颜色表现越蓝,折射效果越弱,随后加入焦散效果(间接照明光线(即光子)从光源发射出来后,先经过一次(或多次)表面反、折射作用,再投射到某个扩散表面上),这样处理后最终获得的折射贴图大小只有初始图缓冲内容的一半大小左右。
结合缓冲区内容:
将上面所产生各个缓冲区的内容结合,就能够得到一个水面多边形图像,通过对图像中的多边形法线进行抖动处理得到了水体的运动效果,但这只适用于小面积的水域,如果是大面积的水体如海洋就不能够单纯使用法线震动来获得运动效果,需要在渲染过程中改变每一帧的顶点位置从而得到海洋的波动。
镜面效果:
镜面采用的渲染方式和水面是同样的方式,只是更加简单,因为镜面背后是不会产生反射效果的,但是由于镜面没有凹凸不平的地方,是完全光滑的平面,因此不能用抖动处理来遮盖低分辨率的贴图,这里为了得到反射效果更好的镜面只能够适当提高分辨率。
由于镜面的反射渲染相当耗时耗力,因此同一场景内远处的镜面都将会采用黑色四边形块图处理,这样将会大大减少渲染时间,也减轻生成后对于显卡的压力。
0