The Witcher 3: mehr "Leistung" durch Occlusion Culling, Open-World größer als Skyrim - Exklusivvideo
Auf der vergangenen Game Developers Conference hat Przemysław Czatrowski, Engine-Entwickler bei CD Projekt Red, eine Präsentation zur genutzen Middleware Umbra 3 in The Witcher 3: Wild Hunt abgehalten. Damit ist es möglich, Ressourcen durch sogenanntes Occlusion Culling einzusparen, indem nur das aktuelle Sichtfeld gerendert wird. Zugleich werden die Größen für zwei Städte angegeben, die jeweils schon um ein Vielfaches größer sind als Tamriel in Skyrim.
Sogenannte Level of Details (LODs) sind bei Videospielen schon seit Jahren üblich, sodass die Bildqualität der jeweiligen Objekte abnimmt, je weiter man sich von ihnen entfernt. Auch werden die Szenarien üblicherweise in verschiedene Gebiete unterteilt, die erst bei der "Überschreitung" geladen werden. Um weitere Rechenleistung einzusparen, hat sich das für The Witcher 3: Wild Hunt verantwortliche Entwicklerstudio CD Projekt Red einen weiteren Trick einfallen lassen. Die Präsentation wurde schon auf der Game Developers Conference Mitte März abgehalten, allerdings wurde sie erst jetzt innerhalb einer PDF-Datei samt Video (der wichtige Ausschnitt ist unten eingebettet) der Öffentlichkeit zugänglich gemacht.
Mittels sogenanntem Occlusion Culling wird stark vereinfacht gesagt nur das aktuelle Sichtfeld des Spielers auch tatsächlich gerendert. Ressourcen - namentlich GPU- und CPU-Rechenleistung -, die zuvor also benötigt wurden, um eigentlich nicht sichtbare Objekte darzustellen, werden nun eingespart und können in das tatsächlich sichtbare Bild gesteckt werden. CD Projekt Red spricht von 1 bis 5 Prozent, die tatsächlich nur dargestellt werden. Dazu bedient sich der Entwickler der Umbra-Middleware, die dahingehend angepasst worden ist und Occlusion Culling in zwei Schritten ermöglicht:
Als erstes wird die Open-World in sogenannte Tiles gegliedert, die jeweils einen "Tome" mit Datenpaketen besitzen und in den Videospeicher geladen werden. Die Engine entscheidet daraufhin anhand der Spielerposition, welche Tomes benötigt werden und rendert sie entsprechend. Unterscheidet sich die benötigte "Tome-Collection" von der vorherigen, wird innerhalb von 1,8 Millisekunden eine neue zusammengestellt und die alte gelöscht. In den Spielszenen stellen die grünen Areale die aktuell sichtbaren dar. Die gelben stellen hingegen jene dar, die zur neuen Tome-Collection hinzukommen und im nächsten Frame entsprechend auch in den grünen Bereich wechseln.
Wie im Video zu sehen ist, betrifft das Occlusion Culling sowohl statische Meshes als auch Partikel. Schatten sind aktuell noch nicht beinhaltet, was sich künftig jedoch noch ändern soll. In der Präsentation werden zu guter Letzt auch noch einige Statistiken genannt, in denen erstmals die Größe der Spielwelt angedeutet wird. Allein die beiden Städte Skellige und City of Novigrad sollen 64 respektive 72,25 Quadratkilometer groß sein. Zum Vergleich: Tamriel in Skyrim ist knapp 40 km² groß, wobei der Kontinent subjektiv noch um einiges größer ist. Beispielsweise werden Gebäude von außen kleiner dargestellt, als die Räume innerhalb.

Was für eine großartige Technik.. Ist ja nicht so, dass die Grundlagen dieser schon in der guten, alten Q3-Engine möglich waren: Mapping manual/Hint brushes - OpenArena
Das ist auch wirklich nichts neues. Ich kann es jetzt nur aus meiner Erfahrung sagen, die Unreal Engine 3 hatte es seit Release und wird in unterschiedlichen Versionen benutzt.
Ich benutze in meinem IndieSpiel DistanceCulling das über die Entfernung vom Spieler zum Objekt funktioniert. Es gibt ziemlich viele unterschiedliche Varianten vom Culling.
Das Occlusion Culling sollte dem [Ins Forum, um diesen Inhalt zu sehen] sehr ähnlich kommen.
Warum das hier jetzt als so toll und neu verkauft wird weiß ich nicht. Vor allem da es bei schnellen Bewegungen schnell zu Verzögerungen kommen kann wenn die Objekte so krass ausgeblendet werden. Da kann es ganz schnell passieren das man mal um die Ecke kommt und die Objekte noch mitten am nachladen sind.
Naja da das so ziemlich jedes Spiel schon nutzt, ob dynamisch oder statisch. Ja es ist möglich, nur ob es den Aufwand wert ist, ein Areal in viele, klein genuge einzelteile zu zerlegen, das diese auch wircklich nur einzeiln geladen werden wenn diese gebraucht werden ist die andere Frage
Allgemein kann man aber bei quasi jedem Spiel sehen dass Surround etwas mehr Leistung, auch der CPU, kostet als eine 16:9 Auflösung mit gleicher Anzahl an Bildpunkten, ergo wenden die auch culling an.
Also Fazit:
"Tilebased Occlusion Culling" könnte(!) was Neues sein, allgemein wird das aber schon längst angewendet.
Interessantes Feature, hoffen wir das es richtig funktioniert.
Die Konsolenindustrie tut ja aber schließlich auch alles dafür, dass das nicht allzu öffentlich ist...
Zur Technik: Wie viele andere hier, dachte ich eigentlich auch, dass die Grundtechnik altbekannt wäre. Trotzdem freue ich mich natürlich, dass sie in Witcher III integiert worden ist---das gibt einem eine realistische Chance, dass die Anforderungen für mittlere Details nicht merklich steigen! Auf maximalen Einstellungen soll es aber bitte immer noch volle Bandbreite geben!
Übrigens: Hat die Technik nicht große Nachteile in Kombination mit Eyfinity bzw. Surround? Bei deren Blickwinkeln muss dann ja im Verhältnis viel, viel mehr vorgeladen und berechnet werden als sonst...