一. Cube Texture:
cube texture顾名思义是一个立方体纹理,普通纹理一般是一张二维图,由二维坐标(u,v)决定贴图目标的像素点, 立方体纹理即是由一个立方体(六个面/六张纹理)每个面上的二维图组成,是一个包含了上下左右前后六个面的纹理组。因此在使用立方体纹理时也就不能简单的使用(u,v)坐标来对纹理采样,需要对二维纹理坐标扩展到三维,由三维坐标(u,v,w)确定某像素的颜色值信息。

二. Cube Texture与环境贴图:cube texture可以被用来实现环境贴图, 例如需要在某个对象身上的贴图反射出其所在周围的环境,如金属表面可以反射出周围环境,对周围环境的反射就可以用Cube Texture实现。 立方体纹理实现环境贴图的基本原理: 将物件周围的环境制作成立方体纹理,立方体的上下左右等面对应着贴图对象物体周围的环境,根据眼睛的位置物体对象的顶点发现可以计算出反射方向,由反射方向反射到立方体盒子的某个面上在从这个面获取纹理贴到物件顶点处.

具体步骤: 1. 创建立方体纹理,每个面的纹理可事先做好也可用摄像机在上下左右各个方向绘制到纹理。 2. 有点的法向量眼睛观察的方向可以计算出反射方向(如图 椭圆形物体上一点法线为n 眼睛方向为e 可以计算出反射方向r) 3. 根据计算出来的反射向量r 例如其值为( -0.26, 0.98, 0.31 ) 很容易可以发现该向量与Y轴正方向上的面相交。(也就是与向量x,y,z中最大的一个轴向的平面相交,也就是用分量中最大的轴向确定相交面) 4. 确定与哪个方向纹理相交之后用其他两个轴向坐标为UV坐标(-0.26,0.31)进行采样(当然还要将坐标归一化到(0,1)).
注: 对绘制对象的每个顶点按照以上方法即可实现环境纹理贴图.


锐亚教育

锐亚教育,游戏开发论坛|游戏制作人|游戏策划|游戏开发|独立游戏|游戏产业|游戏研发|游戏运营| unity|unity3d|unity3d官网|unity3d 教程|金融帝国3|8k8k8k|mcafee8.5i|游戏蛮牛|蛮牛 unity|蛮牛