次の方法で共有


入れ換え (ピクセル シェーダ)

入れ換え (ピクセル シェーダ)

入れ換えとは、任意の入力レジスタ成分を、任意のテンポラリ レジスタ成分にコピーする能力を表す。入れ換えは、入力レジスタのデータに影響を与えない。入力レジスタのデータは、命令の実行前にテンポラリ レジスタにコピーされる。

ソースの入れ換え

ソースの入れ換えを使うと、入力レジスタの個々の成分は、レジスタが計算のために読み取られる前に同じ入力レジスタの 4 成分のいずれかの値を取得できる。

たとえば、.zxxy 入れ換えの意味は次のとおりである。

  • .x 成分は .z 成分の値を取得する。
  • .y 成分は .x 成分の値を取得する。
  • .z 成分は .x 成分の値を取得する。
  • .w 成分は .y 成分の値を取得する。

成分の順序に制限はない。指定した成分が 4 つより少ない場合は、最後の成分がコピーされる。次に例を示す。

.xy  = .xyyy
.wzx = .wzxx
.z   = .zzzz

成分を指定しないと、入れ換えは適用されない。

一部の命令には、ソースの入れ換えに対して制限がある。それらの制限は、関連する各命令のリファレンス ページに記載されている。

ピクセル シェーダのバージョン 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
入れ換え x x x x x x x x x

任意の入れ換え

入れ換えは、任意の順序で入力レジスタに適用できる。つまり、任意の入力レジスタが任意の成分マスクを、任意の順序で取得できる。

ピクセル シェーダのバージョン 1_1 1_2 1_3 1_4 2_0 2_sw 2_x 3_0 3_sw
任意の入れ換え x x x x

複製入れ換え

1 つの成分を他の成分に複製またはコピーするには、複製入れ換えが使われる。つまり、.x、.y、.z、.w 入れ換え成分のいずれか 1 つだけ (または .r、.g、.b、.a と同等のもの) を指定しなければならない。