M44 op、va0、vc0 - どういう意味ですか? これは、頂点シェーダーの最初の行です。何度も見ますが、次のことを理解していません: Vc0 - 空の 3D マトリックス - オブジェクトの位置 Va0 - 頂点座標
ベクトルを行列に掛ける必要があるのはなぜですか?
前もって感謝します!
頂点シェーダーは、渡された頂点バッファー (va0) 内のすべての頂点を、vc0 (頂点定数レジスター 0) 内の渡された射影行列によって変換および回転します。
頂点バッファーは、レンダリングされるモデルの頂点のリストです。
射影行列は、モデルの matrix3D にカメラの matrix3D と PerspectiveMatrix3D の逆数を追加したものです。
perspectiveMatrix3D は次のように設定できます。
projectionmatrix.perspectiveFieldOfViewRH(45.0, swfWidth / swfHeight, 1, 15000);
...ここで、'45.0' は視野、'swfWidth / swfHeight' は幅と高さの比率、'1' はニア クリッピング プレーン、'15000' はファー クリッピング プレーンです。
モデルの頂点をシェーダーの射影行列で乗算すると、モデルがクリップ スペース内の正しい位置に向けられます。そのため、計算結果をすぐに出力位置レジスタ (op) に送信できます。