入れ換え (頂点シェーダ)
入れ換え (頂点シェーダ)
ソースの入れ換えを使うと、入力レジスタの個々の成分は、計算のためにレジスタを読み取る時に同じ入力レジスタの 4 成分のどの値でも取得できる。
ソースの入れ換え
たとえば、.zxxy 入れ換えの意味は次のとおりである。
- .x 成分は .z 成分の値を取得する。
- .y 成分は .x 成分の値を取得する。
- .z 成分は .x 成分の値を取得する。
- .w 成分は .y 成分の値を取得する。
成分の順序に制限はない。指定した成分が 4 つより少ない場合は、最後の成分がコピーされる。次に例を示す。
.xy = .xyyy
.wzx = .wzxx
.z = .zzzz
成分を指定しないと、入れ換えは適用されない。
一部の命令には、ソースの入れ換えに対して制限がある。それらの制限は、関連する各命令のリファレンス ページに記載されている。
頂点シェーダのバージョン | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
入れ換え | x | x | x | x | x | x |
任意の入れ換え
入れ換えは、任意の順序入力レジスタに適用できる。つまり、任意の入力レジスタが任意の成分マスクを、任意の順序で取得できる。
頂点シェーダのバージョン | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
任意の入れ換え | x | x | x | x | x | x |
複製入れ換え
1 つの成分を他の成分に複製またはコピーするには、複製入れ換えが使われる。つまり、.x、.y、.z、.w 入れ換え成分のいずれか 1 つだけ (または .r、.g、.b、.a) を指定しなければならない。