ソース レジスタのスィズル

命令の実行前に、ソース レジスタ内のデータがテンポラリ レジスタにコピーされます。スィズルとは、ソース レジスタの任意の要素をテンポラリ レジスタの任意の要素にコピーする機能をいいます。スィズルによってソース レジスタのデータが変更されることはありません。

要素のスィズル

次の表に示すように、スィズルはソース レジスタ データの個々の要素に適用することができます (r は有効な頂点シェーダー入力「レジスタ - vs_1_1」の 1 つです)。

要素修飾子 説明
r.[xyzw][xyzw][xyzw][xyzw] ソースのスィズル
  • 常に 4 つのすべての要素がコピーされます。指定した要素が 4 つより少ない場合は、最後の要素が繰り返されます (xy は .xyyy の意味になります)。成分が指定されない場合、x が繰り返されます (.xxxx)。
  • 要素は任意の順序で指定できます。v0.ywx は v0.ywxx になります。
  • rgba 要素を、それぞれ xyzw の代わりに使用できます (r は x、g は y に対応します。それ以降も同様です)。
  • exp、expp、log、logp、pow、rcp、rsq の各命令は、ソース レジスタの 1 つの要素のスィズルを実装します。これらの命令の結果は、4 つのすべてのデスティネーション レジスターの要素にコピーされます。

m3x2 - vsm3x3 - vsm4x3 - vsm4x4 - vs の各命令では、スィズルを使用できません。