ソース レジスタ スウィズリング (HLSL VS リファレンス)

命令が実行される前に、ソース レジスタ内のデータが一時レジスタにコピーされます。 Swizzling は、ソース レジスタ コンポーネントを一時レジスタ コンポーネントにコピーする機能を指します。 Swizzling はソース レジスタ データには影響しません。

コンポーネントのスウィズリング

次の表に示すように、ソース レジスタ データの個々のコンポーネントに swizzling を適用できます (ここで、 は有効な頂点シェーダー入力 Registers - vs_1_1 のいずれかです)。

コンポーネント修飾子 説明
r.[xyzw][xyzw][xyzw][xyzw] ソース スウィズル

 

  • 4 つのコンポーネントはすべて常にコピーされます。 4 つ未満のコンポーネントを指定すると、最後のコンポーネントが繰り返されます (xy は .xyyy を意味します)。 コンポーネントが指定されていない場合、x は繰り返されます (.xxxx)。
  • コンポーネントは任意の順序で表示できます。 v0.ywx は v0.ywxx になります。
  • rgba コンポーネントは、xyzw にそれぞれ使用できます (x の場合は r、b の場合は g など)。
  • これらの手順では、ソース レジスタの単一コンポーネント swizzles(exp、expp、log、logp、pow、rcp、rsq) を実装します。 これらの手順の結果は、4 つの宛先レジスタ コンポーネントすべてにコピーされます。

swizzling は、m3x2 - vsm3x3 - vsm4x3 - vsm4x4 - vs 命令では使用できません。

頂点シェーダー レジスタモディファイヤ