dcl_semantics (sm3 - ps asm)

Declare la asociación entre la salida del sombreador de vértices y la entrada del sombreador de píxeles.

Sintaxis

dcl_semantics [_centroid] dst[.write_mask]

 

Donde:

  • _semantics: identifica el uso de datos previsto y puede ser cualquiera de los valores de D3DDECLUSAGE (sin el prefijo D3DDECLUSAGE_). Además, se puede anexar un índice entero a la semántica para distinguir los parámetros que usan una semántica similar.
  • [_Centroid] es un modificador de instrucción opcional. Se admite en las instrucciones dcl_usage que declaran los registros de entrada y en las instrucciones de búsqueda de texturas. El centroide se anexa sin espacio.
  • dst: registro de destino. Consulte Registros de ps_3_0.
  • write_mask: el mismo registro de salida se puede declarar varias veces, cada vez con una máscara de escritura única (por lo que se pueden aplicar semánticas diferentes a componentes individuales). Sin embargo, no se puede usar la misma semántica varias veces en una declaración. Por tanto, los vectores deben ser cuatro componentes o menos y no pueden cruzar límites de registro de cuatro componentes (registros de salida individuales). Cuando se usa la semántica _psize, debe tener una máscara de escritura completa, ya que se considera escalar. Cuando se usa la semántica _position, debe tener una máscara de escritura completa, ya que deben escribirse los cuatro componentes.

Comentarios

Versiones del sombreador de píxeles 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
dcl_usage x x

 

Todas las instrucciones dcl_usage deben aparecer antes de la primera instrucción ejecutable.

Ejemplos de declaración

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)

Instrucciones del sombreador de píxeles

Ejemplo de suavizado de contorno