摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文 名“GPU编程与CG语言之阳春白雪下里巴人”
简单透明光照模型
简单透明光照模型不考虑透明物体对光的第二次折射、次表面散射,以及光在穿越透明物体时的强度衰减,只是简单的使用颜色调和的方法,即我们最终所看到的颜色,是物体表面的颜色和背景颜色的叠加。
如图 33 所示,透明物体位于视点与另一个不透明物体之间,透明物体的不透明度为t ,点A 为透明物体上的一点,点光源直接照射到A 点上产生的反射光强为ia , 视线穿过透明体与另一个物体相交处的光强为ib ,则点A 处的最终可观察的光强为:
ia和 ib都可以用前面所讲的光照模型进行计算。通过透射光方向计算透射光强,首先需要进行光线和空间物体的求交运算,以确定透射光的来源,这是非常消耗时间的,如果真的这样做,其实就是演变为光线跟踪算法了。为了保证实时性,在实际使用中,通常是根据入射光方向向量和法向量求取折射光方向,然后根据折射光方向检索环境纹理上的颜色值作为ib 。