1、立方体纹理
立方体纹理(CubeMap)是一种特殊的纹理类型,立方体纹理包含6个独立的二维纹理,分别对应一个立方体的六个面
分别为:
- 正X面(右):+X;负X面(左):-X
- 正Y面(上):+Y;负Y面(下):-Y
- 正Z面(前):+Z;负Z面(后):-Z
注意:这个轴向就是Unity中的世界坐标轴向
2、立方体纹理用途
立方体纹理(CubeMap)在图形编程中常见的用途有:
(1)环境映射:
用于模拟反射环境的效果,用立方体纹理存储周围环境的图像,当应用到反射表面时,可以让物体看起来像是在反射其周围的环境。
(2)天空盒
用于渲染天空盒,将立方体纹理的六个面映射到一个立方体内表面,从而模拟天空、云朵、远处的山脉等环境
(3)全景图
用于展示全景图像、视频,通过立方体纹理来存储全景照片、视频的六个部分等等
3、如何采样
对立方体纹理进行采样,我们需要提供一个三维的纹理坐标,该坐标表示了我们在世界空间下的一个三维方向。这个方向向量从立方体的中心出发,当它向外延伸时就会和6个纹理之一相交,采样结果就是由该交点计算而来!
4、优缺点
优点:
- 多用途:可以有效的模拟环境映射和全景效果,如反射、折射、天空盒、环境光照等
- 无缝连接:立方体纹理设计为无缝连接着六个面,