主要是三种坐标变换(在世界坐标系内的)
1:旋转 通过函数
XMMatrixRotationX/Y/Z/Axis
2:放大/缩小通过函数
XMMATRIX XMMatrixScaling
3:平移
XMMATRIX XMMatrixTranslation(
FLOAT OffsetX, // Units translated on the x-axis
FLOAT OffsetY, // Units translated on the y-axis
FLOAT OffsetZ // Units translated on the z-axis
)
想要把变换整合到一个矩阵中,只需要把变换矩阵相乘就可以了。但是要尤其注意对应的相乘顺序。
这节课学习的是画两个正方体,所以不仅要改顶点数据和索引数据。还要修改顶点缓存描述信息:
indexBufferDesc.ByteWidth = sizeof(DWORD) * 12 * 3;
和
vertexBufferDesc.ByteWidth = sizeof( Vertex ) * 8;
最后修改WVP变换矩阵的world矩阵为以上矩阵变换的结果即可。
注意:因为要画两个正方体,但我们顶点缓存中只有八个顶点,只够画一个,所以要用Drawindexed方法画两次
注意:画两个正方体要改变两次对应的WVP。而且Drawindexed方法中的索引个数也要改。