|
|
场景中的所有物体,既是受光体也是发光体, 所以物体最后的光照色彩是受周围物体反射光的影响, 但OPENGL提供的光照模型,并不拥有这种特性,以为基本光照模型都假定光源是一个点, 但在真实环境下, 辐射光源的并不是一个点而是一个有体积的物体. 这样如果将一个大体积的物体辐射的光源近似成一个点光源的话,就会很不真实的.在这个DEMO中,提供了一种新的光照方法来实现这种辐射度光照.
大体步骤如下:
1. 将场景渲染到一张cubemap中, 用来查询周围的光源辐射情况.
2. 在PS中, 以一个图素向四面八方均匀射出向量(采样向量越多,光照效果越真实), 通过向量查询cubemap, 同时有一个亮度系数lightfactor, 它等于辐射向量与当前图素法向量的夹角的余旋,既越靠近法线的采样向量, 采样得到的颜色所占的权重越大.
3. 最后将最后采样的颜色叠加, 得到此图素最后的色彩.
DEMO下载:
http://www.azure.com.cn/article.asp?id=199
|
|