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.
- ps_3_0 Instruções contém uma lista das instruções disponíveis.
- ps_3_0 Registra lista os diferentes tipos de registros usados pela ALU do sombreador de pixel.
- Modificadores são usados para modificar a maneira como uma instrução funciona.
- Máscara de Gravação do Registro de Destino determina quais componentes do registro de destino são gravados.
- Modificadores do Registro de Origem do Sombreador de Pixel alterar os dados do registro de origem antes da execução da instrução.
- registro de origem Swizzling fornece controle adicional sobre quais componentes de registro são lidos, copiados ou 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 |
Tópicos relacionados
-
sombreadores de pixel