Directx 11 Transformations

主要是三种坐标变换(在世界坐标系内的)

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;

扫描二维码关注公众号,回复: 3678481 查看本文章
vertexBufferDesc.ByteWidth = sizeof( Vertex ) * 8;

最后修改WVP变换矩阵的world矩阵为以上矩阵变换的结果即可。

注意:因为要画两个正方体,但我们顶点缓存中只有八个顶点,只够画一个,所以要用Drawindexed方法画两次

注意:画两个正方体要改变两次对应的WVP。而且Drawindexed方法中的索引个数也要改。

猜你喜欢

转载自blog.csdn.net/qq_40947718/article/details/79437390