对于图形学来说,空间转换通常与Vector4(x,y,z,w) 与Matrix联系在一起。
最常见的是model space向world space的转换。
相应的,从world space向model space转换就是逆矩阵做一个转换即可
---------------------------------------------------------------------------------------------------------------------------------------------------
今天遇到的问题和平面的空间转换有关。
简单说来就是给定从model space转换到world space的矩阵,mWorldTransform,如何把一个world space平面plane( x,y,z,w )转换到model space.
答案是:plane* mWorldTransform.Transpose();
推导:
平面定义为,
dot(WorldPos , plane)==0;
换算成现行代数矩阵既是WorldPos * plane.transpos() = 0;
WorldPos = ModelPos* WorldTransform;==>
ModelPos*WorldTransform*plane.Transpose() =0;==>
ModelPos* (plane* WorldTransform.Transpose).Transpose = 0;==>
平面从world space转入model space是用WorldTransform.Transform做即可。
原文链接: