2

ピクセル シェーダー (バージョン 3.0) を作成し、fxc コマンドでコンパイルしました。コンパイルに問題はありませんでしたが、理解できないことがあります。

文書化されていない動作を持つスウィズリング操作がいくつかありました。次に例を示します。

r1.xyz、-r0.z、c3 を追加

(r1.xyz の長さは 3、-r0.z の長さは 1、c3 の長さは 4)

オペランド/結果レジスタの長さが同じでない場合、r1 の各ベクトル コンポーネントにどの値が書き込まれるかを知っている人はいますか?

http://msdn.microsoft.com/en-us/library/windows/desktop/bb172242(v=vs.85).aspxのドキュメントは、このケースについて明確ではありません。ドキュメンテーションの一部では、オペランドが結果よりもチャネル文字が少ない場合、最後の文字が繰り返されると述べています。ただし、オペランドに結果よりも多くの文字がある場合、またはオペランドに文字がまったくない場合 (および結果に 4 つのコンポーネントがない場合) に何が起こるかについては述べていません。

ありがとう

4

1 に答える 1

1

結果は次のようになります: r1.xyz = -r0.zzz + c3.xyz

http://msdn.microsoft.com/en-us/library/windows/desktop/bb219869(v=vs.85).aspx および http://msdn.microsoft.com/en-us/library/windows/を参照してください。デスクトップ/bb219870(v=vs.85).aspx

于 2012-11-13T21:49:33.137 に答える