Non c'è davvero un buon modo per farlo in modo efficiente analiticamente per tutti i casi d'angolo. La maggior parte o tutti i renderer 2D commerciali che tentano di eseguire il calcolo della copertura analitica commettono errori prevedibili rispetto ai metodi di multicampionamento.
Un problema tipico sono due forme sovrapposte che condividono lo stesso bordo. La situazione comune è che i canali alfa si sommano a un bordo alfa troppo spesso che alias leggermente. O se le forme hanno colori diversi, il sistema confonde il colore dello sfondo. Questo è estremamente fastidioso.
Immagine 1 : il motore di rendering confonde la copertura e crea un sottile contorno bianco dove non dovrebbe esserci alcun contorno.
La seconda copertura perfetta equivale al filtraggio delle scatole. Possiamo sicuramente fare di meglio. Considerando che ci sono così tanti casi angolari speciali che richiederebbero operazioni booleane sulle forme per fare bene, il super campionamento è ancora superiore. In effetti, le stime di copertura possono essere utilizzate per concentrare il campionamento laddove molto probabilmente è necessario.
La situazione potrebbe essere semplificata in poligoni a livelli di sub pixel, quindi la soluzione analitica discreta potrebbe essere risolta. Ma questo a scapito della flessibilità. Ad esempio, non è fuori dubbio che i futuri sistemi vettoriali potrebbero voler consentire linee sfocate a larghezza variabile che rappresentano un problema per le soluzioni analitiche, così come altri oggetti a colori variabili.
Come farlo analiticamente
Immagine 2 : Supponi di avere questa scena, vista esplosa a destra
Ora non puoi semplicemente farlo analiticamente, ogni pezzo separatamente e quindi unire i dati. Perché risulta in dati errati. Vedere la fusione alfa lascerebbe che il blu brilli attraverso gli spazi vuoti se lo facessi.
Quello che devi fare è dividere la scena in modo che ogni forma elimini ciò che è sotto l'altro:
Immagine 3 : è necessario tagliare le superfici sottostanti.
Ora, se tutto è opaco, allora è tutto semplice. basta calcolare l'area di ogni pezzo e moltiplicarlo per colore e sommarli insieme. Ora è possibile usare qualcosa come questo .
Tutto ciò si interrompe se le singole forme non sono opache fuori rotta ma anche ciò può essere fatto ad un certo livello.
Ricorda:
- Il calcolo AA deve essere eseguito nello spazio colore lineare e riconvertito per utilizzare lo spazio.