Original-URL des Artikels: https://www.golem.de/0908/68902.html    Veröffentlicht: 07.08.2009 11:45    Kurz-URL: https://glm.io/68902

id Software spricht über Interna der Engine für Rage

Programmierer erklärt einige technische Herausforderungen von "id Tech 5"

Mit seiner nächsten Grafikengine betritt id Software in vielen Bereichen Neuland, mit denen das Actionspiel Rage zum Spezialeffekte-Feuerwerk werden könnte. Jetzt hat einer der Programmierer über technische Details von "id Tech 5" gesprochen - und neue Screenshots veröffentlicht.

128.000 x 128.000 Pixel - so groß können Texturen in der nächsten Grafikengine von id Software sein. Mit diesen "Megatextures" und weiteren Effekten möchte das Team um Chefprogrammierer John Carmack dafür sorgen, dass das Actionspiel Rage im Wettrennen um die schicksten Spezialeffekte die Nase vorn hat. Jetzt hat J.M.P. van Waveren, leitender Programmierer bei id, bei einem Vortrag auf der Siggraph 2009 in New Orleans einige Interna der neuen Engine erklärt; zum Vortrag steht ein PDF mit technischen Details zum Download bereit.

Die riesigen Texturen allein bringen zwar theoretisch eine neue Grafikqualität, weil der lokale Speicher der Grafikkarte aber - trotz schnellerer Auslagerung per PCI-Express als bei AGP - immer noch der begrenzende Faktor ist, hat id sich das "Virtual Texturing" ausgedacht. In einer Baumstruktur sind die Texturen mit mehreren Auflösungen gespeichert. Die Engine sucht sich darin für die aktuelle Szene die Ausschnitte zusammen, die den geforderten Detailgrad bieten. Das geschieht noch vor der Filterung für die gesamte Szene, entspricht also nicht den anisotropen Filtern, die die Grafikkarten ohnehin beherrschen.

Die neue virtuelle Textur wird dann Speicherplatz sparend an die Texturierungseinheit der Engine übergeben. Einen Großteil der Rechenarbeit soll dabei die Grafikkarte selbst mit Shaderprogrammen erledigen. In einem Beispiel zeigte van Waveren - allerdings bei deutlich reduzierter Bildqualität -, wie sich aus 1.024 Speicherseiten in der Grafikkarte 64 Speicherseiten machen lassen. Das kann als Hinweis auf die Skalierungsfähigkeiten der neuen Engine gewertet werden.

Vor allem hat van Waveren darüber gesprochen, wie die id-Engine die zu erledigende Gesamtarbeit in einzelne "Jobs" aufteilt, die dann mehr oder weniger parallel verarbeitet werden. Vereinfacht gesagt: Über die gesamte Welt legt die Engine ein unsichtbares Gitternetz, dessen einzelne "Kästchen" die jeweiligen Jobs sind. Daraus ergeben sich eine Reihe von Schwierigkeiten - etwa die, welche der Kästchen bei zunehmender Distanz eines Objekts nicht mehr angezeigt werden. Noch größer kann das Problem sein, wenn ein Objekt näher kommt und der "Level of Details" zunimmt. Dann muss das Programm neue Daten nachladen, und das geschieht bei den riesigen Texturen insbesondere von einem optischen Datenträger - zumindest bei Rage auf Xbox 360 und Playstation 3.

Überhaupt ging van Waveren darauf ein, dass id Tech 5 auf extrem vielfältigen Plattformen gleich funktionieren muss. Schnelle, aber nur auf einem CPU-Kern basierende Systeme bezeichnet er dabei als "tot", und DirectX 9 sei das "Nirvana" für konventionelle, per Hardwarebeschleunigung generierte Grafik. Außerdem soll das System neben bisherigen Grafikkarten auch Schnittstellen wie Nvidias Cuda, das plattformübergreifende OpenCL und neue Hardware wie Intels Larrabee unterstützen. Bei den bald Dutzenden von Kernen in Spiele-PCs - wenn man die x86-Einheiten von Larrabe mitrechnet - zeigte sich der Programmierer "vorsichtig optimistisch". Das größte Problem sei die Synchronisierung der Jobs zwischen den Rechenwerken. Zudem seien die Kerne beispielsweise eines Cell in der Playstation 3 und die von PC-Prozessoren sehr unterschiedlich.

Das Out-of-Order-Processing von x86-CPUs führe zu hohen Latenzen, welche die Parallelität behindern: Die einzelnen Jobs, besser bekannt als "Threads", müssten in einer Spieleengine viel zu oft aufeinander warten. Id Software steht hier, wie alle Spieleprogrammierer, vor dem Spezialfall des Problems der erhöhten Parallelität, den moderne Rechnerarchitekturen erfordern: Wenn der Gegner um die Ecke gebogen ist, aber der Physik-Thread noch nicht berechnet hat, ob der Stein, hinter dem der Spieler sich verstecken will, gerade an der richtigen Stelle liegt, kommt der Spielfluss ins Stocken. Diese Probleme haben Programmierer von anderen Anwendungen nicht: Ein CAD-Programm kann an einem einzelnen Bild so lange rechnen, wie es will, und dabei hoch parallelisiert arbeiten, weil es von weniger Faktoren abhängig ist.

Interessant sind Angaben darüber, wie lange in id Tech 5 die Berechnung bestimmter Prozesse dauert: So benötigt die Engine für das Rendering, also die reine Grafikberechnung einer Szene, rund 10 Millisekunden, während sie für Audioeffekte rund 4 Millisekunden und beispielsweise für flüssige Übergänge zwischen Animationen - das Blending - rund 2 Millisekunden braucht.

Rage versetzt den Spieler in eine offene Welt, in der er mit Fahrzeugen unterwegs ist und gegen Menschen und Mutanten kämpft. Das Programm erscheint für Windows-PC, MacOS, Playstation 3 und Xbox 360. Id nennt keinen Veröffentlichungstermin, aber 2009 soll das Actionspiel nicht mehr erscheinen. [von Nico Ernst und Peter Steinlechner]  (ps)


Verwandte Artikel:
Doom VFR im Test: Wir als Waffe   
(05.12.2017, https://glm.io/131491 )
id Software: Wohl keine weitere Unterstützung für Linux   
(21.07.2009, https://glm.io/68491 )
Rage, id Software und die Playstation 3   
(03.08.2009, https://glm.io/68769 )
The Beast Inside: Photogrammetrie plus Horror   
(01.03.2018, https://glm.io/133087 )
Tim Sweeney von Epic Games kritisiert die Crytek-Engine   
(26.05.2009, https://glm.io/67357 )

© 1997–2019 Golem.de, https://www.golem.de/