Compartilhar via


Recursos do Direct3D 10.1

O Direct3D 10.1 estende o conjunto de recursos do Direct3D 10.0 com os seguintes novos recursos:

  • Modos de Mistura – Modos de mistura independentes por destino de renderização usando a nova interface de estado de mistura (consulte interface ID3D10BlendState1). As operações de combinação de origem dupla são restritas para renderizar o slot de destino 0; você pode não gravar em outras saídas ou ter destinos de renderização associados a slots diferentes do slot 0.

  • Comportamento de abate – os rostos de área zero são automaticamente eliminados; isso afeta somente a renderização de wireframe.

  • Regras de ponto flutuante - Usa as mesmas regras IEEE-754 para operações de ponto flutuante EXCETO 32 bits de ponto flutuante foram reforçadas para produzir um resultado dentro de 0,5 unidade-último-lugar (0,5 ULP) do resultado infinitamente preciso. Isso se aplica à adição, subtração e multiplicação. (precisão de 0,5 ULP para multiplicação, 1,0 ULP para recíproco).

  • Formatos – A precisão da mistura float16 aumentou para 0,5 ULP. A combinação também é necessária para formatos UNORM16/SNORM16/SNORM8.

  • O Multisample Anti-Aliasing – Multisampling foi aprimorado para generalizar a transparência baseada em cobertura e fazer com que o multisampling funcione de forma mais eficaz com a renderização de várias passões. Para conseguir isso, todas as semânticas de várias amostras são definidas como se o sombreador de pixels sempre fosse executado uma vez por exemplo (frequência de exemplo), computando uma cor separada por exemplo. Se um sombreador de pixel não usar atributos por exemplo, ele calculará o mesmo valor para cada amostra coberta em um pixel. Nesse caso, ele é equivalente ao hardware que executa o sombreador uma vez por pixel (frequência de pixel), replicando o resultado para todos os exemplos cobertos. Naturalmente, a execução em frequência de pixel sempre produz os mesmos resultados que a execução do mesmo sombreador na frequência de exemplo, quando os atributos são amostrados em uma frequência de pixel. A estatística do pipeline PSInvocations é incrementada em frequência de exemplo, a menos que o sombreador esteja em execução na frequência de pixels.

  • Largura de banda do estágio do pipeline – aumentou a quantidade de dados que podem ser passados entre estágios de sombreador:

    Recurso Limites
    Registros entre estágios do sombreador 32 (32 bits x 4 componentes)
    Registros de entrada do sombreador de vértice 32
    Slots de entrada do Assembler de entrada 32

     

  • Regras de rasterização – as regras de rasterização foram alteradas para linhas, além disso, novas funcionalidades foram adicionadas.

    • MultisampleEnable afeta apenas a rasterização de linha (pontos e triângulos não são afetados) e é usado para escolher um algoritmo de desenho de linha. Isso significa que não há mais suporte para alguma rasterização de várias várias funções do Direct3D 10.
    • Nova execução de sombreador de pixel de frequência de exemplo com rasterização primitiva.
  • Recursos – CopyResource está habilitado em dois novos cenários:

    • As superfícies MSAA de cor e profundidade/estêncil agora podem ser usadas com CopyResource como uma origem ou destino
    • Conversão de formato durante a cópia entre determinadas pré-estruturas de 32/64/128 bits, recursos digitados e representações compactadas das mesmas larguras de bit.
  • Amostragem de Textura – as instruções sample_c e sample_c_lz são definidas para funcionar com Texture2DArrays e TextureCubeArrays, use o membro Location (o componente alfa) para especificar um índice de matriz.

  • Exibições – TextureCube e o novo TextureCubeArray (consulte D3D10_TEXCUBE_ARRAY_SRV1) não são recursos reais, mas são novos modos de exibição em um recurso Texture2DArray. Crie uma exibição de recurso a partir de um recurso Texture2DArray com um novo sinalizador de uso (D3D10_RESOURCE_MISC_TEXTURECUBE), use a nova interfaceinterface ID3D10ShaderResourceView1 depara associar uma exibição de textura de cubo ao pipeline.

Os novos recursos exigem um tipo de dispositivo 10.1 (consulte ID3D10Device1 Interface) que pode ser criado chamando D3D10CreateDevice1, ou você pode criar o dispositivo e a cadeia de troca ao mesmo tempo chamando D3D10CreateDeviceAndSwapChain1.

No Windows Vista Service Pack 1, as DLLs direct3D 10.0 e Direct3D 10.1 existem lado a lado no sistema. Para acessar os recursos 10.1, faça um dos seguintes procedimentos:

Acessando recursos 10.1 no Vista Gold e no Vista Service Pack 1

Os desenvolvedores que desejam dar suporte ao Vista Gold e ao SP1 terão que considerar a falta das novas extensões de API 10.1 no Vista Gold. DXUT e D3DX10 fornecerão funções de conveniência para criar o dispositivo apropriado, com base nas DLLs disponíveis no sistema e no hardware disponível (10.0 ou 10.1). O dispositivo 10.1 herda do dispositivo 10.0 e pode ser recuperado usando QueryInterface(). É recomendável que cada aplicativo acompanhe o tipo de dispositivo e mantenha um ponteiro para o dispositivo 10.1 (se disponível) para evitar chamadas frequentes de QueryInterface quando a funcionalidade 10.1 for desejada. Da mesma forma, em que as exibições de recurso 10.1 e os objetos de estado são associados pela classe personalizada de um aplicativo, é recomendável que o aplicativo acompanhe se o objeto é um tipo 10.0 ou 10.1 para evitar chamadas queryInterface() redundantes. D3DX10 inclui um conjunto de funções de utilitário para simplificar esse processo (consulte D3DX10CreateDevice e D3DX10CreateDeviceAndSwapChain).

Acessando recursos 10.1 no Vista Service Pack 1 exclusivamente

Alguns desenvolvedores podem optar por exigir o Vista Service Pack 1, que será distribuído amplamente para usuários finais e inclui uma série de melhorias fora do Direct3D 10.1. Esses desenvolvedores podem usar exclusivamente os cabeçalhos e bibliotecas do Direct3D 10.1, usando uma dependência das DLLs do Direct3D 10.1 que dão suporte a hardware 10.0 e 10.1 (algumas chamadas podem falhar, no entanto, em dispositivos 10.0 em que a nova funcionalidade não tem suporte).

Algumas observações adicionais:

  • As APIs expostas no D3DX10.dll aceitarão dispositivos 10.0 e 10.1 e aproveitarão a funcionalidade 10.1 quando disponível.
  • D3D10SDKLayers.dll dá suporte a um dispositivo 10.1 e pode gerar a depuração apropriada para recursos 10.1.
  • D3D10Ref.dll implementa um dispositivo de software 10.0 e 10.1.
  • D3DX10 e FXC dão suporte ao modelo de sombreador 10.1 atualizado com os seguintes destinos: vs_4_1, gs_4_1, ps_4_1 e fx_4_1 que podem ser associados a um dispositivo 10.1. Um dispositivo 10.1 dá suporte aos sombreadores do modelo de sombreador 4.0 e 4.1.
  • A estrutura de efeitos do Direct3D 10.0 dá suporte a dispositivos 10.0 e 10.1, no entanto, qualquer técnica que inclua sombreadores do modelo 4.1 ou os novos recursos 10.1 deve usar um dispositivo 10.1.

Guia de programação do para o Direct3D 10