近来研究sandy,把学习心得写下:
eye:相机所在的位置
at:相机到目标的向量
up:向上的方向向量,书中介绍时为[0,1,0],而很多地方用[0,-1,0]
观察坐标系的z轴为:zaxis = normal(at - eye)
观察坐标系的x轴为:xaxis = normal(cross(up,zaxis))
观察坐标系的z轴为:yaxis = cross(zaxis,xaxis)
其中:normal为使单位向量化,cross为求两向量的法向量(单位向量)
dot为:轴 * eye.x + 轴 * eye.y + 轴 * eye.z
创建的矩阵为
-----------------------------------------------------------------------------------------------------
xaxis.x yaxis.x zaxis.x 0
xaxis.y yaxis.y zaxis.y 0
xaxis.z yaxis.z zaxis.z 0
-dot(xaxis,eye) -dot(yaxis,eye) -dot( zaxis,eye) 1
---------------------------------------------------------------------------------------------------
而在实际应用中变为,如下
-----------------------------------------------------------------------------
xaxis.x xaxis.y xaxis.z -dot(xaxis,eye)
yaxis.x yaxis.y yaxis.z -dot(yaxis,eye)
zaxis.x zaxis.y zaxis.z -dot(zaxis,eye)
0 0 0 1
-----------------------------------------------------------------------------