所谓环境贴图或反射贴图,即利用预先制作的保存了周围环境的纹理贴图,实现模型表面对周围环境的反射效果,它与实时反射相对,实现简单、运行效率高。
1.球形纹理(SphereMapping),即将周围环境在一个球面镜上的成像存储在一张贴图里。
利用球形纹理实现反射效果时,第一,要求反射环境与反射表面距离很远;第二,要求反射表面是凸的。
利用glTexGen为环境纹理映射生成球形纹理的纹理坐标需要使用的坐标生成模式为:GL_SPHERE_MAP
使用球形纹理生成的反射效果是与视点密切相关的,同一张球形环境纹理往往不能用于多角度的反射效果
2.立方体纹理(CubeMapping),使用构成立方体六个表面的六张贴图存储周围环境影像。
利用glTexGen为环境纹理映射生成立方体纹理的纹理坐标需要使用的坐标生成模式为:GL_REFELECTION_MAP
使用立方体纹理生成的反射效果与实际反射情况基本一致,在视点移动时,反射图像随之连续变化
无论是那种反射贴图,实现的都是一种“虚假”的反射效果,要实现“实时”反射还是需要RayTracing。
另一种折中的方案是,使用反射贴图实现对大背景的反射效果,而使用RayTracing实时反射实现对动态周围动态物体的反射。