Bossa Studios spricht über Beleuchtungsherausforderungen in Worlds Adrift und wie sie sie überwunden haben; Neues Video veröffentlicht

Heute hat der Entwickler/Publisher Bossa Studios ein neues Video für sein Open-World-Persistent-Sandbox-Spiel veröffentlichtWelten treiben,die voraussichtlich im ersten Quartal 2017 über Early Access auf dem PC veröffentlicht werden soll.

In der Beschreibung des Videos spricht Bossa darüber, wie aufgrund des Designs vonWelten treiben,und den Einschränkungen der Unity-Engine war die Beleuchtung im Spiel „sehr herausfordernd“.

Beim Start wird die Welt des Spiels über 1.000 Inseln umfassen – die mit der Zeit mit steigender Spielerzahl zunehmen werden – und jede dieser Inseln kann in jeder Achse bis zu 1 Kilometer lang sein. Daher würde herkömmliches Lightmapping Datenbestände erstellen, die dem Client viel zu viele Gigabyte hinzufügen würden.

Das Spiel hat auch eine dynamische Beleuchtung und eine nicht statische Welt, die zahlreiche Beleuchtungsprobleme verursacht hat. Und die Tatsache, dass viele Inseln des Spiels eine unvorhersehbare Verwendung von Assets haben, da diese Inseln von der Community mit dem kostenlosen Editor des Spiels erstellt wurden, hat auch nicht geholfen.

Also, was ist die Lösung? Laut Bossa Studios ist die Lösung etwas, das sie als 'Faking Global Illumination' bezeichnen.

Hier ist eine Zusammenfassung des Entwicklers, was es getan hat:

Was wir tun, ist, automatisch für jede Insel einen Sondensatz zu erstellen, indem ein Algorithmus verwendet wird, der das Gelände und die Objekte verwendet, um zu bestimmen, wo Sonden positioniert werden sollen. Backen Sie „nur“ Umgebungsbeleuchtung in die Sonden (was sie zu einer sichtbaren sphärischen Harmonischen multipliziert mit unserem dreifachen Umgebungslicht macht, anstatt vollständige Beleuchtungsinformationen).



Anstatt herkömmliche Lightmaps zu backen, backen wir als nächstes die indirekten Informationen, die aus dem Sondensatz für jeden Vertex jedes Assets interpoliert wurden, in eine benutzerdefinierte Textur. Dies erzeugt einige interessant aussehende Texturen, die ich eher Sichtbarkeitskarten als Lightmaps nennen würde. Dann setzen wir zur Laufzeit den Lightmap-Index und die Startposition jedes Assets und verwenden die Vertex_ID-Semantik innerhalb der Shader, um das richtige Pixel der Lightmap pro Vertex zu bestimmen. Die Mehrheit der Inseln hat 1 – 2 Millionen Vertices, was bedeutet, dass die durchschnittlichen Insel-Lightmaps höchstens einige 1024 × 1024 Texturen haben werden. Wirklich nicht viele Daten. Was die Backzeiten angeht, verwenden wir zum Backen einen Vorschau-Alpha-Build von Unities Progressive Light Mapper, und nur Backsonden mit dieser Version können 20.000 Sonden in weniger als einer Minute backen.

Während Sie durch den Himmel fliegen, wird die 'nächste' Insel um den Ursprung der Szene herum zentriert und die Sonden- und Sichtbarkeitskarten für diese Insel werden geladen. (Dies bedeutet, dass weiter entfernte Inseln keine GI-Daten haben, aber das ist aufgrund der relativen Entfernungen zwischen ihnen kein allzu großes Problem)

Schließlich werden die sphärischen Harmonischen für die Sonden und eine globale Shader-Variable, die die Umgebungsintensität der Sichtbarkeitskarten moduliert, in Abhängigkeit von der Tageszeit alle paar Sekunden geändert. Dies ist wahrscheinlich schnell genug, um jeden Frame auszuführen, ist jedoch aufgrund der Geschwindigkeit unserer Spielzeit unnötig.

Es kommt nicht oft vor, dass Entwickler einen so detaillierten und transparenten Einblick in die Entwicklung eines Spiels geben, insbesondere in die Hindernisse, mit denen sie konfrontiert waren. Es ist also schön zu sehen, dass sich Bossa Studios etwas Zeit außerhalb seines Entwicklungsplans nimmt, um einige informative und interessante Blicke hinter die Kulissen des Spiels zu werfen.

Im folgenden Video können Sie die Fake Global Illumination des Spiels in Arbeit sehen: