次の方法で共有


dcl_semantics (sm3 - ps asm)

頂点シェーダーの出力とピクセル シェーダーの入力の関係を宣言します。

構文

dcl_semantics [_centroid] dst[.write_mask]

この場合

  • _semantics:想定されたデータの使用方法を識別します。これは、D3DDECLUSAGE の任意の値を指定できます (D3DDECLUSAGE_ プレフィックスは取り除きます)。また、整数インデックスをセマンティクスに付加すると、同様のセマンティクスを使用するパラメーターを区別できます。
  • [_Centroid] はオプションの命令修飾子です。この修飾子は、入力レジスタを宣言する dcl_usage 命令およびテクスチャー参照命令でサポートされます。centroid は空白を入れずに追加します。
  • dst:デスティネーション レジスタです。「レジスタ - ps_3_0」を参照してください。
  • write_mask:同じデスティネーション レジスタを複数回宣言でき (したがって、個々の成分に対して複数のセマンティクスを適用でき)、宣言するたびに一意の書き込みマスクを指定することができます。ただし、宣言内では、同じセマンティクスを複数回使用することはできません。これは、ベクトルの成分は 4 つ以下でなければならず、4 成分のレジスタ境界 (個々の出力レジスタ) を越えてはならないことを意味します。_pointsize のセマンティクスを使用すると、スカラーと見なされるので、書き込みマスクを持たせる必要があります。_position のセマンティクスを使うと、4 成分すべてを書き込まなければならないので、完全書き込みマスクを持たせる必要があります。

解説 

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

最初の実行可能命令の前に、すべての dcl_usage 命令を指定する必要があります。

宣言の例

 ps_3_0  ; Declaring inputs dcl_normal      v0.xyz dcl_blendweight v0.w ; Must be same reg# as normal, matching vshader packing dcl_texcoord1   v1.y ; Mask can be any subset of mask from vshader semantic dcl_texcoord0   v1.zw; Has to be same reg# as texcoord1, to match vshader  ; Declaring samplers dcl_2d s0 dcl_2d s1  def c0, 0, 0, 0, 0  mov r0.x, v1.y ; texcoord1 mov r0.y, c0 texld r0, r0, s0  texld r1, v1.zw, s1 ... (output regs in ps_3_0 are same as ps_2_0: oC0-oC3, oDepth) 

関連項目

アンチエイリアス サンプル