これは私を夢中にさせています!どんな助けでも大歓迎です。
画面に描画される 3D モデルがあります。これは間違いなく機能し、モデルは画面の境界内にあります。いくつかの頂点の CPU 上の画面座標を計算したいと考えています。
これを行うには、頂点シェーダーと同じ方法で、これらの頂点の位置をモデル/ビュー/投影マトリックスで乗算します。
XMVECTOR pos = XMVectorSet(input.x, input.y, input.z, 1);
pos = XMVector3Transform(pos, XMLoadFloat4x4(&m_constantBufferData.model));
pos = XMVector3Transform(pos, XMLoadFloat4x4(&m_constantBufferData.view));
pos = XMVector3Transform(pos, XMLoadFloat4x4(&m_constantBufferData.projection));
次に、pos.X と pos.Y を pos.Z で割ります。
pos の結果をどのように解釈しますか? X 座標と Y 座標が 0 から 1、または -1 から 1 の間にあることを期待していましたが、-3 などの数値を取得しています。私は何か間違ったことをしていますか?
記録として、これは頂点シェーダーの一部です。
float4 pos = float4(input.pos, 1.0f);
pos = mul(pos, model);
pos = mul(pos, view);
pos = mul(pos, projection);
output.pos = pos;
助けてくれてありがとう!:)