Blending trama (Direct3D 9)
Direct3D può fondere fino a otto trame sulle primitive in un singolo passaggio. L'uso di più blend di trame può aumentare profondamente la frequenza dei fotogrammi di un'applicazione Direct3D. Un'applicazione usa una combinazione di trame multiple per applicare trame, ombre, illuminazione speculare, illuminazione diffusa e altri effetti speciali in un singolo passaggio.
Per usare la fusione di trame, l'applicazione deve prima verificare se l'hardware dell'utente lo supporta. Queste informazioni sono disponibili nel membro TextureCaps della struttura D3DCAPS9 . Per informazioni dettagliate su come eseguire query sull'hardware dell'utente per le funzionalità di blending della trama, vedere IDirect3DDevice9::GetDeviceCaps.
Fasi della trama e fusione di trame
Direct3D supporta la fusione di più trame a passaggio singolo tramite l'uso delle fasi della trama. Una fase di trama accetta due argomenti ed esegue un'operazione di fusione su di essi, passando il risultato per un'ulteriore elaborazione o per la rasterizzazione. È possibile visualizzare una fase di trama come illustrato nel diagramma seguente.
Come illustrato nel diagramma precedente, le fasi della trama combinano due argomenti usando un operatore specificato. Le operazioni comuni includono la modulazione semplice o l'aggiunta del colore o dei componenti alfa degli argomenti, ma sono supportate più di due decine di operazioni. Gli argomenti per una fase possono essere una trama associata, il colore iterato o alfa (iterato durante l'ombreggiatura di Gouraud), il colore arbitrario e alfa o il risultato dalla fase di trama precedente. Per altre informazioni, vedere Texture Blending Operations and Arguments (Direct3D 9).
Nota
Direct3D distingue la fusione dei colori dalla fusione alfa. Le applicazioni impostano operazioni e argomenti per colore e alfa singolarmente e i risultati di queste impostazioni sono indipendenti tra loro.
La combinazione di argomenti e operazioni usate da più fasi di fusione definisce un semplice linguaggio di fusione basato su flusso. I risultati da una fase passano verso un'altra fase, da quella fase alla successiva e così via. Il concetto di risultati che scorre dalla fase alla fase fino alla fine essere rasterizzato su un poligono è spesso chiamato la fusione della trama a cascata. Il diagramma seguente illustra come le singole fasi della trama costituiscono la fusione a cascata della trama.
Ogni fase in un dispositivo ha un indice in base zero. Direct3D consente fino a otto fasi di fusione, anche se è sempre necessario controllare le funzionalità del dispositivo per determinare il numero di fasi supportate dall'hardware corrente. La prima fase di fusione è all'indice 0, la seconda è a 1 e così via, fino all'indice 7. Il sistema combina le fasi in aumento dell'ordine di indice.
Usare solo il numero di fasi necessarie; le fasi di fusione inutilizzate sono disabilitate per impostazione predefinita. Quindi, se l'applicazione usa solo le prime due fasi, è necessario impostare solo operazioni e argomenti per la fase 0 e 1. Il sistema combina le due fasi e ignora le fasi disabilitate.
Nota
Se l'applicazione varia il numero di fasi usate per situazioni diverse, ad esempio quattro fasi per alcuni oggetti e solo due per altre, non è necessario disabilitare in modo esplicito tutte le fasi usate in precedenza. Un'opzione consiste nel disabilitare l'operazione di colore per la prima fase inutilizzata, quindi tutte le fasi con un indice superiore non verranno applicate. Un'altra opzione consiste nel disabilitare completamente il mapping della trama impostando l'operazione di colore per la prima fase trama (fase 0) su D3DTOP_DISABLE. Una terza opzione è quando una fase di trama ha D3DTSS_COLORARG1 uguale a D3DTA_TEXTURE e il puntatore della trama per la fase è NULL, questa fase e tutte le fasi dopo che non vengono elaborate.
Altre informazioni sono contenute negli argomenti seguenti.
- Blending operations and arguments (Direct3D 9)
- Assegnazione delle trame correnti (Direct3D 9)
- Creazione di fasi di fusione (Direct3D 9)
- Fusione di trame alfa (Direct3D 9)
- Blending di trame multipass (Direct3D 9)
- Mapping chiaro con trame (Direct3D 9)
Argomenti correlati