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 |
|
Confira também