入れ換え (ピクセル シェーダ)
入れ換え (ピクセル シェーダ)
入れ換えとは、任意の入力レジスタ成分を、任意のテンポラリ レジスタ成分にコピーする能力を表す。入れ換えは、入力レジスタのデータに影響を与えない。入力レジスタのデータは、命令の実行前にテンポラリ レジスタにコピーされる。
ソースの入れ換え
ソースの入れ換えを使うと、入力レジスタの個々の成分は、レジスタが計算のために読み取られる前に同じ入力レジスタの 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 と同等のもの) を指定しなければならない。