Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le mappe dell'ambiente sferico, o le mappe a sfera, sono trame speciali che contengono un'immagine della scena che circonda un oggetto o gli effetti di illuminazione intorno all'oggetto. A differenza delle mappe dell'ambiente cubico, le mappe a sfera non rappresentano direttamente l'ambiente circostante di un oggetto. L'immagine della teiera nel topic Mapping dell'Ambiente (Direct3D 9) mostra gli effetti di riflessione che è possibile ottenere con il mapping della sfera. Una mappa a sfera è una rappresentazione 2D della visualizzazione completa a 360 gradi della scena che circonda un oggetto, come se fosse eseguita attraverso una lente a occhio di pesce, come illustrato nella figura seguente.
Coordinate delle trame per mappe dell'ambiente sferico
Le coordinate di trama che specifichi per ogni vertice che riceve una mappatura ambientale devono trattare la trama come funzione della distorsione riflettente creata dalla curvatura della superficie. Le applicazioni devono calcolare queste coordinate di trama per ogni vertice per ottenere l'effetto desiderato. Un modo semplice ed efficace per generare coordinate di texture utilizza la normale del vertice come input. Sebbene esistano diversi metodi, l'equazione seguente è comune tra le applicazioni che eseguono il mapping dell'ambiente con mappe sphere.
In queste formule, u e v sono le coordinate texture calcolate, e NX e NY sono i componenti x e y della normale del vertice nello spazio camera. La formula è semplice ma efficace. Se la normale ha una componente x positiva, la normale punta a destra e la coordinata u viene adattata per gestire la trama appropriatamente. Analogamente per la coordinata v: un valore positivo di y indica che la normale punta verso l'alto. L'opposto è vero per i valori negativi in ogni componente.
Se il normale punta direttamente alla fotocamera, le coordinate risultanti non dovrebbero ricevere distorsioni. La distorsione +0,5 per entrambe le coordinate posiziona il punto di distorsione zero al centro della mappa sfera e una normale vertice di (0, 0, z) punta a questo punto. Questa formula non tiene conto del componente z della normale, ma le applicazioni che usano la formula possono ottimizzare i calcoli ignorando i vertici con una normale con un elemento z positivo. Ciò funziona per gli oggetti a ombreggiatura piatta perché, nello spazio della fotocamera, se la normale punta lontano dalla fotocamera (z positivo), il vertice viene scartato quando viene eseguito il rendering dell'oggetto. Per gli oggetti ombreggiati con Gouraud, una normale può puntare lontano dalla fotocamera (asse x positivo) e il triangolo contenente il vertice può ancora essere visibile. Se non si calcolano u e v per questo vertice, la faccia potrebbe ancora essere usata, causando un comportamento imprevisto.
Applicazione di mappe dell'ambiente sferico
Si applica una mappa dell'ambiente agli oggetti nello stesso modo di qualsiasi altra trama, impostando la trama sulla fase di trama appropriata con il metodo IDirect3DDevice9::SetTexture. Impostare il primo parametro sull'indice per la fase della texture desiderata e impostare il secondo parametro sull'indirizzo dell'IDirect3DDevice9 'interfaccia restituita quando è stata creata la texture per la mappa ambientale. È possibile impostare le operazioni e gli argomenti di fusione del colore e dell'alfa in base alle esigenze per ottenere gli effetti di fusione delle texture desiderati.
Argomenti correlati