Unity veröffentlichte am 2. Januar 2014 einen technischen Beitrag zu Occlusion Culling in Unity 4.3. Der dritte und letzte Teil der Serie zeigt, wie sich typische Fehler bei der Sichtbarkeitsberechnung mit den Werkzeugen von Umbra untersuchen lassen. Für Entwickler ist das wichtig, weil falsch gesetzte Occluder entweder unnötige Geometrie zeichnen oder sichtbare Objekte aus der Szene entfernen können.
Visualisierungen zeigen die Sichtbarkeitsdaten
Die Occlusion-Ansicht bietet drei zentrale Visualisierungen. Camera Volumes zeigt die Zelle, in der sich die Kamera befindet. Visibility Lines projiziert den Tiefenpuffer zurück in die Szene und macht sichtbar, welche Punkte Umbra als nicht verdeckt erkennt. Die Portals-Ansicht stellt die durchquerten Portale dar. Damit lässt sich nachvollziehen, wie viele Portale die Abfrage passiert und an welcher Stelle Sichtbarkeit verloren geht.
Smallest Hole und Smallest Occluder
Umbra arbeitet konservativ und meldet ein Objekt im Zweifel als sichtbar. Werden verdeckte Objekte trotzdem gerendert, kann ein zu grober Wert für Smallest Occluder die Ursache sein. Ein kleinerer Wert erzeugt detailliertere Sichtbarkeitsdaten, verlängert aber die Berechnung und vergrößert den Speicherbedarf. Werden dagegen sichtbare Objekte ausgeblendet, empfiehlt Unity zuerst eine Prüfung von Smallest Hole. Bei der Voxelisierung können kleine Öffnungen geschlossen werden. Ein niedrigerer Wert kann solche Leaks erhalten.
Kamera und statische Geometrie prüfen
Weitere Fehler entstehen durch Rückseiten von Dreiecken oder eine Kamera, die sehr nah an einem Occluder steht. Unity empfiehlt, den Backface-Limit-Wert testweise auf 100 zu setzen und problematische Geometrie auf zweiseitige oder geschlossene Flächen zu prüfen. In einer Third-Person-Kamera darf die Kamera nicht in einen Occluder geraten, weil Umbra das Volumen als geschlossen behandelt. Auch die Markierung als statischer Occluder gehört zur Fehlersuche.
Die technischen Einstellungen ergänzen die Grundlagen zur überarbeiteten Occlusion-Culling-Technik in Unity 4.3. Der Versionsstand lässt sich zusätzlich im offiziellen Unity-Archiv nachvollziehen.
