次の方法で共有


入れ換え (頂点シェーダ)

入れ換え (頂点シェーダ)

ソースの入れ換えを使うと、入力レジスタの個々の成分は、計算のためにレジスタを読み取る時に同じ入力レジスタの 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) を指定しなければならない。