|
1.GL_SPHERE_MAP
在这个模式下,其纹理坐标生成算法如下:
以u标识在视坐标系下原点到顶点的一个单位向量;
以n'标识在视坐标系下顶点的法向量;
以r=trans(rx,ry,rz)标识顶点的反射向量,则t可以由以下公式计算得到:
r=u-2*trans(n')(n'u);
另m=2*sqrt(rx*rx+ry*ry+(rz+1)*(rz+1)),则生成的坐标:
(S,T)=( rx/m+0.5, ry/m+0.5 ); //在这个情况下,指定R,Q坐标是非法的。
可以看出,这个模式是在平面上模拟了球面的反射效果。
请问下:
“m”的意义是什么?
生成的st坐标怎么就模拟了球面的反射呢?
2.GL_REFLECTION_MAP
在这里模式下,和GL_SPHERE_MAP一样,首先计算顶点的反射向量,然后将此向量值作为相应的纹理坐标:
(S,T,R)=(rx,ry,rz); //在这个情况下,指定Q坐标是非法的
请问下:
这个模式一般用在立方体贴图,请问,生成的str纹理坐标是怎么映射到6个立方体面纹理的呢?
|
|