Compartilhar via


ps_3_0

Um sombreador de pixel programável é composto por um conjunto de instruções que operam em dados de pixel. Registra a transferência de dados dentro e fora da ALU. Controle adicional pode ser aplicado para modificar a instrução, os resultados ou quais dados são gravados.

Novos recursos

Adicione um registro facial. Adicione um registro de posição. Os registros de cores (v#) agora são totalmente flutuantes e os registros de coordenadas de textura (t#) foram consolidados. As declarações de entrada recebem os nomes de uso e vários usos são permitidos para componentes de um determinado registro.

Controle de Fluxo Dinâmico

O dispositivo dá suporte ao controle de fluxo dinâmico (se bool - ps, break - ps e break_comp - ps). A profundidade do aninhamento varia de 0 a 24.

Número de registros temporários

O número de registros temporários com suporte é 32.

Profundidade de aninhamento do controle de fluxo estático

A chamada - ps/callnz /call_pred pode ser aninhada a uma profundidade máxima de 4. Independentemente, as instruções loop - ps/rep - ps podem ser aninhadas a uma profundidade máxima de 4.

Swizzle arbitrário

Há suporte para swizzle arbitrário. Consulte Registro de Origem Girando.

Instruções de gradiente

Há suporte para instruções de gradiente. Consulte dsx - ps, dsy - ps e texldd - ps.

Predicação

Há suporte para a precatório de instruções. Confira Registro de predicado.

Limite de Leitura Dependente

Não há limites de leitura dependentes.

Limite de instrução de textura

Não há limite para instruções de textura.

Contagem de instruções

Cada sombreador de pixel é permitido em qualquer lugar, de 512 até o número de slots em MaxPixelShader30InstructionSlots (não mais do que 32768). O número de instruções executadas pode ser muito maior devido ao suporte a looping. MaxPShaderInstructionsExecuted deve ser pelo menos 2^16.

Contagem de amostragem

O número de amostradores de textura disponíveis é 16.

Tampas do dispositivo

Se ps_3_0 tiver suporte, as seguintes tampas serão compatíveis com hardware (no mínimo):

Tampa Valor
MaxTextureWidth, MaxTextureHeight 4K cada
MaxTextureRepeat 8 K
MaxAnisotropy 16
PixelShaderVersion 3_0
MaxPixelShader30InstructionSlots 512
As seguintes tampas primitivas são definidas: D3DPMISCCAPS_BLENDOP, D3DPMISCCAPS_CLIPPLANESCALEDPOINTS, D3DPMISCCAPS_CLIPTLVERTS, D3DPMISCCAPS_CULLCCW, D3DPMISCCAPS_CULLCW, D3DPMISCCAPS_CULLNONE, D3DPMISCCAPS_FOGINFVF, D3DPMISCCAPS_MASKZ
As seguintes tampas de varredura são definidas: D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE, D3DPRASTERCAPS_SCISSORTEST no D3DCAPS9
Suporte completo para desvio de profundidade, incluindo: D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS
Conjunto completo de comparações para teste de profundidade e alfa, incluindo: Todos os D3DPCMPCAPS em D3DCAPS9.
Modos de mesclagem de origem Todos os modos de mesclagem têm suporte como origem (exceto D3DPBLENDCAPS_SRCALPHASAT, D3DPBLENDCAPS_BOTHSRCALPHA e D3DPBLENDCAPS_BOTHINVSRCALPHA).
Há suporte para as seguintes tampas de textura: D3DPTEXTURECAPS_CUBEMAP, D3DPTEXTURECAPS_MIPCUBEMAP, D3DPTEXTURECAPS_MIPMAP, D3DPTEXTURECAPS_MIPVOLUMEMAP, D3DPTEXTURECAPS_PERSPECTIVE, D3DPTEXTURECAPS_PROJECTED, D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE, D3DPTEXTURECAPS_VOLUMEMAP
Há suporte para o seguinte em tampas de filtro de textura, tampas de filtro de textura de volume e tampas de filtro de textura de cubo: D3DPTFILTERCAPS_MINFPOINT, D3DPTFILTERCAPS_MINFLINEAR, D3DPTFILTERCAPS_MINFANISOTROPIC (isso não é necessário para VolumeTextureFilterCaps e CubeTextureFilterCaps ), D3DPTFILTERCAPS_MIPFPOINT, D3DPTFILTERCAPS_MIPFLINEAR, D3DPTFILTERCAPS_MAGFPOINT D3DPTFILTERCAPS_MAGFLINEAR
Os seguintes modos de endereço de textura têm suporte em estágios de vértice e pixel: D3DPTADDRESSCAPS_WRAP, D3DPTADDRESSCAPS_MIRROR, D3DPTADDRESSCAPS_CLAMP, D3DPTADDRESSCAPS_BORDER, D3DPTADDRESSCAPS_INDEPENDENTUV, D3DPTADDRESSCAPS_MIRRORONCE
Há suporte para todas as tampas do sombreador de pixel. DynamicFlowControlDepth = 24, NumTemps = 32, StaticFlowControlDepth = 4, NumInstructionSlots = 512. Há suporte para os seguintes recursos: predication, swizzles arbitrários e instruções de gradiente. Não há limite de leitura dependente e não há limite para a mistura de textura e instruções matemáticas.
Todas as operações de estêncil têm suporte. Isso inclui dois estênceis laterais. Consulte D3DSTENCILOP
Tamanho do ponto de suporte do dispositivo por vértice D3DFVFCAPS_PSIZE no D3DCAPS9
Sem potência de 2 suporte de textura. Suporte completo ou suporte condicional não pow-2; O dispositivo não deve ter a limitação de textura quadrada apenas como em D3DPTEXTURECAPS_SQUAREONLY.
Se o dispositivo der suporte a vários rendertargets, as seguintes tampas serão compatíveis: D3DPMISCCAPS_INDEPENDENTWRITEMASKS, D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING
Se vs_3_0 tiver suporte MaxUserClipPlanes em D3DCAPS9 é 6

 

Sombreadores de pixel