模型视图投影(MVP):3D世界立方体定位及矩阵困惑咨询
关于Model/View矩阵与立方体定位的清晰解释
嘿,别担心,这俩矩阵的作用一开始确实容易搞混,我给你掰扯明白:
先搞懂两个矩阵的核心职责
- Model矩阵:管的是物体在世界空间里的摆放——把物体自身的局部坐标(你这里就是以立方体质心为原点的顶点坐标)转换成世界坐标。
- View矩阵:管的是相机的视角——把世界空间里的所有东西,转换成以相机为原点的“相机视角坐标”。你现在没写相机代码,默认相机就在(0,0,0),朝向通常是-z方向,所以View矩阵暂时可以当成单位矩阵(啥也不做)。
你的具体情况该怎么平移?
你的立方体顶点已经是以质心为基准定义的(质心在局部坐标的(0,0,0)),现在要把这个质心放到世界空间的(1,1,1)位置——那Model矩阵只需要做一个(1,1,1)的平移就够了!
举个例子:假设你的立方体局部顶点是(0.5, 0.5, 0.5)(质心右上前方的顶点),经过Model矩阵平移(1,1,1)后,这个顶点的世界坐标就变成(0.5+1, 0.5+1, 0.5+1)=(1.5,1.5,1.5),正好对应质心在(1,1,1)的立方体位置,完全符合你要的“右、上、远处”的摆放需求。
再补个容易混淆的点
如果以后你写了相机代码,比如相机要移动到某个位置,那时候才需要调整View矩阵。但现在相机固定在(0,0,0),完全不用碰View矩阵,只需要给Model矩阵加上(1,1,1)的平移变换就行。
内容的提问来源于stack exchange,提问作者SparkyNZ
相关产品推荐
相关产品推荐

