Die grossen Grafik- und Gameengines

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
Antworten
Benutzeravatar
starcow
Establishment
Beiträge: 523
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Kontaktdaten:

Die grossen Grafik- und Gameengines

Beitrag von starcow »

Hallo zusammen
Wie mir scheint passiert zur Zeit recht viel in Punkto Grafik Engines der grossen Hersteller. Wohl auch im Zusammenhand mit der neuen Konsolengeneration.
Mir bekannt wären da:
- Unreal4 Engine
- Cry Engine
. Frostbite 3 Engine
- Fox Engine
(IDTech5 darf mal wohl aus altersgründen bereits nicht mehr dazu zählen)

Mich würde mal interessieren, was hier die Fachleute und Profis dazu sagen. Welche Engine ist eurer Meinung nach technisch am vielversprechendsten? Oder welche neuen Ansätze gefallen euch wo am besten.

Hier übrigens ein neues Unreal4 Engine Video von der GDC
http://www.youtube.com/watch?v=dO2rM-l-vdQ

Gruss starcow
Freelancer 3D- und 2D-Grafik
mischaschaub.com
Benutzeravatar
CodingCat
Establishment
Beiträge: 1857
Registriert: 02.03.2009, 21:25
Wohnort: Student @ KIT
Kontaktdaten:

Re: Die grossen Grafik- und Gameengines

Beitrag von CodingCat »

Letztlich tragen alle diese Beispiele der Tatsache Rechnung, dass wir heute eine Komplexität erreicht haben, bei der nicht mehr alleine das Wissen/die Technik/der Algorithmus entscheidend ist, sondern in erster Linie die Implementierung zählt. Heterogene Hardware, die heute übliche und eingeforderte Vielzahl von Interaktionsfunktionalität (dynamische und plausible Beleuchtung, physikalische Interaktion, dynamische AI) sowie die Notwendigkeit, große Mengen von hochqualitativem Content arbeitseffizient erzeugen zu können, machen eine solche Implementierung zu einer Mammutaufgabe, deren Entwicklungskosten eigentlich nur noch durch Amortisierung über eine Vielzahl von Projekten (Lizenznehmern) tragbar sind. Selbst wenn sich einige Aspekte im kleineren Rahmen implementieren lassen, so sind es das bereitgestellte Ökosystem und die umfassenden Tools, die diesen Paketen ihren Wert verleihen (siehe auch The Augmented Artist, Scaling the Pipeline).

Bezüglich Content Pipeline bin ich leider bei keiner der Engines ausreichend im Bilde, um im Detail vergleichen zu können. Unreal, CryEngine und Frostbite kommen meines Wissens nach alle mit ähnlich umfangreichen Editoren, inklusive plattformübergreifendem Real-time Editing, visueller Scripting-Systeme, komplexer Animationssysteme mit Physikanbindung etc.

Technisch interessant ist, dass alle 3 Engines mit vollkommen unterschiedlichen Global Illumination-Lösungen arbeiten. Die CryEngine war hier mit Light Propagation Volumes Vorreiter bei dynamischer indirekter Beleuchtung. Frostbite arbeitet mit Geomerics' Lösung Enlighten, die meines Wissens nach einen Mix aus statischer und dynamischer Beleuchtung mit Light Probes für dynamische Objekte, grobaufgelösten Lightmaps mit Richtungsinformation (Surfels? Lixels?) für statische Geometrie und Cube Maps für sehr krude approximierte Bodenreflexionen nutzt (Stichwort Box-projected environment cube maps? Reine Spekulation ...). Unreal 4 wiederum setzt auf die momentan vielbesprochenen "Sparse" Voxel Octrees, welche Geometrie und Beleuchtung vorfiltern um darauf sehr effiziente Voxel Cone Tracing-Anfragen beantworten zu können. Diese Voxel Octrees sind insofern schön, als dass sie tatsächlich gerichtete Anfragen nach dem einfallenden Licht in einem bestimmten Kegel beantworten können, was insbesondere neben rein diffuser indirekter Beleuchtung auch Glossy Reflections bis zu einem gewissen Grad erlaubt. Leider hat man hier dann schnell ein Auflösungsproblem mit der doch sehr grob gewählten Voxelapproximation der Szene. Obendrein werden Voxel Cone Tracing-Anfragen mit Senkung des Lichteinfallswinkels wesentlich teurer. Alle drei Lösungen erfordern eine Abtastung und Reparametrisierung der Szene. Damit ist die Qualität zum einen durch vergleichsweise geringe Auflösungen begrenzt, zum anderen sind intelligente Update-/Synchronisationsmechanismen für dynamische Szenen notwendig.

Mobile Plattformen leiten eine interessante Wende ein, indem es nicht mehr um reine Geschwindigkeit, sondern viel mehr um Stromverbrauch und somit Arbeitseffizienz geht. Hier dürfte die Geomerics-Lösung punkten, weil sie vermutlich sehr einfach die Begrenzung von Updates auf tatsächliche Änderungen erlaubt, anstatt sämtliche Beleuchtung regelmäßig neu berechnen zu müssen. Cone Tracing-Anfragen hingegen werden immer neu getätigt, dafür kann die Beleuchtung von den Eigenschaften der indirekt beleuchteten Oberfläche abhängen (Streuungseigenschaften -> Glossy Reflections). Wir haben hier also einen Tradeoff zwischen "Genauigkeit" und Effizienz (auch SVOGI ist alles andere als genau, aber die Beschaffenheit der Reflexion ist eben ein sehr auffälliges Qualitätsmerkmal).

Um die Ungenauigkeit der GI-Lösungen etwas zu lindern, kommen meist noch weitere "Hacks" obendrauf, darunter Screen-Space Reflections für "präzise"/scharfe Reflexionen der Dinge, die auch direkt auf dem Bildschirm sichtbar sind, und klassisches Image-based Lighting/Environment Cube Maps zur Vortäuschung von Reflexionen außerhalb des Bildbereichs.

Alles in allem bin ich unschlüssig, ob die derzeitigen dynamischen Lösungen uns auf Dauer begleiten werden. Angesichts der massiven Verbreitung von Mobilgeräten erscheinen arbeitseffizientere Ansätze mit viel Caching und wenig Update bei Änderung attraktiver. Allerdings steigen damit die Ansprüche an die Architektur des Restes der Engine massiv, Szenenänderungen müssen sauber verfolgt und abgearbeitet werden.

So, fürs Erste muss das reichen. Vielleicht fällt mir oder anderen ja später noch etwas dazu ein ;)
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Antworten