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 dados de transferência 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 levam 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 - pse 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/ /call_pred callnz pode ser aninhada a uma profundidade máxima de 4. Independentemente, loop - ps/rep - ps instruções podem ser aninhadas a uma profundidade máxima de 4.

Swizzle arbitrário

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

Instruções de gradiente

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

Pré-indicação

Há suporte para a pré-indicação de instrução. Consulte de Registro de Predicado.

Limite de leitura dependente

Não há limites de leitura dependentes.

Limite de instrução de textura

Não há limite de 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 amostradores

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

Tampas do dispositivo

Se houver suporte para ps_3_0, as seguintes tampas têm suporte no hardware (no mínimo):

Boné Valor
MaxTextureWidth, MaxTextureHeight 4K cada
MaxTextureRepeat 8K
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 raster são definidas: D3DPRASTERCAPS_MIPMAPLODBIAS, D3DPRASTERCAPS_ANISOTROPY, D3DPRASTERCAPS_COLORPERSPECTIVE, D3DPRASTERCAPS_SCISSORTEST em D3DCAPS9
Suporte completo para viés de profundidade, incluindo: D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS, D3DPRASTERCAPS_DEPTHBIAS
Conjunto completo de comparações para análise 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
A seguir há suporte para 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 de 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 nenhum limite na mistura de textura e instruções matemáticas.
Todas as operações de estêncil têm suporte. Isso inclui dois estênciis laterais. Consulte D3DSTENCILOP
Tamanho do ponto de suporte do dispositivo por vértice D3DFVFCAPS_PSIZE em D3DCAPS9
Suporte à não potência de 2 texturas. Suporte completo ou suporte condicional não pow-2; O dispositivo não deve ter a limitação somente de textura quadrada 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 houver suporte para vs_3_0 MaxUserClipPlanes no D3DCAPS9 é 6

 

sombreadores de pixel