Recursos (Direct3D 10)
Um recurso é uma área na memória que pode ser acessada pelo pipeline do Direct3D. Para que o pipeline acesse a memória com eficiência, os dados fornecidos para o pipeline (como geometria de entrada, recursos de sombreador, texturas etc) devem ser armazenados em um recurso. Há dois tipos de recursos dos quais todos os recursos do Direct3D derivam: um buffer ou uma textura. Até 128 recursos podem estar ativos para cada estágio de pipeline.
Cada aplicativo normalmente criará muitos recursos. Exemplos de recurso incluem: buffers de vértice, buffer de índice, buffer constante, texturas e recursos de sombreador. Há várias opções que determinam como os recursos podem ser usados. Você pode criar recursos que são fortemente tipados ou digitam menos; você pode controlar se os recursos têm acesso de leitura e gravação; você pode tornar os recursos acessíveis apenas para a CPU, GPU ou ambos. Naturalmente, haverá velocidade versus compensação de funcionalidade – quanto mais funcionalidade você permitir que um recurso tenha, menos desempenho você deve esperar.
Como um aplicativo geralmente usa muitas texturas, o Direct3D também apresenta o conceito de uma matriz de texturas para simplificar o gerenciamento de texturas. Uma matriz de texturas contém uma ou mais texturas (todos do mesmo tipo e dimensões) que podem ser indexadas de dentro de um aplicativo ou por sombreadores. As matrizes de textura permitem que você use uma única interface com vários índices para acessar muitas texturas. Você pode criar quantas matrizes de textura você precisar para gerenciar diferentes tipos de textura.
Depois de criar os recursos que seu aplicativo usará, você conectará ou associará cada recurso aos estágios de pipeline que os usarão. Isso é feito chamando uma API de associação, que usa um ponteiro para o recurso. Como mais de um estágio de pipeline pode precisar de acesso ao mesmo recurso, o Direct3D 10 apresenta o conceito de uma exibição de recurso. Uma exibição identifica a parte de um recurso que pode ser acessado. Você pode criar m views ou um recurso e associá-los a n estágios de pipeline, supondo que você siga as regras de associação para o recurso compartilhado (o runtime gerará erros no tempo de compilação se você não o fizer).
Uma exibição de recurso fornece um modelo geral para acesso a um recurso (texturas, buffers etc.). Como você pode usar uma exibição para informar ao runtime quais dados acessar e como acessá-los, as exibições de recursos permitem que você crie menos recursos. Ou seja, você pode criar recursos para um determinado tamanho em tempo de compilação e declarar o tipo de dados dentro do recurso quando o recurso for associado ao pipeline. As exibições expõem muitos novos recursos para usar recursos, como a capacidade de ler superfícies de profundidade/estêncil no sombreador, gerar cubemaps dinâmicos em uma única passagem e renderizar simultaneamente em várias fatias de um volume.
Para saber mais sobre os tipos de recursos básicos, matrizes de textura e como criar e usar recursos, consulte estes outros tópicos:
- tipos de recursos
- escolhendo um recurso
- criando recursos de buffer
- criando recursos de textura
- copiando e acessando de dados de recurso
- estrutura de memória e exibições
- de compactação de blocos
- da Tabela de Limites de Recursos
- sistemas de coordenadas
- regras de Floating-Point
- regras de conversão de tipo de dados
- mapeamento de formatos herdados
Tópicos relacionados
-
Guia de programação do para o Direct3D 10