Tutorial 33 – Depth of Field und Motion Blur

Mit Bedacht eingesetzte Unschärfeberechnungen tragen dazu bei, das Spielerlebnis zu verbessern und können helfen, Einbrüche der Framerate (Ruckler) abzumildern oder die zunehmende Detailarmut im Hintergrund zu verschleiern.
Im heutigen Tutorial demonstrieren wir Ihnen, wie man mithilfe des Depth-of-Field-Effekts die abstandsabhängige Schärfenwahrnehmung des menschlichen Auges simulieren kann und wie sich dank Motion Blur ein Gefühl von Geschwindigkeit erzeugen lässt:

Bei der Berechnung der Bewegungsunschärfe (Motion Blur) kombinieren wir das aktuelle Szenenbild mit dem Low-Resolution-Szenenbild des vorangegangenen Frames. Da wir keine unnötige Rechenleistung verschwenden wollen, nutzen wir das Low-Resolution-Szenenbild gleichsam für die Simulation des Depth-of-Field-Effekts.

Im Zuge der Depth-of-Field-Berechnungen teilen wir den sichtbaren Bereich in Abhängigkeit von der Kameradistanz in drei Zonen auf – den Nahbereich (maximale Unschärfe), den
Fokusbereich (mit zunehmendem Abstand von der Fokusebene nimmt die Schärfentiefe kontinuierlich ab) sowie den Fernbereich (maximale Unschärfe).









Nahsicht-Depth-of-Field-Effekt: Alle Szenenobjekte, für die keine Tiefeninformationen vorliegen (z. B. Sky Boxen, Hintergrund-Billboards, usw.), werden generell unscharf dargestellt.

Fernsicht-Depth-of-Field-Effekt: Alle Szenenobjekte, für die keine Tiefeninformationen vorliegen (z. B. Sky Boxen, Hintergrund-Billboards, usw.), werden generell scharf dargestellt.




Hinweise zum Erstellen eines neuen Projekts:

  • Kopieren Sie den Ordner GraphicsAndPhysicsFrameworkImports ins Projektverzeichnis
  • Kopieren sie alle dll-Dateien sowie die Konfigurationsdatei ResolutionAndRendering.txt aus besagtem Ordner ins gleiche Verzeichnis, in dem sich auch die exe-Datei befindet (in unseren Programmbeispielen ist dies das Bin-Verzeichnis)
  • Binden Sie die folgenden Dateien in Ihr Projekt ein: GraphicsAndPhysics_Framework_Imports.h, GraphicsAndPhysics_Framework_Imports.lib, glew32.lib, glew32s.lib, glut32.lib. Die Glew- und Glut-Bibliotheken ermöglichen die Nutzung der aktuellen OpenGL-Spezifikationen unabhängig vom Framework.

GraphicsAndPhysicsFrameworkDemo33.zip