在一个场景中,光滑的物体表面往往会映射出周围环境,想象一下,一款赛车游戏中,当你的车呼啸而过时,车身同时映射出周围的景色,流光飞扬。为了达到这样的效果,通常使用环境贴图技术。 光照定律:Snell定律和Fresnel定律
色散
1
光的色散分为正常色散和反常色散。 通常我们所说的色散都是指反常色散,即对光波透明的介质,其折射率随着波长的增加而减小。 天空中的彩虹也是由于光与水蒸气交互形成的色散现象。 正常色散公式: 柯西公式
2
环境贴图也称为反射贴图 reflection mapping ,用于模拟光滑表面对周围场景的映射效果。
3
环境贴图:在一副图片上展示周围的环境。环境贴图假设进行反射的光源和物体都在很远的位置,同时反射体不会反射自身。 最常用到的环境贴图是立方体环境贴图。 方法:将相机放置在环境的最中央,然后从上下左右前后6个方向拍摄周围环境,最后将这些信息投射到立方体的6个面上,所得到的纹理成为立方体环境贴图。 光滑表面对周围环境的映射,是由从场景出发的光线投射到光滑表面上然后被反射到人眼所形成的视觉效果。
4
环境贴图算法的步骤如下:1. 首先根据视线方向和法向量计算反射向量;2. 然后使用反射向量检索环境贴图上的纹理信息;3. 最后将该纹理信息融合到当像素颜色中。
5
环境贴图在Cg 语言中属于smaplerCUBE 类型变量,标准函数库中的texCUBE 函数提供依据反射方向向量检索环境贴图的功能。
复杂透明光照模型与次表面散射
1
光射入透明物体时会发生一次反射和折射,光从透明物体内射出时,又会发生一次反射和折射。
2
次表面散射是光射入半透明物体后再内部发生散射,最后射出物体并进入视野中产生的现象。次表面散射材质是高质量渲染中最复杂的材质之一,一个重要原因在于此表面散射物体内部的任何一点的光照度取决于体内其他点的光照度和材质本身的透光率。
3
GPU 编程精粹第一部的第16 章给出了一种次表面散射的实时近似模拟算法。