Enumeración D3DRENDERSTATETYPE

Los estados de representación definen estados de configuración para todo tipo de procesamiento de vértices y píxeles. Algunos estados de representación configuran el procesamiento de vértices y algunos configuran el procesamiento de píxeles (consulta Estados de representación (Direct3D 9)). Los estados de representación se pueden guardar y restaurar mediante los bloqueos de estado (consulta State Blocks Save and Restore State (Direct3D 9)).

Syntax

typedef enum D3DRENDERSTATETYPE { 
  D3DRS_ZENABLE                     = 7,
  D3DRS_FILLMODE                    = 8,
  D3DRS_SHADEMODE                   = 9,
  D3DRS_ZWRITEENABLE                = 14,
  D3DRS_ALPHATESTENABLE             = 15,
  D3DRS_LASTPIXEL                   = 16,
  D3DRS_SRCBLEND                    = 19,
  D3DRS_DESTBLEND                   = 20,
  D3DRS_CULLMODE                    = 22,
  D3DRS_ZFUNC                       = 23,
  D3DRS_ALPHAREF                    = 24,
  D3DRS_ALPHAFUNC                   = 25,
  D3DRS_DITHERENABLE                = 26,
  D3DRS_ALPHABLENDENABLE            = 27,
  D3DRS_FOGENABLE                   = 28,
  D3DRS_SPECULARENABLE              = 29,
  D3DRS_FOGCOLOR                    = 34,
  D3DRS_FOGTABLEMODE                = 35,
  D3DRS_FOGSTART                    = 36,
  D3DRS_FOGEND                      = 37,
  D3DRS_FOGDENSITY                  = 38,
  D3DRS_RANGEFOGENABLE              = 48,
  D3DRS_STENCILENABLE               = 52,
  D3DRS_STENCILFAIL                 = 53,
  D3DRS_STENCILZFAIL                = 54,
  D3DRS_STENCILPASS                 = 55,
  D3DRS_STENCILFUNC                 = 56,
  D3DRS_STENCILREF                  = 57,
  D3DRS_STENCILMASK                 = 58,
  D3DRS_STENCILWRITEMASK            = 59,
  D3DRS_TEXTUREFACTOR               = 60,
  D3DRS_WRAP0                       = 128,
  D3DRS_WRAP1                       = 129,
  D3DRS_WRAP2                       = 130,
  D3DRS_WRAP3                       = 131,
  D3DRS_WRAP4                       = 132,
  D3DRS_WRAP5                       = 133,
  D3DRS_WRAP6                       = 134,
  D3DRS_WRAP7                       = 135,
  D3DRS_CLIPPING                    = 136,
  D3DRS_LIGHTING                    = 137,
  D3DRS_AMBIENT                     = 139,
  D3DRS_FOGVERTEXMODE               = 140,
  D3DRS_COLORVERTEX                 = 141,
  D3DRS_LOCALVIEWER                 = 142,
  D3DRS_NORMALIZENORMALS            = 143,
  D3DRS_DIFFUSEMATERIALSOURCE       = 145,
  D3DRS_SPECULARMATERIALSOURCE      = 146,
  D3DRS_AMBIENTMATERIALSOURCE       = 147,
  D3DRS_EMISSIVEMATERIALSOURCE      = 148,
  D3DRS_VERTEXBLEND                 = 151,
  D3DRS_CLIPPLANEENABLE             = 152,
  D3DRS_POINTSIZE                   = 154,
  D3DRS_POINTSIZE_MIN               = 155,
  D3DRS_POINTSPRITEENABLE           = 156,
  D3DRS_POINTSCALEENABLE            = 157,
  D3DRS_POINTSCALE_A                = 158,
  D3DRS_POINTSCALE_B                = 159,
  D3DRS_POINTSCALE_C                = 160,
  D3DRS_MULTISAMPLEANTIALIAS        = 161,
  D3DRS_MULTISAMPLEMASK             = 162,
  D3DRS_PATCHEDGESTYLE              = 163,
  D3DRS_DEBUGMONITORTOKEN           = 165,
  D3DRS_POINTSIZE_MAX               = 166,
  D3DRS_INDEXEDVERTEXBLENDENABLE    = 167,
  D3DRS_COLORWRITEENABLE            = 168,
  D3DRS_TWEENFACTOR                 = 170,
  D3DRS_BLENDOP                     = 171,
  D3DRS_POSITIONDEGREE              = 172,
  D3DRS_NORMALDEGREE                = 173,
  D3DRS_SCISSORTESTENABLE           = 174,
  D3DRS_SLOPESCALEDEPTHBIAS         = 175,
  D3DRS_ANTIALIASEDLINEENABLE       = 176,
  D3DRS_MINTESSELLATIONLEVEL        = 178,
  D3DRS_MAXTESSELLATIONLEVEL        = 179,
  D3DRS_ADAPTIVETESS_X              = 180,
  D3DRS_ADAPTIVETESS_Y              = 181,
  D3DRS_ADAPTIVETESS_Z              = 182,
  D3DRS_ADAPTIVETESS_W              = 183,
  D3DRS_ENABLEADAPTIVETESSELLATION  = 184,
  D3DRS_TWOSIDEDSTENCILMODE         = 185,
  D3DRS_CCW_STENCILFAIL             = 186,
  D3DRS_CCW_STENCILZFAIL            = 187,
  D3DRS_CCW_STENCILPASS             = 188,
  D3DRS_CCW_STENCILFUNC             = 189,
  D3DRS_COLORWRITEENABLE1           = 190,
  D3DRS_COLORWRITEENABLE2           = 191,
  D3DRS_COLORWRITEENABLE3           = 192,
  D3DRS_BLENDFACTOR                 = 193,
  D3DRS_SRGBWRITEENABLE             = 194,
  D3DRS_DEPTHBIAS                   = 195,
  D3DRS_WRAP8                       = 198,
  D3DRS_WRAP9                       = 199,
  D3DRS_WRAP10                      = 200,
  D3DRS_WRAP11                      = 201,
  D3DRS_WRAP12                      = 202,
  D3DRS_WRAP13                      = 203,
  D3DRS_WRAP14                      = 204,
  D3DRS_WRAP15                      = 205,
  D3DRS_SEPARATEALPHABLENDENABLE    = 206,
  D3DRS_SRCBLENDALPHA               = 207,
  D3DRS_DESTBLENDALPHA              = 208,
  D3DRS_BLENDOPALPHA                = 209,
  D3DRS_FORCE_DWORD                 = 0x7fffffff
} D3DRENDERSTATETYPE, *LPD3DRENDERSTATETYPE;

Constantes

D3DRS_ZENABLE

Estado de almacenamiento en búfer de profundidad como miembro del tipo enumerado D3DZBUFFERTYPE . Establezca este estado en D3DZB_TRUE para habilitar el almacenamiento en búfer z, D3DZB_USEW para habilitar el almacenamiento en búfer w o D3DZB_FALSE para deshabilitar el almacenamiento en búfer de profundidad.

El valor predeterminado de este estado de representación es D3DZB_TRUE si se creó una galería de símbolos de profundidad junto con la cadena de intercambio estableciendo el miembro EnableAutoDepthStencil de la estructura D3DPRESENT_PARAMETERS en TRUE y, de lo contrario, D3DZB_FALSE.

D3DRS_FILLMODE

Uno o varios miembros del tipo enumerado D3DFILLMODE . El valor predeterminado es D3DFILL_SOLID.

D3DRS_SHADEMODE

Uno o varios miembros del tipo enumerado D3DSHADEMODE . El valor predeterminado es D3DSHADE_GOURAUD.

D3DRS_ZWRITEENABLE

TRUE para permitir que la aplicación escriba en el búfer de profundidad. El valor predeterminado es TRUE. Este miembro permite que una aplicación impida que el sistema actualice el búfer de profundidad con nuevos valores de profundidad. Si es FALSE, las comparaciones de profundidad se siguen realizando según el estado de representación D3DRS_ZFUNC, suponiendo que se está llevando a cabo el almacenamiento en búfer de profundidad, pero los valores de profundidad no se escriben en el búfer.

D3DRS_ALPHATESTENABLE

TRUE para habilitar pruebas alfa por píxel. Si se supera la prueba, el búfer de fotogramas procesa el píxel. De lo contrario, se omite todo el procesamiento del búfer de fotogramas para el píxel.

La prueba se realiza comparando el valor alfa entrante con el valor alfa de referencia, utilizando la función de comparación proporcionada por el estado de representación D3DRS_ALPHAFUNC. El valor alfa de referencia viene determinado por el valor establecido para D3DRS_ALPHAREF. Para obtener más información, consulta Alpha Testing State (Direct3D 9) (Estado de prueba alfa [Direct3D 9]).

El valor predeterminado de este parámetro es FALSE.

D3DRS_LASTPIXEL

El valor predeterminado es TRUE, lo que permite dibujar el último píxel de una línea. Para evitar el dibujo del último píxel, establezca este valor en FALSE. Para obtener más información, vea Outline and Fill State (Direct3D 9) (Estado de contorno y relleno [Direct3D 9]).

D3DRS_SRCBLEND

Un miembro del tipo enumerado D3DBLEND . El valor predeterminado es D3DBLEND_ONE.

D3DRS_DESTBLEND

Un miembro del tipo enumerado D3DBLEND . El valor predeterminado es D3DBLEND_ZERO.

D3DRS_CULLMODE

Especifica cómo se seleccionan los triángulos hacia atrás, si están en absoluto. Se puede establecer en un miembro del tipo enumerado D3DCULL . El valor predeterminado es D3DCULL_CCW.

D3DRS_ZFUNC

Un miembro del tipo enumerado D3DCMPFUNC . El valor predeterminado es D3DCMP_LESSEQUAL. Este miembro permite que una aplicación acepte o rechace un píxel, en función de su distancia desde la cámara.

El valor de profundidad del píxel se compara con el valor del búfer de profundidad. Si el valor de profundidad del píxel pasa la función de comparación, se escribe el píxel.

El valor de profundidad se escribe en el búfer de profundidad solo si el estado de representación es TRUE.

Los rasterizadores de software y muchos aceleradores de hardware funcionan más rápido si se produce un error en la prueba de profundidad, ya que no es necesario filtrar y modular la textura si el píxel no se va a representar.

D3DRS_ALPHAREF

Valor que especifica un valor alfa de referencia con el que se prueban los píxeles cuando se habilitan las pruebas alfa. Se trata de un valor de 8 bits colocado en los 8 bits inferiores del valor de estado de representación DWORD. Los valores pueden oscilar entre 0x00000000 y 0x000000FF. El valor predeterminado es 0.

D3DRS_ALPHAFUNC

Un miembro del tipo enumerado D3DCMPFUNC . El valor predeterminado es D3DCMP_ALWAYS. Este miembro permite que una aplicación acepte o rechace un píxel, en función de su valor alfa.

D3DRS_DITHERENABLE

TRUE para habilitar el dithering. El valor predeterminado es FALSE.

D3DRS_ALPHABLENDENABLE

TRUE para habilitar la transparencia mezclada alfa. El valor predeterminado es FALSE.

El tipo de combinación alfa viene determinado por el D3DRS_SRCBLEND y D3DRS_DESTBLEND estados de representación.

D3DRS_FOGENABLE

TRUE para habilitar la mezcla de niebla. El valor predeterminado es FALSE. Para obtener más información sobre el uso de mezcla de niebla, consulte Niebla.

D3DRS_SPECULARENABLE

TRUE para habilitar los resaltados especulares. El valor predeterminado es FALSE.

Los resaltados especulares se calculan como si cada vértice del objeto que se está iluminando se encuentra en el origen del objeto. Esto proporciona los resultados esperados siempre que el objeto se modele alrededor del origen y la distancia entre la luz y el objeto sea relativamente grande. En otros casos, los resultados son indefinidos.

Cuando este miembro se establece en TRUE, el color especular se agrega al color base después de la cascada de textura pero antes de la combinación alfa.

D3DRS_FOGCOLOR

Valor cuyo tipo es D3DCOLOR. El valor predeterminado es 0. Para obtener más información sobre el color de niebla, consulta Color de niebla (Direct3D 9).

D3DRS_FOGTABLEMODE

Fórmula de niebla que se va a utilizar para niebla de píxeles. Establezca en uno de los miembros del tipo enumerado D3DFOGMODE . El valor predeterminado es D3DFOG_NONE. Para obtener más información sobre la niebla de píxeles, consulta Niebla de píxeles (Direct3D 9).

D3DRS_FOGSTART

Profundidad a la que comienzan los efectos de niebla de píxeles o vértices para el modo de niebla lineal. El valor predeterminado es 0,0f. La profundidad se especifica en el espacio mundial para niebla de vértices y espacio de dispositivo [0,0, 1,0] o espacio mundial para niebla de píxeles. En el caso de la niebla de píxeles, estos valores están en el espacio del dispositivo cuando el sistema usa z para cálculos de niebla y espacio mundial cuando el sistema usa niebla relativa a los ojos (w-fog). Para obtener más información, vea Parámetros de niebla (Direct3D 9) y Profundidad relativa a los ojos frente a la profundidad basada en Z.

Los valores de este estado de representación son valores de punto flotante. Dado que el método IDirect3DDevice9::SetRenderState acepta valores DWORD, la aplicación debe convertir una variable que contenga el valor, como se muestra en el ejemplo de código siguiente.

pDevice9->SetRenderState(D3DRS_FOGSTART, 
                         *((DWORD*) (&fFogStart)));

D3DRS_FOGEND

Profundidad a la que terminan los efectos de niebla de píxeles o vértices para el modo de niebla lineal. El valor predeterminado es 1.0f. La profundidad se especifica en el espacio mundial para niebla de vértices y espacio de dispositivo [0,0, 1,0] o espacio mundial para niebla de píxeles. Para la niebla de píxeles, estos valores están en el espacio del dispositivo cuando el sistema usa z para cálculos de niebla y en el espacio mundial cuando el sistema usa niebla relativa a los ojos (w-fog). Para obtener más información, vea Parámetros de niebla (Direct3D 9) y Profundidad relativa a los ojos frente a la profundidad basada en Z.

Los valores de este estado de representación son valores de punto flotante. Dado que el método IDirect3DDevice9::SetRenderState acepta valores DWORD, la aplicación debe convertir una variable que contenga el valor, como se muestra en el ejemplo de código siguiente.

m_pDevice9->SetRenderState(D3DRS_FOGEND, *((DWORD*) (&fFogEnd)));

D3DRS_FOGDENSITY

Densidad de niebla para niebla de píxeles o vértices utilizada en los modos de niebla exponencial (D3DFOG_EXP y D3DFOG_EXP2). Los valores de densidad válidos van de 0,0 a 1,0. El valor predeterminado es 1,0. Para obtener más información, vea Parámetros de niebla (Direct3D 9) .

Los valores de este estado de representación son valores de punto flotante. Dado que el método IDirect3DDevice9::SetRenderState acepta valores DWORD, la aplicación debe convertir una variable que contenga el valor, como se muestra en el ejemplo de código siguiente.

    m_pDevice9->SetRenderState(D3DRS_FOGDENSITY, *((DWORD*) (&fFogDensity)));

D3DRS_RANGEFOGENABLE

TRUE para habilitar la niebla de vértices basada en rango. El valor predeterminado es FALSE, en cuyo caso el sistema usa niebla basada en profundidad. En la niebla basada en intervalos, la distancia de un objeto del visor se usa para calcular efectos de niebla, no la profundidad del objeto (es decir, la coordenada z) de la escena. En niebla basada en rango, todos los métodos de niebla funcionan como de costumbre, salvo que utilizan rango en lugar de profundidad en los cálculos.

El intervalo es el factor correcto que se usa para los cálculos de niebla, pero la profundidad se suele usar en su lugar porque el intervalo consume mucho tiempo para calcular y la profundidad ya está disponible con carácter general. El uso de la profundidad para calcular la niebla tiene el efecto no deseado de tener la niebla de los objetos periféricos cambia a medida que se mueve el ojo del visor - en este caso, los cambios de profundidad y el rango permanece constante.

Dado que actualmente ningún hardware admite niebla basada en intervalos de píxeles, la corrección del rango se ofrece solo para niebla de vértices.

Para obtener más información, consulta Niebla de vértices (Direct3D 9).

D3DRS_STENCILENABLE

TRUE para habilitar la galería de símbolos o FALSE para deshabilitar la galería de símbolos. El valor predeterminado es FALSE. Para obtener más información, vea Stencil Buffer Techniques (Direct3D 9) (Técnicas de búfer de galería de símbolos [Direct3D 9]).

D3DRS_STENCILFAIL

Operación de galería de símbolos que se va a realizar si se produce un error en la prueba de galería de símbolos. Los valores son del tipo enumerado D3DSTENCILOP . El valor predeterminado es D3DSTENCILOP_KEEP.

D3DRS_STENCILZFAIL

La operación de galería de símbolos para realizar si se supera la prueba de galería de símbolos y se produce un error en la prueba de profundidad (z-test). Los valores son del tipo enumerado D3DSTENCILOP . El valor predeterminado es D3DSTENCILOP_KEEP.

D3DRS_STENCILPASS

Operación de galería de símbolos que se va a realizar si se superan las pruebas de galería de símbolos y profundidad (z). Los valores son del tipo enumerado D3DSTENCILOP . El valor predeterminado es D3DSTENCILOP_KEEP.

D3DRS_STENCILFUNC

Función de comparación para la prueba de galería de símbolos. Los valores proceden del tipo enumerado D3DCMPFUNC . El valor predeterminado es D3DCMP_ALWAYS.

La función de comparación se usa para comparar el valor de referencia con una entrada de búfer de galería de símbolos. Esta comparación solo se aplica a los bits del valor de referencia y la entrada del búfer de galería de símbolos que se establecen en la máscara de galería de símbolos (establecida por el estado de representación D3DRS_STENCILMASK). Si es TRUE, se supera la prueba de galería de símbolos.

D3DRS_STENCILREF

Valor de referencia int para la prueba de galería de símbolos. El valor predeterminado es 0.

D3DRS_STENCILMASK

Máscara aplicada al valor de referencia y a cada entrada del búfer de galería de símbolos para determinar los bits significativos de la prueba de galería de símbolos. La máscara predeterminada es 0xFFFFFFFF.

D3DRS_STENCILWRITEMASK

Escriba máscara aplicada a los valores escritos en el búfer de galería de símbolos. La máscara predeterminada es 0xFFFFFFFF.

D3DRS_TEXTUREFACTOR

Color usado para la combinación de varias texturas con el argumento de combinación de texturas D3DTA_TFACTOR o la operación de combinación de texturas D3DTOP_BLENDFACTORALPHA. El valor asociado es una variable D3DCOLOR . El valor predeterminado es blanco opaco (0xFFFFFFFF).

D3DRS_WRAP0

Comportamiento de ajuste de textura para varios conjuntos de coordenadas de textura. Los valores válidos para este estado de representación pueden ser cualquier combinación de la D3DWRAPCOORD_0 (o D3DWRAP_U), D3DWRAPCOORD_1 (o D3DWRAP_V), D3DWRAPCOORD_2 (o D3DWRAP_W) y marcas de D3DWRAPCOORD_3. Esto hace que el sistema se ajuste en la dirección de las dimensiones primera, segunda, tercera y cuarta, a veces denominadas direcciones s, t, r y q, para una textura determinada. El valor predeterminado de este estado de representación es 0 (ajuste deshabilitado en todas las direcciones).

D3DRS_WRAP1

Consulte D3DRS_WRAP0.

D3DRS_WRAP2

Consulte D3DRS_WRAP0.

D3DRS_WRAP3

Consulte D3DRS_WRAP0.

D3DRS_WRAP4

Consulte D3DRS_WRAP0.

D3DRS_WRAP5

Consulte D3DRS_WRAP0.

D3DRS_WRAP6

Consulte D3DRS_WRAP0.

D3DRS_WRAP7

Consulte D3DRS_WRAP0.

D3DRS_CLIPPING

TRUE para habilitar el recorte primitivo mediante Direct3D o FALSE para deshabilitarlo. El valor predeterminado es TRUE.

D3DRS_LIGHTING

TRUE para habilitar la iluminación de Direct3D o FALSE para deshabilitarla. El valor predeterminado es TRUE. Solo los vértices que incluyen un vértice normal se iluminan correctamente; los vértices que no contienen un valor normal emplean un producto de punto de 0 en todos los cálculos de iluminación.

D3DRS_AMBIENT

Color claro ambiente. Este valor es de tipo D3DCOLOR. El valor predeterminado es 0.

D3DRS_FOGVERTEXMODE

Fórmula de niebla que se va a utilizar para niebla de vértices. Establezca en un miembro del tipo enumerado D3DFOGMODE . El valor predeterminado es D3DFOG_NONE.

D3DRS_COLORVERTEX

TRUE para habilitar el color por vértice o FALSE para deshabilitarlo. El valor predeterminado es TRUE. Habilitar el color por vértice permite al sistema incluir el color definido para vértices individuales en sus cálculos de iluminación.

Para obtener más información, vea los siguientes estados de representación:

  • D3DRS_DIFFUSEMATERIALSOURCE
  • D3DRS_SPECULARMATERIALSOURCE
  • D3DRS_AMBIENTMATERIALSOURCE
  • D3DRS_EMISSIVEMATERIALSOURCE

D3DRS_LOCALVIEWER

TRUE para habilitar resaltados especulares relativos a la cámara o FALSE para usar resaltados especulares ortogonales. El valor predeterminado es TRUE. Las aplicaciones que usan la proyección ortogonal deben especificar FALSE.

D3DRS_NORMALIZENORMALS

TRUE para habilitar la normalización automática de los normales de vértice o FALSE para deshabilitarla. El valor predeterminado es FALSE. La habilitación de esta característica hace que el sistema normalice los valores normales de vértices después de transformarlos en el espacio de la cámara, lo que puede llevar mucho tiempo en el cálculo.

D3DRS_DIFFUSEMATERIALSOURCE

Origen de color difuso para cálculos de iluminación. Los valores válidos son miembros del tipo enumerado D3DMATERIALCOLORSOURCE . El valor predeterminado es D3DMCS_COLOR1. El valor de este estado de representación solo se usa si el D3DRS_COLORVERTEX estado de representación está establecido en TRUE.

D3DRS_SPECULARMATERIALSOURCE

Fuente de color especular para cálculos de iluminación. Los valores válidos son miembros del tipo enumerado D3DMATERIALCOLORSOURCE . El valor predeterminado es D3DMCS_COLOR2.

D3DRS_AMBIENTMATERIALSOURCE

Origen de color ambiente para cálculos de iluminación. Los valores válidos son miembros del tipo enumerado D3DMATERIALCOLORSOURCE . El valor predeterminado es D3DMCS_MATERIAL.

D3DRS_EMISSIVEMATERIALSOURCE

Fuente de color emisiva para cálculos de iluminación. Los valores válidos son miembros del tipo enumerado D3DMATERIALCOLORSOURCE . El valor predeterminado es D3DMCS_MATERIAL.

D3DRS_VERTEXBLEND

Número de matrices que se van a usar para realizar la fusión de geometría, si existe. Los valores válidos son miembros del tipo enumerado D3DVERTEXBLENDFLAGS . El valor predeterminado es D3DVBF_DISABLE.

D3DRS_CLIPPLANEENABLE

Habilita o deshabilita los planos de recorte definidos por el usuario. Los valores válidos son cualquier DWORD en el que el estado de cada bit (establecido o no establecido) alterna el estado de activación de un plano de recorte definido por el usuario correspondiente. El bit menos significativo (bit 0) controla el primer plano de recorte en el índice 0 y los bits posteriores controlan la activación de planos de recorte en índices superiores. Si se establece un bit, el sistema aplica el plano de recorte adecuado durante la representación de la escena. El valor predeterminado es 0.

Las macros D3DCLIPPLANEn se definen para proporcionar una manera cómoda de habilitar planos de recorte.

D3DRS_POINTSIZE

Valor float que especifica el tamaño que se va a usar para el cálculo del tamaño de punto en los casos en los que no se especifica el tamaño del punto para cada vértice. Este valor no se usa cuando el vértice contiene el tamaño del punto. Este valor está en unidades de espacio en pantalla si D3DRS_POINTSCALEENABLE es FALSE; de lo contrario, este valor está en unidades espaciales del mundo. El valor predeterminado es el valor que devuelve un controlador. Si un controlador devuelve 0 o 1, el valor predeterminado es 64, lo que permite la emulación de tamaño de punto de software. Dado que el método IDirect3DDevice9::SetRenderState acepta valores DWORD, la aplicación debe convertir una variable que contenga el valor, como se muestra en el ejemplo de código siguiente.

m_pDevice9->SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&pointSize));

D3DRS_POINTSIZE_MIN

Valor float que especifica el tamaño mínimo de los primitivos de punto. Los primitivos de punto se sujetan a este tamaño durante la representación. Si se establece en valores inferiores a 1,0, se elimina puntos cuando el punto no cubre un centro de píxeles y el suavizado de contorno se deshabilita o se representa con una intensidad reducida cuando se habilita el suavizado de contorno. El valor predeterminado es 1.0f. El intervalo de este valor es mayor o igual que 0,0f. Dado que el método IDirect3DDevice9::SetRenderState acepta valores DWORD, la aplicación debe convertir una variable que contenga el valor, como se muestra en el ejemplo de código siguiente.

m_pDevice9->SetRenderState(D3DRS_POINTSIZE_MIN, *((DWORD*)&pointSizeMin));

D3DRS_POINTSPRITEENABLE

valor bool. Cuando es TRUE, se establecen coordenadas de textura de primitivos de punto para que las texturas completas se asignen en cada punto. Cuando es FALSE, las coordenadas de textura de vértice se usan para todo el punto. El valor predeterminado es FALSE. Puedes lograr puntos de un solo píxel de estilo directX 7 estableciendo D3DRS_POINTSCALEENABLE en FALSE y D3DRS_POINTSIZE en 1,0, que son los valores predeterminados.

D3DRS_POINTSCALEENABLE

valor bool que controla el cálculo del tamaño de los primitivos de punto. Cuando es TRUE, el tamaño del punto se interpreta como un valor de espacio de cámara y se escala mediante la función de distancia y el frustum para ver el escalado del eje Y para calcular el tamaño final del punto de espacio de pantalla. Cuando es FALSE, el tamaño del punto se interpreta como espacio de pantalla y se usa directamente. El valor predeterminado es FALSE.

D3DRS_POINTSCALE_A

Valor flotante que controla la atenuación de tamaño basada en distancia para primitivos de punto. Activo solo cuando D3DRS_POINTSCALEENABLE es TRUE. El valor predeterminado es 1.0f. El intervalo de este valor es mayor o igual que 0,0f. Dado que el método IDirect3DDevice9::SetRenderState acepta valores DWORD, la aplicación debe convertir una variable que contenga el valor, como se muestra en el ejemplo de código siguiente.

m_pDevice9->SetRenderState(D3DRS_POINTSCALE_A, *((DWORD*)&pointScaleA));

D3DRS_POINTSCALE_B

Valor flotante que controla la atenuación de tamaño basada en distancia para primitivos de punto. Activo solo cuando D3DRS_POINTSCALEENABLE es TRUE. El valor predeterminado es 0,0f. El intervalo de este valor es mayor o igual que 0,0f. Dado que el método IDirect3DDevice9::SetRenderState acepta valores DWORD, la aplicación debe convertir una variable que contenga el valor, como se muestra en el ejemplo de código siguiente.

m_pDevice9->SetRenderState(D3DRS_POINTSCALE_B, *((DWORD*)&pointScaleB));

D3DRS_POINTSCALE_C

Valor flotante que controla la atenuación de tamaño basada en distancia para primitivos de punto. Activo solo cuando D3DRS_POINTSCALEENABLE es TRUE. El valor predeterminado es 0,0f. El intervalo de este valor es mayor o igual que 0,0f. Dado que el método IDirect3DDevice9::SetRenderState acepta valores DWORD, la aplicación debe convertir una variable que contenga el valor, como se muestra en el ejemplo de código siguiente.

m_pDevice9->SetRenderState(D3DRS_POINTSCALE_C, *((DWORD*)&pointScaleC));

D3DRS_MULTISAMPLEANTIALIAS

Valor bool que determina cómo se calculan las muestras individuales al usar un búfer de destino de representación de varios ejemplos. Cuando se establece en TRUE, se calculan varias muestras para que el suavizado de contorno de escena completa se realice mediante el muestreo en diferentes posiciones de ejemplo para cada muestra múltiple. Cuando se establece en FALSE, todas las muestras se escriben con el mismo valor de muestra, muestreado en el centro de píxeles, lo que permite la representación sin suavizado en un búfer de varias muestras. Este estado de representación no tiene ningún efecto al representar en un único búfer de ejemplo. El valor predeterminado es TRUE.

D3DRS_MULTISAMPLEMASK

Cada bit de esta máscara, empezando por el bit menos significativo (LSB), controla la modificación de uno de los ejemplos en un destino de representación de varios ejemplos. Por lo tanto, para un destino de representación de 8 muestras, el byte bajo contiene las ocho escrituras habilitadas para cada una de las ocho muestras. Este estado de representación no tiene ningún efecto al representar en un único búfer de ejemplo. El valor predeterminado es 0xFFFFFFFF.

Este estado de representación permite el uso de un búfer de varias muestras como un búfer de acumulación, haciendo una representación multipaso de geometría donde cada paso actualiza un subconjunto de muestras.

Si hay n muestreos multimuestreo y k habilitados, la intensidad resultante de la imagen representada debe ser k/n. Cada componente RGB de cada píxel se factorizará por k/n.

D3DRS_PATCHEDGESTYLE

Establece si los bordes de revisión usarán teselación de estilo float. Los valores posibles se definen mediante el tipo enumerado D3DPATCHEDGESTYLE . El valor predeterminado es D3DPATCHEDGE_DISCRETE.

D3DRS_DEBUGMONITORTOKEN

Establezca solo para depurar el monitor. Los valores posibles se definen mediante el tipo enumerado D3DDEBUGMONITORTOKENS . Tenga en cuenta que si se establece D3DRS_DEBUGMONITORTOKEN, la llamada se trata como pasar un token al monitor de depuración. Por ejemplo, si , después de pasar D3DDMT_ENABLE o D3DDMT_DISABLE a D3DRS_DEBUGMONITORTOKEN , se pasan otros valores de token, el estado (habilitado o deshabilitado) del monitor de depuración seguirá conservando.

Este estado solo es útil para las compilaciones de depuración. El monitor de depuración tiene como valor predeterminado D3DDMT_ENABLE.

D3DRS_POINTSIZE_MAX

Valor float que especifica el tamaño máximo al que se sujetarán los sprites de punto. El valor debe ser menor o igual que el miembro MaxPointSize de D3DCAPS9 y mayor o igual que D3DRS_POINTSIZE_MIN. El valor predeterminado es 64.0. Dado que el método IDirect3DDevice9::SetRenderState acepta valores DWORD, la aplicación debe convertir una variable que contenga el valor, como se muestra en el ejemplo de código siguiente.

m_pDevice9->SetRenderState(D3DRS_PONTSIZE_MAX, *((DWORD*)&pointSizeMax));

D3DRS_INDEXEDVERTEXBLENDENABLE

valor bool que habilita o deshabilita la mezcla de vértices indizado. El valor predeterminado es FALSE. Cuando se establece en TRUE, la mezcla de vértices indizada está habilitada. Cuando se establece en FALSE, la mezcla de vértices indizada está deshabilitada. Si este estado de representación está habilitado, el usuario debe pasar índices de matriz como UN DWORD empaquetado con cada vértice. Cuando el estado de representación está deshabilitado y la mezcla de vértices se habilita a través del estado D3DRS_VERTEXBLEND, equivale a tener índices de matriz 0, 1, 2, 3 en cada vértice.

D3DRS_COLORWRITEENABLE

Valor UINT que habilita una escritura por canal para el búfer de color de destino de representación. Un bit establecido da como resultado que el canal de color se actualice durante la representación 3D. Un bit claro da como resultado que el canal de color no se vea afectado. Esta funcionalidad está disponible si el bit de funcionalidades de D3DPMISCCAPS_COLORWRITEENABLE se establece en el miembro PrimitiveMiscCaps de la estructura D3DCAPS9 del dispositivo. Este estado de representación no afecta a la operación clear. El valor predeterminado es 0x0000000F.

Los valores válidos para este estado de representación pueden ser cualquier combinación de las marcas D3DCOLORWRITEENABLE_ALPHA, D3DCOLORWRITEENABLE_BLUE, D3DCOLORWRITEENABLE_GREEN o D3DCOLORWRITEENABLE_RED.

D3DRS_TWEENFACTOR

Valor float que controla el factor de interpolación. El valor predeterminado es 0,0f. Dado que el método IDirect3DDevice9::SetRenderState acepta valores DWORD, la aplicación debe convertir una variable que contenga el valor, como se muestra en el ejemplo de código siguiente.

m_pDevice9->SetRenderState(D3DRS_TWEENFACTOR, *((DWORD*)&TweenFactor));

D3DRS_BLENDOP

Valor usado para seleccionar la operación aritmética aplicada cuando el estado de representación de combinación alfa, D3DRS_ALPHABLENDENABLE, se establece en TRUE. Los valores válidos se definen mediante el tipo enumerado D3DBLENDOP . El valor predeterminado es D3DBLENDOP_ADD.

Si no se admite la funcionalidad del dispositivo D3DPMISCCAPS_BLENDOP, se realiza D3DBLENDOP_ADD.

D3DRS_POSITIONDEGREE

Grado de interpolación de posición de N revisiones. Los valores pueden ser D3DDEGREE_CUBIC (valor predeterminado) o D3DDEGREE_LINEAR. Para obtener más información, vea D3DDEGREETYPE.

D3DRS_NORMALDEGREE

Grado de interpolación normal de N revisiones. Los valores pueden ser D3DDEGREE_LINEAR (valor predeterminado) o D3DDEGREE_QUADRATIC. Para obtener más información, vea D3DDEGREETYPE.

D3DRS_SCISSORTESTENABLE

TRUE para habilitar las pruebas de tijeras y FALSE para deshabilitarla. El valor predeterminado es FALSE.

D3DRS_SLOPESCALEDEPTHBIAS

Se usa para determinar la cantidad de sesgo que se puede aplicar a los primitivos co-planar para reducir la lucha z. El valor predeterminado es 0.

bias = (max * D3DRS_SLOPESCALEDEPTHBIAS) + D3DRS_DEPTHBIAS.

donde max es la pendiente de profundidad máxima del triángulo que se representa.

D3DRS_ANTIALIASEDLINEENABLE

TRUE para habilitar el suavizado de suavizado de líneas, FALSE para deshabilitar el suavizado de contornos de línea. El valor predeterminado es FALSE.

Al representar en un destino de representación de varios ejemplos, se omite D3DRS_ANTIALIASEDLINEENABLE y todas las líneas se representan con alias. Use ID3DXLine para la representación de líneas antialiased en un destino de representación de varias muestras.

D3DRS_MINTESSELLATIONLEVEL

Nivel mínimo de teselación. El valor predeterminado es 1.0f. Consulta Teselación (Direct3D 9).

D3DRS_MAXTESSELLATIONLEVEL

Nivel máximo de teselación. El valor predeterminado es 1.0f. Consulta Teselación (Direct3D 9).

D3DRS_ADAPTIVETESS_X

Cantidad de teselado adaptable, en la dirección x. El valor predeterminado es 0,0f. Consulta Teselación adaptable.

D3DRS_ADAPTIVETESS_Y

Cantidad de teselado adaptable, en la dirección y. El valor predeterminado es 0,0f. Consulte Adaptive_Tessellation.

D3DRS_ADAPTIVETESS_Z

Cantidad de teselado adaptable, en la dirección z. El valor predeterminado es 1.0f. Consulte Adaptive_Tessellation.

D3DRS_ADAPTIVETESS_W

Cantidad de teselado adaptable, en la dirección w. El valor predeterminado es 0,0f. Consulte Adaptive_Tessellation.

D3DRS_ENABLEADAPTIVETESSELLATION

TRUE para habilitar la teselación adaptable, FALSE para deshabilitarla. El valor predeterminado es FALSE. Consulte Adaptive_Tessellation.

D3DRS_TWOSIDEDSTENCILMODE

TRUE habilita la galería de símbolos de dos lados, FALSE la deshabilita. El valor predeterminado es FALSE. La aplicación debe establecer D3DRS_CULLMODE en D3DCULL_NONE para habilitar el modo de galería de símbolos de dos caras. Si el orden de desplazamiento del triángulo es en el sentido de las agujas del reloj, se usarán las operaciones D3DRS_STENCIL*. Si el orden de desvanado está en sentido contrario a las agujas del reloj, se usarán las operaciones D3DRS_CCW_STENCIL*.

Para ver si se admite la galería de símbolos de dos caras, compruebe el miembro StencilCaps de D3DCAPS9 para obtener D3DSTENCILCAPS_TWOSIDED. Consulte también D3DSTENCILCAPS.

D3DRS_CCW_STENCILFAIL

Operación de galería de símbolos que se va a realizar si se produce un error en la prueba de galería de símbolos CCW. Los valores son del tipo enumerado D3DSTENCILOP . El valor predeterminado es D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILZFAIL

Operación de galería de símbolos para realizar si se supera la prueba de galería de símbolos CCW y se produce un error en z-test. Los valores son del tipo enumerado D3DSTENCILOP . El valor predeterminado es D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILPASS

Operación de galería de símbolos que se va a realizar si se superan las galerías de símbolos CCW y z-tests. Los valores son del tipo enumerado D3DSTENCILOP . El valor predeterminado es D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILFUNC

Función de comparación. La prueba de galería de símbolos ccW supera si ((ref & mask) la función de galería de símbolos ( & máscara de galería de símbolos)) es TRUE. Los valores son del tipo enumerado D3DCMPFUNC . El valor predeterminado es D3DCMP_ALWAYS.

D3DRS_COLORWRITEENABLE1

Valores adicionales de ColorWriteEnable para los dispositivos. Consulte D3DRS_COLORWRITEENABLE. Esta funcionalidad está disponible si el bit de funcionalidades de D3DPMISCCAPS_INDEPENDENTWRITEMASKS se establece en el miembro PrimitiveMiscCaps de la estructura D3DCAPS9 del dispositivo. El valor predeterminado es 0x0000000f.

D3DRS_COLORWRITEENABLE2

Valores adicionales de ColorWriteEnable para los dispositivos. Consulte D3DRS_COLORWRITEENABLE. Esta funcionalidad está disponible si el bit de funcionalidades de D3DPMISCCAPS_INDEPENDENTWRITEMASKS se establece en el miembro PrimitiveMiscCaps de la estructura D3DCAPS9 del dispositivo. El valor predeterminado es 0x0000000f.

D3DRS_COLORWRITEENABLE3

Valores adicionales de ColorWriteEnable para los dispositivos. Consulte D3DRS_COLORWRITEENABLE. Esta funcionalidad está disponible si el bit de funcionalidades de D3DPMISCCAPS_INDEPENDENTWRITEMASKS se establece en el miembro PrimitiveMiscCaps de la estructura D3DCAPS9 del dispositivo. El valor predeterminado es 0x0000000f.

D3DRS_BLENDFACTOR

D3DCOLOR utilizado para un factor de mezcla constante durante la combinación alfa. Esta funcionalidad está disponible si el bit de funcionalidades de D3DPBLENDCAPS_BLENDFACTOR se establece en el miembro SrcBlendCaps de D3DCAPS9 o el miembro DestBlendCaps de D3DCAPS9. Consulte D3DRENDERSTATETYPE. El valor predeterminado es 0xffffffff.

D3DRS_SRGBWRITEENABLE

Habilite las escrituras de destino de representación para corregir gamma en sRGB. El formato debe exponer D3DUSAGE_SRGBWRITE. El valor predeterminado es 0.

D3DRS_DEPTHBIAS

Valor de punto flotante que se usa para la comparación de valores de profundidad. Consulte El sesgo de profundidad (Direct3D 9). El valor predeterminado es 0.

D3DRS_WRAP8

Consulte D3DRS_WRAP0.

D3DRS_WRAP9

Consulte D3DRS_WRAP0.

D3DRS_WRAP10

Consulte D3DRS_WRAP0.

D3DRS_WRAP11

Consulte D3DRS_WRAP0.

D3DRS_WRAP12

Consulte D3DRS_WRAP0.

D3DRS_WRAP13

Consulte D3DRS_WRAP0.

D3DRS_WRAP14

Consulte D3DRS_WRAP0.

D3DRS_WRAP15

Consulte D3DRS_WRAP0.

D3DRS_SEPARATEALPHABLENDENABLE

TRUE habilita el modo de mezcla independiente para el canal alfa. El valor predeterminado es FALSE.

Cuando se establece en FALSE, los factores de combinación de destino de representación y las operaciones aplicadas a alpha se ven obligados a ser los mismos que los definidos para el color. Este modo se puede conectar de forma eficaz a FALSE en implementaciones que no establecen el límite D3DPMISCCAPS_SEPARATEALPHABLEND. Consulte D3DPMISCCAPS.

El tipo de combinación alfa independiente viene determinado por el D3DRS_SRCBLENDALPHA y D3DRS_DESTBLENDALPHA estados de representación.

D3DRS_SRCBLENDALPHA

Un miembro del tipo enumerado D3DBLEND . Este valor se omite a menos que D3DRS_SEPARATEALPHABLENDENABLE sea TRUE. El valor predeterminado es D3DBLEND_ONE.

D3DRS_DESTBLENDALPHA

Un miembro del tipo enumerado D3DBLEND . Este valor se omite a menos que D3DRS_SEPARATEALPHABLENDENABLE sea TRUE. El valor predeterminado es D3DBLEND_ZERO.

D3DRS_BLENDOPALPHA

Valor usado para seleccionar la operación aritmética aplicada a combinación alfa independiente cuando el estado de representación, D3DRS_SEPARATEALPHABLENDENABLE, se establece en TRUE.

Los valores válidos se definen mediante el tipo enumerado D3DBLENDOP . El valor predeterminado es D3DBLENDOP_ADD.

Si no se admite la funcionalidad del dispositivo D3DPMISCCAPS_BLENDOP, se realiza D3DBLENDOP_ADD. Consulte D3DPMISCCAPS.

D3DRS_FORCE_DWORD

Obliga a esta enumeración a compilar a 32 bits de tamaño. Sin este valor, algunos compiladores permitirían que esta enumeración se compile en un tamaño distinto de 32 bits. Este valor no se utiliza.

Comentarios

Estados de representación Sampler de textura
ps_1_1 a ps_1_3 4 muestreadores de textura

 

Direct3D define la constante D3DRENDERSTATE_WRAPBIAS como comodidad para que las aplicaciones habiliten o deshabiliten el ajuste de texturas, en función del entero de base cero de un conjunto de coordenadas de textura (en lugar de usar explícitamente uno de los valores de estado D3DRS_WRAP n). Agregue el valor D3DRENDERSTATE_WRAPBIAS al índice de base cero de un conjunto de coordenadas de textura para calcular el valor D3DRS_WRAP n que corresponde a ese índice, como se muestra en el ejemplo siguiente.

// Enable U/V wrapping for textures that use the texture 
// coordinate set at the index within the dwIndex variable
    
HRESULT hr = pd3dDevice->SetRenderState(
dwIndex + D3DRENDERSTATE_WRAPBIAS,  
D3DWRAPCOORD_0 | D3DWRAPCOORD_1);
     
// If dwIndex is 3, the value that results from 
// the addition equals D3DRS_WRAP3 (131)

Requisitos

Requisito Value
Encabezado
D3D9Types.h

Consulte también

Enumeraciones de Direct3D

IDirect3DDevice9::GetRenderState

IDirect3DDevice9::SetRenderState