一. 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)).
注: 對繪製對象的每個頂點按照以上方法即可實現環境紋理貼圖.