Enumeração D3DRENDERSTATETYPE

Os estados de renderização definem estados de configuração para todos os tipos de processamento de vértice e pixel. Alguns estados de renderização configuram o processamento de vértice e outros configuram o processamento de pixels (consulte Estados de renderização (Direct3D 9)). Os estados de renderização podem ser salvos e restaurados usando stateblocks (consulte State Blocks Save and Restore State (Direct3D 9)).

Sintaxe

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 buffer de profundidade como um membro do tipo enumerado D3DZBUFFERTYPE . Defina esse estado como D3DZB_TRUE para habilitar o buffer z, D3DZB_USEW para habilitar o buffer w ou D3DZB_FALSE para desabilitar o buffer de profundidade.

O valor padrão para esse estado de renderização será D3DZB_TRUE se um estêncil de profundidade tiver sido criado junto com a cadeia de troca definindo o membro EnableAutoDepthStencil da estrutura D3DPRESENT_PARAMETERS como TRUE e D3DZB_FALSE caso contrário.

D3DRS_FILLMODE

Um ou mais membros do tipo enumerado D3DFILLMODE . O valor padrão é D3DFILL_SOLID.

D3DRS_SHADEMODE

Um ou mais membros do tipo enumerado D3DSHADEMODE . O valor padrão é D3DSHADE_GOURAUD.

D3DRS_ZWRITEENABLE

TRUE para habilitar o aplicativo a gravar no buffer de profundidade. O valor padrão é TRUE. Esse membro permite que um aplicativo impeça que o sistema atualize o buffer de profundidade com novos valores de profundidade. Se FALSE, as comparações de profundidade ainda serão feitas de acordo com o estado de renderização D3DRS_ZFUNC, supondo que o buffer de profundidade esteja ocorrendo, mas os valores de profundidade não serão gravados no buffer.

D3DRS_ALPHATESTENABLE

TRUE para habilitar o teste alfa por pixel. Se o teste for aprovado, o pixel será processado pelo buffer de quadros. Caso contrário, todo o processamento do buffer de quadros será ignorado para o pixel.

O teste é feito comparando o valor alfa de entrada com o valor alfa de referência, usando a função de comparação fornecida pelo D3DRS_ALPHAFUNC estado de renderização. O valor alfa de referência é determinado pelo valor definido para D3DRS_ALPHAREF. Para obter mais informações, consulte Estado de teste alfa (Direct3D 9).

O valor padrão desse parâmetro é FALSE.

D3DRS_LASTPIXEL

O valor padrão é TRUE, que habilita o desenho do último pixel em uma linha. Para impedir o desenho do último pixel, defina esse valor como FALSE. Para obter mais informações, consulte Estado de estrutura de tópicos e preenchimento (Direct3D 9).

D3DRS_SRCBLEND

Um membro do tipo enumerado D3DBLEND . O valor padrão é D3DBLEND_ONE.

D3DRS_DESTBLEND

Um membro do tipo enumerado D3DBLEND . O valor padrão é D3DBLEND_ZERO.

D3DRS_CULLMODE

Especifica como os triângulos voltados para trás são eliminados, se em tudo. Isso pode ser definido como um membro do tipo enumerado D3DCULL . O valor padrão é D3DCULL_CCW.

D3DRS_ZFUNC

Um membro do tipo enumerado D3DCMPFUNC . O valor padrão é D3DCMP_LESSEQUAL. Esse membro permite que um aplicativo aceite ou rejeite um pixel, com base em sua distância da câmera.

O valor de profundidade do pixel é comparado com o valor do buffer de profundidade. Se o valor de profundidade do pixel passar a função de comparação, o pixel será gravado.

O valor de profundidade será gravado no buffer de profundidade somente se o estado de renderização for TRUE.

Os rasterizadores de software e muitos aceleradores de hardware funcionam mais rapidamente se o teste de profundidade falhar, pois não há necessidade de filtrar e modular a textura se o pixel não for renderizado.

D3DRS_ALPHAREF

Valor que especifica um valor alfa de referência em relação aos pixels testados quando o teste alfa está habilitado. Esse é um valor de 8 bits colocado nos 8 bits baixos do valor de estado de renderização DWORD. Os valores podem variar de 0x00000000 a 0x000000FF. O valor padrão é 0.

D3DRS_ALPHAFUNC

Um membro do tipo enumerado D3DCMPFUNC . O valor padrão é D3DCMP_ALWAYS. Esse membro permite que um aplicativo aceite ou rejeite um pixel, com base em seu valor alfa.

D3DRS_DITHERENABLE

TRUE para habilitar o dithering. O valor padrão é FALSE.

D3DRS_ALPHABLENDENABLE

TRUE para habilitar a transparência combinada alfa. O valor padrão é FALSE.

O tipo de mesclagem alfa é determinado pelos estados de renderização D3DRS_SRCBLEND e D3DRS_DESTBLEND.

D3DRS_FOGENABLE

TRUE para habilitar a mesclagem de neblina. O valor padrão é FALSE. Para obter mais informações sobre como usar a mistura de neblina, consulte Nevoeiro.

D3DRS_SPECULARENABLE

TRUE para habilitar realces especular. O valor padrão é FALSE.

Realces especular são calculados como se cada vértice no objeto que está sendo aceso estivesse na origem do objeto. Isso fornece os resultados esperados, desde que o objeto seja modelado ao redor da origem e a distância da luz até o objeto seja relativamente grande. Em outros casos, os resultados são indefinidos.

Quando esse membro é definido como TRUE, a cor especular é adicionada à cor base após a cascata de textura, mas antes da mesclagem alfa.

D3DRS_FOGCOLOR

Valor cujo tipo é D3DCOLOR. O valor padrão é 0. Para obter mais informações sobre a cor da neblina, consulte Cor da neblina (Direct3D 9).

D3DRS_FOGTABLEMODE

A fórmula de neblina a ser usada para neblina de pixel. Defina como um dos membros do tipo enumerado D3DFOGMODE . O valor padrão é D3DFOG_NONE. Para obter mais informações sobre a neblina de pixel, consulte Nevoeiro de pixel (Direct3D 9).

D3DRS_FOGSTART

Profundidade na qual os efeitos de neblina de pixel ou vértice começam para o modo de neblina linear. O valor padrão é 0,0f. A profundidade é especificada no espaço do mundo para neblina de vértice e espaço de dispositivo [0,0, 1,0] ou espaço mundial para neblina de pixel. Para neblina de pixel, esses valores estão no espaço do dispositivo quando o sistema usa z para cálculos de neblina e espaço mundial quando o sistema está usando neblina relativa aos olhos (w-fog). Para obter mais informações, consulte Parâmetros de neblina (Direct3D 9) e Profundidade com base em Eye-Relative versus Z.

Os valores para esse estado de renderização são valores de ponto flutuante. Como o método IDirect3DDevice9::SetRenderState aceita valores DWORD, seu aplicativo deve converter uma variável que contenha o valor, conforme mostrado no exemplo de código a seguir.

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

D3DRS_FOGEND

Profundidade na qual os efeitos de neblina de pixel ou vértice terminam para o modo de neblina linear. O valor padrão é 1.0f. A profundidade é especificada no espaço mundial para neblina de vértice e espaço do dispositivo [0.0, 1.0] ou espaço mundial para neblina de pixel. Para a neblina de pixel, esses valores estão no espaço do dispositivo quando o sistema usa z para cálculos de neblina e no espaço mundial quando o sistema está usando neblina relativa aos olhos (w-fog). Para obter mais informações, consulte Parâmetros de neblina (Direct3D 9) e Profundidade baseada em Olho-Relativo versus Z.

Os valores para esse estado de renderização são valores de ponto flutuante. Como o método IDirect3DDevice9::SetRenderState aceita valores DWORD, seu aplicativo deve converter uma variável que contenha o valor, conforme mostrado no exemplo de código a seguir.

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

D3DRS_FOGDENSITY

Densidade de neblina para neblina de pixel ou vértice usada nos modos de neblina exponencial (D3DFOG_EXP e D3DFOG_EXP2). Os valores de densidade válidos variam de 0,0 a 1,0. O valor padrão é 1.0. Para obter mais informações, consulte Parâmetros de neblina (Direct3D 9).

Os valores para esse estado de renderização são valores de ponto flutuante. Como o método IDirect3DDevice9::SetRenderState aceita valores DWORD, seu aplicativo deve converter uma variável que contenha o valor, conforme mostrado no exemplo de código a seguir.

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

D3DRS_RANGEFOGENABLE

TRUE para habilitar a neblina de vértice baseada em intervalo. O valor padrão é FALSE, nesse caso, o sistema usa neblina baseada em profundidade. Na neblina baseada em intervalo, a distância de um objeto do visualizador é usada para calcular efeitos de neblina, não a profundidade do objeto (ou seja, a coordenada z) na cena. Na neblina baseada em intervalo, todos os métodos de neblina funcionam como de costume, exceto que eles usam intervalo em vez de profundidade nos cálculos.

O intervalo é o fator correto a ser usado para cálculos de neblina, mas a profundidade é comumente usada porque o intervalo é demorado para computação e profundidade geralmente já está disponível. Usar profundidade para calcular a neblina tem o efeito indesejável de ter o nevoeiro de objetos periféricos alterado à medida que o olho do visualizador se move - nesse caso, a profundidade muda e o intervalo permanece constante.

Como nenhum hardware atualmente dá suporte à neblina baseada em intervalo por pixel, a correção de intervalo é oferecida apenas para neblina de vértice.

Para obter mais informações, consulte Neblina de vértice (Direct3D 9).

D3DRS_STENCILENABLE

TRUE para habilitar o estêncil ou FALSE para desabilitar o estêncil. O valor padrão é FALSE. Para obter mais informações, consulte Técnicas de buffer de estêncil (Direct3D 9).

D3DRS_STENCILFAIL

Operação de estêncil a ser executada se o teste de estêncil falhar. Os valores são do tipo enumerado D3DSTENCILOP . O valor padrão é D3DSTENCILOP_KEEP.

D3DRS_STENCILZFAIL

Operação de estêncil a ser executada se o teste de estêncil for aprovado e o teste de profundidade (z-test) falhar. Os valores são do tipo enumerado D3DSTENCILOP . O valor padrão é D3DSTENCILOP_KEEP.

D3DRS_STENCILPASS

Operação de estêncil a ser executada se os testes de estêncil e profundidade (z) forem aprovados. Os valores são do tipo enumerado D3DSTENCILOP . O valor padrão é D3DSTENCILOP_KEEP.

D3DRS_STENCILFUNC

Função de comparação para o teste de estêncil. Os valores são do tipo enumerado D3DCMPFUNC . O valor padrão é D3DCMP_ALWAYS.

A função de comparação é usada para comparar o valor de referência com uma entrada de buffer de estêncil. Essa comparação se aplica somente aos bits no valor de referência e à entrada do buffer de estêncil que são definidos na máscara de estêncil (definida pelo estado de renderização D3DRS_STENCILMASK). Se TRUE, o teste de estêncil será aprovado.

D3DRS_STENCILREF

Um valor de referência int para o teste de estêncil. O valor padrão é 0.

D3DRS_STENCILMASK

Máscara aplicada ao valor de referência e a cada entrada de buffer de estêncil para determinar os bits significativos para o teste de estêncil. A máscara padrão é 0xFFFFFFFF.

D3DRS_STENCILWRITEMASK

Máscara de gravação aplicada a valores gravados no buffer de estêncil. A máscara padrão é 0xFFFFFFFF.

D3DRS_TEXTUREFACTOR

Cor usada para mesclagem de múltipla textura com o argumento de combinação de textura D3DTA_TFACTOR ou a D3DTOP_BLENDFACTORALPHA operação de mesclagem de textura. O valor associado é uma variável D3DCOLOR . O valor padrão é branco opaco (0xFFFFFFFF).

D3DRS_WRAP0

Comportamento de disposição de textura para vários conjuntos de coordenadas de textura. Os valores válidos para esse estado de renderização podem ser qualquer combinação dos sinalizadores D3DWRAPCOORD_0 (ou D3DWRAP_U), D3DWRAPCOORD_1 (ou D3DWRAP_V), D3DWRAPCOORD_2 (ou D3DWRAP_W) e D3DWRAPCOORD_3. Isso faz com que o sistema encapsule na direção da primeira, segunda, terceira e quarta dimensões, às vezes conhecidas como as direções s, t, r e q, para uma determinada textura. O valor padrão para esse estado de renderização é 0 (encapsulamento desabilitado em todas as direções).

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 o recorte primitivo por Direct3D ou FALSE para desabilitá-lo. O valor padrão é TRUE.

D3DRS_LIGHTING

TRUE para habilitar a iluminação Direct3D ou FALSE para desabilitá-la. O valor padrão é TRUE. Somente vértices que incluem um vértice normal são devidamente iluminados; vértices que não contêm um normal empregam um produto de ponto de 0 em todos os cálculos de iluminação.

D3DRS_AMBIENT

Cor de luz ambiente. Esse valor é do tipo D3DCOLOR. O valor padrão é 0.

D3DRS_FOGVERTEXMODE

Fórmula de neblina a ser usada para neblina de vértice. Defina como um membro do tipo enumerado D3DFOGMODE . O valor padrão é D3DFOG_NONE.

D3DRS_COLORVERTEX

TRUE para habilitar a cor por vértice ou FALSE para desabilitá-la. O valor padrão é TRUE. Habilitar a cor por vértice permite que o sistema inclua a cor definida para vértices individuais em seus cálculos de iluminação.

Para obter mais informações, consulte os seguintes estados de renderização:

  • D3DRS_DIFFUSEMATERIALSOURCE
  • D3DRS_SPECULARMATERIALSOURCE
  • D3DRS_AMBIENTMATERIALSOURCE
  • D3DRS_EMISSIVEMATERIALSOURCE

D3DRS_LOCALVIEWER

TRUE para habilitar realces especular relativos à câmera ou FALSE para usar realces especular ortogonais. O valor padrão é TRUE. Os aplicativos que usam projeção ortogonal devem especificar FALSE.

D3DRS_NORMALIZENORMALS

TRUE para habilitar a normalização automática de normais de vértice ou FALSE para desabilitá-lo. O valor padrão é FALSE. Habilitar esse recurso faz com que o sistema normalize os normais de vértice para vértices depois de transformá-los no espaço da câmera, o que pode ser computacionalmente demorado.

D3DRS_DIFFUSEMATERIALSOURCE

Fonte de cores difusa para cálculos de iluminação. Os valores válidos são membros do tipo enumerado D3DMATERIALCOLORSOURCE . O valor padrão é D3DMCS_COLOR1. O valor desse estado de renderização será usado somente se o estado de renderização D3DRS_COLORVERTEX estiver definido como TRUE.

D3DRS_SPECULARMATERIALSOURCE

Fonte de cores especular para cálculos de iluminação. Os valores válidos são membros do tipo enumerado D3DMATERIALCOLORSOURCE . O valor padrão é D3DMCS_COLOR2.

D3DRS_AMBIENTMATERIALSOURCE

Fonte de cores ambiente para cálculos de iluminação. Os valores válidos são membros do tipo enumerado D3DMATERIALCOLORSOURCE . O valor padrão é D3DMCS_MATERIAL.

D3DRS_EMISSIVEMATERIALSOURCE

Fonte de cor emissiva para cálculos de iluminação. Os valores válidos são membros do tipo enumerado D3DMATERIALCOLORSOURCE . O valor padrão é D3DMCS_MATERIAL.

D3DRS_VERTEXBLEND

Número de matrizes a serem usadas para executar a mesclagem de geometria, se houver. Os valores válidos são membros do tipo enumerado D3DVERTEXBLENDFLAGS . O valor padrão é D3DVBF_DISABLE.

D3DRS_CLIPPLANEENABLE

Habilita ou desabilita planos de recorte definidos pelo usuário. Os valores válidos são qualquer DWORD no qual o status de cada bit (definido ou não definido) alterna o estado de ativação de um plano de recorte definido pelo usuário correspondente. O bit menos significativo (bit 0) controla o primeiro plano de recorte no índice 0 e os bits subsequentes controlam a ativação de planos de recorte em índices mais altos. Se um bit for definido, o sistema aplicará o plano de recorte apropriado durante a renderização da cena. O valor padrão é 0.

As macros D3DCLIPPLANEn são definidas para fornecer uma maneira conveniente de habilitar planos de recorte.

D3DRS_POINTSIZE

Um valor float que especifica o tamanho a ser usado para computação de tamanho de ponto em casos em que o tamanho do ponto não é especificado para cada vértice. Esse valor não é usado quando o vértice contém o tamanho do ponto. Esse valor estará em unidades de espaço na tela se D3DRS_POINTSCALEENABLE for FALSE; caso contrário, esse valor está em unidades espaciais do mundo. O valor padrão é o valor que um driver retorna. Se um driver retornar 0 ou 1, o valor padrão será 64, o que permite a emulação do tamanho do ponto de software. Como o método IDirect3DDevice9::SetRenderState aceita valores DWORD, seu aplicativo deve converter uma variável que contenha o valor, conforme mostrado no exemplo de código a seguir.

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

D3DRS_POINTSIZE_MIN

Um valor float que especifica o tamanho mínimo dos primitivos de ponto. Primitivos de ponto são fixados a esse tamanho durante a renderização. Definir isso como valores menores que 1,0 resulta na desativação de pontos quando o ponto não abrange um centro de pixels e a suavização é desabilitada ou renderizada com intensidade reduzida quando a suavização está habilitada. O valor padrão é 1.0f. O intervalo para esse valor é maior ou igual a 0,0f. Como o método IDirect3DDevice9::SetRenderState aceita valores DWORD, seu aplicativo deve converter uma variável que contenha o valor, conforme mostrado no exemplo de código a seguir.

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

D3DRS_POINTSPRITEENABLE

valor bool. Quando TRUE, as coordenadas de textura dos primitivos de ponto são definidas para que texturas completas sejam mapeadas em cada ponto. Quando FALSE, as coordenadas de textura de vértice são usadas para todo o ponto. O valor padrão é FALSE. Você pode obter pontos de pixel único no estilo DirectX 7 definindo D3DRS_POINTSCALEENABLE como FALSE e D3DRS_POINTSIZE como 1,0, que são os valores padrão.

D3DRS_POINTSCALEENABLE

valor bool que controla a computação de tamanho para primitivos de ponto. Quando TRUE, o tamanho do ponto é interpretado como um valor de espaço da câmera e é dimensionado pela função de distância e pelo frusto para o dimensionamento do eixo y do visor para calcular o tamanho final do ponto de espaço na tela. Quando FALSE, o tamanho do ponto é interpretado como espaço na tela e usado diretamente. O valor padrão é FALSE.

D3DRS_POINTSCALE_A

Um valor float que controla a atenuação de tamanho baseado em distância para primitivos de ponto. Ativo somente quando D3DRS_POINTSCALEENABLE é TRUE. O valor padrão é 1.0f. O intervalo para esse valor é maior ou igual a 0,0f. Como o método IDirect3DDevice9::SetRenderState aceita valores DWORD, seu aplicativo deve converter uma variável que contenha o valor, conforme mostrado no exemplo de código a seguir.

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

D3DRS_POINTSCALE_B

Um valor float que controla a atenuação de tamanho baseado em distância para primitivos de ponto. Ativo somente quando D3DRS_POINTSCALEENABLE é TRUE. O valor padrão é 0,0f. O intervalo para esse valor é maior ou igual a 0,0f. Como o método IDirect3DDevice9::SetRenderState aceita valores DWORD, seu aplicativo deve converter uma variável que contenha o valor, conforme mostrado no exemplo de código a seguir.

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

D3DRS_POINTSCALE_C

Um valor float que controla a atenuação de tamanho baseado em distância para primitivos de ponto. Ativo somente quando D3DRS_POINTSCALEENABLE é TRUE. O valor padrão é 0,0f. O intervalo para esse valor é maior ou igual a 0,0f. Como o método IDirect3DDevice9::SetRenderState aceita valores DWORD, seu aplicativo deve converter uma variável que contenha o valor, conforme mostrado no exemplo de código a seguir.

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

D3DRS_MULTISAMPLEANTIALIAS

valor bool que determina como exemplos individuais são computados ao usar um buffer de destino de renderização de várias amostras. Quando definido como TRUE, os vários exemplos são calculados para que a suavização de cena completa seja executada por amostragem em diferentes posições de exemplo para cada amostra múltipla. Quando definido como FALSE, os vários exemplos são todos gravados com o mesmo valor de exemplo, amostrado no centro de pixels, o que permite a renderização não suavizada em um buffer de várias amostras. Esse estado de renderização não tem efeito ao renderizar em um único buffer de exemplo. O valor padrão é TRUE.

D3DRS_MULTISAMPLEMASK

Cada bit nessa máscara, iniciando pelo menos um bit significativo (LSB), controla a modificação de um dos exemplos em um destino de renderização de várias amostras. Assim, para um destino de renderização de 8 amostras, o byte baixo contém as oito habilitações de gravação para cada uma das oito amostras. Esse estado de renderização não tem efeito ao renderizar em um único buffer de exemplo. O valor padrão é 0xFFFFFFFF.

Esse estado de renderização permite o uso de um buffer de várias amostras como um buffer de acúmulo, fazendo a renderização multipassa da geometria em que cada passagem atualiza um subconjunto de amostras.

Se houver n várias amostras e k amostras habilitadas, a intensidade resultante da imagem renderizada deverá ser k/n. Cada RGB de componente de cada pixel é fatorado por k/n.

D3DRS_PATCHEDGESTYLE

Define se as bordas de patch usarão o mosaico de estilo float. Os valores possíveis são definidos pelo tipo enumerado D3DPATCHEDGESTYLE . O valor padrão é D3DPATCHEDGE_DISCRETE.

D3DRS_DEBUGMONITORTOKEN

Defina apenas para depurar o monitor. Os valores possíveis são definidos pelo tipo enumerado D3DDEBUGMONITORTOKENS . Observe que, se D3DRS_DEBUGMONITORTOKEN estiver definida, a chamada será tratada como passando um token para o monitor de depuração. Por exemplo, se - depois de passar D3DDMT_ENABLE ou D3DDMT_DISABLE para D3DRS_DEBUGMONITORTOKEN - outros valores de token forem passados, o estado (habilitado ou desabilitado) do monitor de depuração ainda persistirá.

Esse estado só é útil para builds de depuração. O monitor de depuração usa como padrão D3DDMT_ENABLE.

D3DRS_POINTSIZE_MAX

Um valor float que especifica o tamanho máximo para o qual os sprites de ponto serão fixados. O valor deve ser menor ou igual ao membro MaxPointSize de D3DCAPS9 e maior ou igual a D3DRS_POINTSIZE_MIN. O valor padrão é 64,0. Como o método IDirect3DDevice9::SetRenderState aceita valores DWORD, seu aplicativo deve converter uma variável que contenha o valor, conforme mostrado no exemplo de código a seguir.

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

D3DRS_INDEXEDVERTEXBLENDENABLE

valor bool que habilita ou desabilita a mesclagem de vértice indexada. O valor padrão é FALSE. Quando definido como TRUE, a mesclagem de vértice indexada é habilitada. Quando definido como FALSE, a mesclagem de vértice indexada é desabilitada. Se esse estado de renderização estiver habilitado, o usuário deverá passar índices de matriz como um DWORD empacotado com cada vértice. Quando o estado de renderização está desabilitado e a mesclagem de vértice é habilitada por meio do estado D3DRS_VERTEXBLEND, é equivalente a ter índices de matriz 0, 1, 2, 3 em cada vértice.

D3DRS_COLORWRITEENABLE

Valor UINT que habilita uma gravação por canal para o buffer de cores de destino de renderização. Um bit definido resulta na atualização do canal de cores durante a renderização 3D. Um bit claro faz com que o canal de cores não seja afetado. Essa funcionalidade estará disponível se o bit D3DPMISCCAPS_COLORWRITEENABLE funcionalidades for definido no membro PrimitiveMiscCaps da estrutura D3DCAPS9 para o dispositivo. Esse estado de renderização não afeta a operação clara. O valor padrão é 0x0000000F.

Os valores válidos para esse estado de renderização podem ser qualquer combinação dos sinalizadores D3DCOLORWRITEENABLE_ALPHA, D3DCOLORWRITEENABLE_BLUE, D3DCOLORWRITEENABLE_GREEN ou D3DCOLORWRITEENABLE_RED.

D3DRS_TWEENFACTOR

Um valor float que controla o fator de interpolação. O valor padrão é 0,0f. Como o método IDirect3DDevice9::SetRenderState aceita valores DWORD, seu aplicativo deve converter uma variável que contenha o valor, conforme mostrado no exemplo de código a seguir.

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

D3DRS_BLENDOP

Valor usado para selecionar a operação aritmética aplicada quando o estado de renderização de mesclagem alfa, D3DRS_ALPHABLENDENABLE, é definido como TRUE. Os valores válidos são definidos pelo tipo enumerado D3DBLENDOP . O valor padrão é D3DBLENDOP_ADD.

Se não houver suporte para a funcionalidade do dispositivo D3DPMISCCAPS_BLENDOP, D3DBLENDOP_ADD será executado.

D3DRS_POSITIONDEGREE

N grau de interpolação de posição de patch. Os valores podem ser D3DDEGREE_CUBIC (padrão) ou D3DDEGREE_LINEAR. Para obter mais informações, consulte D3DDEGREETYPE.

D3DRS_NORMALDEGREE

N-patch grau de interpolação normal. Os valores podem ser D3DDEGREE_LINEAR (padrão) ou D3DDEGREE_QUADRATIC. Para obter mais informações, consulte D3DDEGREETYPE.

D3DRS_SCISSORTESTENABLE

TRUE para habilitar o teste de tesoura e FALSE para desabilitá-lo. O valor padrão é FALSE.

D3DRS_SLOPESCALEDEPTHBIAS

Usado para determinar quanto viés pode ser aplicado a primitivos co-planares para reduzir o z-fighting. O valor padrão é 0.

bias = (max * D3DRS_SLOPESCALEDEPTHBIAS) + D3DRS_DEPTHBIAS.

em que max é a inclinação de profundidade máxima do triângulo que está sendo renderizado.

D3DRS_ANTIALIASEDLINEENABLE

TRUE para habilitar a suavização de linha, FALSE para desabilitar a suavização de linha. O valor padrão é FALSE.

Ao renderizar para um destino de renderização de várias camadas, D3DRS_ANTIALIASEDLINEENABLE é ignorado e todas as linhas são renderizadas com alias. Use ID3DXLine para renderização de linhas com suavização em um destino de renderização de várias camadas.

D3DRS_MINTESSELLATIONLEVEL

Nível mínimo de mosaico. O valor padrão é 1.0f. Consulte Mosaico (Direct3D 9).

D3DRS_MAXTESSELLATIONLEVEL

Nível máximo de mosaico. O valor padrão é 1.0f. Consulte Mosaico (Direct3D 9).

D3DRS_ADAPTIVETESS_X

Valor para mosaico adaptável, na direção x. O valor padrão é 0,0f. Confira Mosaico Adaptável.

D3DRS_ADAPTIVETESS_Y

Valor para mosaico adaptável, na direção y. O valor padrão é 0,0f. Consulte Adaptive_Tessellation.

D3DRS_ADAPTIVETESS_Z

Valor para mosaico adaptável, na direção z. O valor padrão é 1,0f. Consulte Adaptive_Tessellation.

D3DRS_ADAPTIVETESS_W

Valor para mosaico adaptável, na direção w. O valor padrão é 0,0f. Consulte Adaptive_Tessellation.

D3DRS_ENABLEADAPTIVETESSELLATION

TRUE para habilitar a mosaico adaptável, FALSE para desabilitá-la. O valor padrão é FALSE. Consulte Adaptive_Tessellation.

D3DRS_TWOSIDEDSTENCILMODE

TRUE habilita o estêncil de dois lados, FALSE o desabilita. O valor padrão é FALSE. O aplicativo deve definir D3DRS_CULLMODE como D3DCULL_NONE para habilitar o modo de estêncil de dois lados. Se a ordem de enrolamento do triângulo for no sentido horário, as operações D3DRS_STENCIL* serão usadas. Se a ordem de enrolamento for anti-horário, as operações D3DRS_CCW_STENCIL* serão usadas.

Para ver se há suporte para estêncil de dois lados, marcar o membro StencilCaps do D3DCAPS9 para D3DSTENCILCAPS_TWOSIDED. Consulte também D3DSTENCILCAPS.

D3DRS_CCW_STENCILFAIL

Operação de estêncil a ser executada se o teste de estêncil CCW falhar. Os valores são do tipo enumerado D3DSTENCILOP . O valor padrão é D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILZFAIL

Operação de estêncil a ser executada se o teste de estêncil CCW for aprovado e o teste z falhar. Os valores são do tipo enumerado D3DSTENCILOP . O valor padrão é D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILPASS

Operação de estêncil a ser executada se o estêncil CCW e os testes z forem aprovados. Os valores são do tipo enumerado D3DSTENCILOP . O valor padrão é D3DSTENCILOP_KEEP.

D3DRS_CCW_STENCILFUNC

A função de comparação. O teste de estêncil CCW será aprovado se a função de estêncil ((máscara de & estêncil) (máscara de estêncil & ) for TRUE. Os valores são do tipo enumerado D3DCMPFUNC . O valor padrão é D3DCMP_ALWAYS.

D3DRS_COLORWRITEENABLE1

Valores ColorWriteEnable adicionais para os dispositivos. Confira D3DRS_COLORWRITEENABLE. Essa funcionalidade estará disponível se o bit D3DPMISCCAPS_INDEPENDENTWRITEMASKS funcionalidades estiver definido no membro PrimitiveMiscCaps da estrutura D3DCAPS9 do dispositivo. O valor padrão é 0x0000000f.

D3DRS_COLORWRITEENABLE2

Valores ColorWriteEnable adicionais para os dispositivos. Confira D3DRS_COLORWRITEENABLE. Essa funcionalidade estará disponível se o bit D3DPMISCCAPS_INDEPENDENTWRITEMASKS funcionalidades estiver definido no membro PrimitiveMiscCaps da estrutura D3DCAPS9 do dispositivo. O valor padrão é 0x0000000f.

D3DRS_COLORWRITEENABLE3

Valores ColorWriteEnable adicionais para os dispositivos. Confira D3DRS_COLORWRITEENABLE. Essa funcionalidade estará disponível se o bit D3DPMISCCAPS_INDEPENDENTWRITEMASKS funcionalidades estiver definido no membro PrimitiveMiscCaps da estrutura D3DCAPS9 do dispositivo. O valor padrão é 0x0000000f.

D3DRS_BLENDFACTOR

D3DCOLOR usado para um fator de mesclagem constante durante a mesclagem alfa. Essa funcionalidade estará disponível se o bit D3DPBLENDCAPS_BLENDFACTOR funcionalidades estiver definido no membro SrcBlendCaps do D3DCAPS9 ou no membro DestBlendCaps do D3DCAPS9. Consulte D3DRENDERSTATETYPE. O valor padrão é 0xffffffff.

D3DRS_SRGBWRITEENABLE

Habilite as gravações de destino de renderização para serem corrigidas por gama para sRGB. O formato deve expor D3DUSAGE_SRGBWRITE. O valor padrão é 0.

D3DRS_DEPTHBIAS

Um valor de ponto flutuante usado para comparação de valores de profundidade. Consulte Desvio de profundidade (Direct3D 9). O valor padrão é 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 o modo de mesclagem separado para o canal alfa. O valor padrão é FALSE.

Quando definido como FALSE, os fatores de mesclagem de destino de renderização e as operações aplicadas a alfa são forçados a serem iguais aos definidos para cor. Esse modo é efetivamente conectado a FALSE em implementações que não definem o limite D3DPMISCCAPS_SEPARATEALPHABLEND. Consulte D3DPMISCCAPS.

O tipo de mesclagem alfa separada é determinado pelos estados de renderização D3DRS_SRCBLENDALPHA e D3DRS_DESTBLENDALPHA.

D3DRS_SRCBLENDALPHA

Um membro do tipo enumerado D3DBLEND . Esse valor é ignorado, a menos que D3DRS_SEPARATEALPHABLENDENABLE seja TRUE. O valor padrão é D3DBLEND_ONE.

D3DRS_DESTBLENDALPHA

Um membro do tipo enumerado D3DBLEND . Esse valor é ignorado, a menos que D3DRS_SEPARATEALPHABLENDENABLE seja TRUE. O valor padrão é D3DBLEND_ZERO.

D3DRS_BLENDOPALPHA

Valor usado para selecionar a operação aritmética aplicada à mesclagem alfa separada quando o estado de renderização, D3DRS_SEPARATEALPHABLENDENABLE, é definido como TRUE.

Os valores válidos são definidos pelo tipo enumerado D3DBLENDOP . O valor padrão é D3DBLENDOP_ADD.

Se não houver suporte para a funcionalidade do dispositivo D3DPMISCCAPS_BLENDOP, D3DBLENDOP_ADD será executado. Consulte D3DPMISCCAPS.

D3DRS_FORCE_DWORD

Força essa enumeração a ser compilada para 32 bits de tamanho. Sem esse valor, alguns compiladores permitiriam que essa enumeração fosse compilada em um tamanho diferente de 32 bits. Este valor não é usado.

Comentários

Renderizar estados Amostrador de textura
ps_1_1 para ps_1_3 4 amostras de textura

 

O Direct3D define a constante D3DRENDERSTATE_WRAPBIAS como uma conveniência para que os aplicativos habilitem ou desabilitem a disposição de textura, com base no inteiro baseado em zero de um conjunto de coordenadas de textura (em vez de usar explicitamente um dos valores de estado D3DRS_WRAP n). Adicione o valor D3DRENDERSTATE_WRAPBIAS ao índice baseado em zero de um conjunto de coordenadas de textura para calcular o valor D3DRS_WRAP n que corresponde a esse índice, conforme mostrado no exemplo a seguir.

// 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 Valor
parâmetro
D3D9Types.h

Confira também

Enumerações direct3D

IDirect3DDevice9::GetRenderState

IDirect3DDevice9::SetRenderState