命令が実行される前に、ソース レジスタ内のデータが一時レジスタにコピーされます。 スウィズリングとは、ソース レジスタ コンポーネントを任意の一時レジスタ コンポーネントにコピーする機能を指します。 スウィズリングはソース レジスタ データには影響しません。
コンポーネント スウィズリング
次の表に示すように、スウィズリングはソース レジスタ データの個々のコンポーネントに適用できます (レジスタ - vs_1_1 有効な頂点シェーダー入力の 1 つです)。
コンポーネント修飾子 | 形容 |
---|---|
r.[xyzw][xyzw][xyzw][xyzw] | ソース スウィズル |
- 4 つのコンポーネントはすべて常にコピーされます。 指定されたコンポーネントが 4 つ未満の場合、最後のコンポーネントが繰り返されます (xy は .xyyy を意味します)。 コンポーネントが指定されていない場合、x は繰り返されます (.xxxx)。
- コンポーネントは任意の順序で表示できます。 v0.ywx の結果は v0.ywxx になります。
- rgba 成分は、xyzw (x の場合は r、b の場合は g など) にそれぞれ使用できます。
- 次の手順では、ソース レジスタの単一コンポーネントスウィズル (exp、expp、log、logp、pow、rcp、rsq) を実装します。 これらの命令の結果は、4 つの宛先レジスタ コンポーネントすべてにコピーされます。
スウィズリングは、m3x2 (vs、m3x3 - vs、m4x3 - vs)、および m4x4 - vs 命令では使用できません。
関連トピック
-
頂点シェーダー レジスタ修飾子 を する