Considerazioni sulle prestazioni (Direct3D 10)
Uso dei pool di effetti
È comune che le pipeline di rendering usino molti shader per eseguire il rendering di diversi tipi di oggetto ed effetti speciali. Lo shader è una combinazione di stati comuni tra tutti gli shader, ad esempio una matrice globale o una posizione di luce, e un altro stato specifico per ogni shader, ad esempio il colore diffuso di un oggetto o il calcolo dell'evidenziazione speculare. Un pool di effetti è una posizione in memoria per archiviare lo stato usato in molti shader, nonché oggetti dispositivo comuni, ad esempio shader, oggetti di stato di rendering e buffer costanti. Il miglioramento delle prestazioni comporta l'aggiornamento dello stato comune una sola volta per tutti gli shader che necessitano di tale stato.
Un pool di effetti è una posizione di memoria condivisa per lo stato dell'effetto. Un pool viene creato in modo analogo a un effetto; può essere creato dalla memoria (o da un file o da una risorsa). Ciò porta a due diversi tipi di effetti: un effetto globale che non dipende dallo stato in altri effetti rispetto a un effetto figlio che dipende dallo stato in un altro effetto.
Specificare se un effetto è un effetto globale (caso predefinito) o un effetto figlio (specificando il flag di D3D10_EFFECT_COMPILE_CHILD_EFFECT) quando viene creato l'effetto. Un effetto globale può fungere da pool di effetti; Un effetto figlio non può essere un pool di effetti.
Argomenti correlati
-
Rendering di un effetto