|
|

楼主 |
发表于 2008-7-29 10:21:00
|
显示全部楼层
Re:向量与矩阵相乘的问题,求证一下
这两天又想了一下,似乎还是开始的想法正确点,就是DX里面算出来的是每列表示一个基
Ux Vx Wx
Uy Vy Wy
Uz Vz Wz
证据就是DX文档里面的D3DXMatrixLookAtLH(写摄像头的时候刚好又看了一下)里面的计算方法
zaxis = normal(At - Eye)
xaxis = normal(cross(Up, zaxis))
yaxis = cross(zaxis, xaxis)
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) l
这里很明显是按照列来保存的。
假如向量V(x,y,z,1) * matView,那结果是
x * xaxis.x + y * y * xaxis.y + z * xaxis.z + (-dot(xaxis, eye)) (后面几行省去)
这样的几何意义就很明显是把V向量投影到X基然后再平移-dot(xaxis, eye)个单位,
如果按照行保存的话就是:x * xaxis.x + y * y * yaxis.x + z * zaxis.x + (-dot(xaxis, eye)),这样的话就没有几何意义了。
如果保存为行的话只要右乘就可以了,结果跟第一种情况是一样的。
PS.希望大家再确认一下……基本概念搞错后果很严重=_= |
|