gpt4 book ai didi

c++ - 使用 DX 缩放对象

转载 作者:行者123 更新时间:2023-11-28 06:02:02 25 4
gpt4 key购买 nike

我尝试使用这段代码缩放矩阵:

        D3DXMATRIX & rMatrix = m_Matrices[i];
D3DXMatrixScaling(&rMatrix, 2.0f, 2.0f, 2.0f);

i -> 在循环中定义

它们不会缩放对象。这很奇怪,因为如果我在更新网格矩阵世界的地方使用相同的代码,它们可以工作,但不是我需要的,因为在这个地方缩放所有对象,所以我需要在这里使用可以为某个对象定义缩放.

感谢您的帮助!

最佳答案

您没有缩放矩阵数组。您正在用相同的矩阵覆盖它们 [2 0 0 0 | 0 2 0 0 | 0 0 2 0 | 0 0 0 1]。您需要将原始矩阵与 D3DXMatrixScaling 返回的缩放矩阵相乘以连接它们。像这样的东西:

D3DXMATRIX scaleMatrix;
D3DXMatrixScaling(&scaleMatrix, 2.0f, 2.0f, 2.0f);
for( i = 0; i < /*...*/ )
D3DXMatrixMultiply(&m_Matrices[i], &m_Matrices[i], scaleMatrix);

顺便说一句,D3DXMath 和 D3DX9/D3DX10 的其余部分一样古老,根据 MSDN 弃用。 .

看看DirectXMathSimpleMath DirectXMath 的包装器。

关于c++ - 使用 DX 缩放对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33075805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com