私の実際のコードをナビゲートする手間を省くために、私は問題を最も単純な形に縮小しようとしました。HLSL が提供するドット関数を使用しているときに、期待した結果を生成できません。私が含めている例では、2 つのベクトルの内積が 26 になると予想します。このコードを実行すると、常に 45 が返されます。この関数をピクセル シェーダー内に配置し、シェーダー モデル 2 を使用してコンパイルしています。助けてください! !!
float MyDotProblemSimplified() {
float3 vectorOne = (1.0, 2.0, 3.0);
float3 vectorTwo = (3.0, 4.0, 5.0);
float dotResult = dot(vectorOne, vectorTwo);
//Expected dotResult: 26
//Actual dotResult 45
return dotResult;
}