Considerações sobre desempenho (Direct3D 10)

Usando pools de efeitos

É comum que pipelines de renderização usem muitos sombreadores para renderizar diferentes tipos de objeto e efeitos especiais. O sombreador é uma mistura de estados que são comuns entre todos os sombreadores, como uma matriz mundial ou uma posição clara, e outro estado específico para cada sombreador, como a cor difusa de um objeto ou o cálculo de realce especular. Um pool de efeitos é um lugar na memória para armazenar o estado que é usado em muitos sombreadores, bem como objetos de dispositivo comuns, como sombreadores, objetos de estado de renderização e buffers constantes. A melhoria de desempenho resulta da atualização do estado comum uma vez para todos os sombreadores que precisam desse estado.

Um pool de efeitos é um local de memória compartilhada para o estado de efeito. Um pool é criado de forma semelhante a um efeito ; ele pode ser criado a partir da memória (ou de um arquivo ou de um recurso). Isso leva a dois tipos diferentes de efeitos: um efeito global que não depende do estado em outro efeito versus um efeito filho que depende do estado em outro efeito.

Especifique se um efeito é um efeito global (o caso padrão) ou um efeito filho (fornecendo o sinalizador D3D10_EFFECT_COMPILE_CHILD_EFFECT ) quando o efeito é criado. Um efeito global pode servir como um pool de efeitos; um efeito filho não pode ser um pool de efeitos.

Renderizando um efeito

Efeitos (Direct3D 10)