Nwlapcug.com


Come fare nebbia volumetrica in Open GL

Nel 1999, i giochi di motore portato iD Tech 3 in una nuova era di grafica usando un OpenGL basano acceleratore per migliorare la resa grafica con shader, complesso illuminazione e ombre dinamiche. Il motore inoltre affidamento sull'uso di nebbia volumetrica per limitare la distanza visiva al fine di stabilizzare i tassi di frame e ridurre pop-in. Oggi l'uso di nebbia come un'ottimizzazione strumento ancora reperti uso nello sviluppo di giochi per cellulari dove è scarsa potenza di elaborazione grafica.

Istruzioni

1

Disegnare un nuovo dispositivo di finestra utilizzando il toolkit GLUT. All'interno del ciclo "Main () {...}", iniziare passando i comandi "glutInit();" e "glutInitDisplayMode(...);" dove glutInitDisplayMode avrà argomenti per definire le impostazioni come profondità di colore o frame buffer.

2

Uso "glutInitWindowSize(x,y);" per definire il formato delle finestre e risoluzione del rendering e "glutInitWindowPosition(x,y);" per impostare il punto in cui deve iniziare il pixel superiore sinistro disegno, utilizzando x, y argomenti per rappresentare le coordinate pixel. Visualizzare la finestra e avviare il rendering con il comando "glutCreateWindow()."

3

Attivare l'utilizzo di nebbia e la profondità di prova con l'espressione "glEnable(GL_FOG | GL_DEPTH_TEST);." Disegno di nebbia volumetrica è solo possibile attraverso l'uso del glFogCoordfEXT di estensione di OpenGL e potrebbero non essere disponibile per la destinazione di rendering. L'uso di glGetString(GL_EXTENSIONS) e strstr() vi permetterà di ricercare l'elenco delle estensioni OpenGL del dispositivo di rendering corrente ed è consigliato se si distribuisce in un dispositivo mobile.

4

Specificare come la nebbia verrà visualizzata nel mondo 3d. Uso "glFogi (GL_COLOR_MATERIAL,...);" per impostare come la nebbia svanirà come si avvicina alla telecamera, "abilitiamo (GL_FOG_COLOR,...);" per modificare il colore da grigio, infine, utilizzando "glFogf (GL_FOG_START,...)" e "glFogf (GL_FOG_END,...);" per modificare dove la nebbia sarà almeno il predefinito e più denso.

5

Generare il codice in un file eseguibile e lanciarlo per vedere come la nebbia rende al mondo. Da qui è possibile continuare a utilizzare l'effetto nebbia in un vero e proprio progetto nel suo stato attuale; Tuttavia, non produrrà l'effetto volumetrico come apparirà solido. Nebbia volumetrica deve essere applicato direttamente in un 3d mesh, molto come una texture o uno shader.

6

Utilizzare la "glFogCoordfEXT();" funzione accanto a "glVertex3f();" chiama durante il rendering di un vertice al punto di vista, trasformando l'effetto nebbia solida da prima in una nebbia atmosferica con profondità.

Consigli & Avvertenze

  • Anche se questo articolo ha utilizzato il linguaggio di programmazione C++ per illustrare l'utilizzo di OpenGL; linguaggi come Java, Objective C e c# è possono chiamare OpenGL nello stesso modo con pochissimi cambiamenti di sintassi.