|
Iridium |
Top Previous Next |
|
Michael Auerbach ist bereit jede Menge an Informationen über sein neuestes Projekt zu teilen: Iridium.
Q: Was ist Iridium genau und wer entwickelt es? A: Iridium ist eine Grafik- und Rendererweiterung für 3D GameStudio Commercial und Professional. Iridium ermöglicht Ihnen den Zugang zu den Grafiken der nächsten Generation unter Verwendung dessen was wir alle gelernt haben: der Sprache lite-C und des GameStudio-Interfaces. Ich bin der einzige Entwickler dieser Engine, allerdings berate ich mich oft mit meinem Professor für Grafik-Programmierung und Studenten an der Universität von Maryland, um meine Arbeit zu "lektorieren".
Q: Kannst Du uns sagen was die Hauptfeatures von Iridium sind? A: Iridiums wichtigstes Feature ist eigentlich die Iridium-Engine selbst. Die Architektur Iridiums ermöglicht es Entwicklern Objekte, Lichter, Partikel und andere Effekte dynamisch zu platzieren. Anders als bei der A7-Engine werden alle diese Entities gleichermaßen behandelt was bedeutet, dass Du ein Mesh, ein Licht, ein Objekt, ein Partikel oder irgendeine Kombination daraus machen kannst. Dies mag nutzlos klingen ist aber tatsächlich weit davon entfernt. Um besipielsweise ein Licht zu erstellen und zu managen, brauchst du nur sein Licht-Flag zu setzen und das Mesh selbst zu bewegen und auszurichten. Das Licht wird automatisch mit dem Parent-Mesh angepaßt, was das Verknüpfen der beiden zu einem automatischen Prozess macht. Die Engine geht sogar so weit, automatisch Shadow-Maps für diese Lichter zu allokieren und zu verknüpfen.
Ein weiteres nützliches Feature ist weiterentwickeltes Culling. Iridium verfolgt tatsächlich den Pfad zwischen dem View und aufwendigen Entities (wie etwa High-Poly-Modellen und Lichtern) und bestimmt ob sie tatsächlich sichtbar oder verdeckt sind. Für jemanden, der sehr große Levels plant ist dies ein Muß und es funktioniert gut mit dem Portalsystgem, das von A7-Pro unterstützt wird oder auch nur dem BSP-System von Commercial.
Und schließlich haben wir die Grafiken. Iridium benutzt eine verzögerte Renderarchitektur, die die Szenenkomplexität von der dynamischen Beleuchtung abkoppelt. Zusätzlich verwendet Iridium Per-Pixel-Materialien, was die größtmöglliche künstlerische Bandbreite ermöglicht während der Renderprozess rationaliesiert wird. Sie können z. B. mit einer einzigen Mesh ein Auto machen - die Fenster, Reifen, Lackierung, Leder etc. können allesamt mit einem einzigen Shader simuliert werden, indem Spiegelung, Reflexionsgrad, Unschärfe und andere Materialeigenschaftstexturen angebracht werden.
Q: Planst du, Iridium in naher Zukunft zu verkaufen? A: Ich plane Iridium zum Schluß zu verkaufen. Allerdings weiß ich nicht wie lange es dauern wird bis ich all die Features debugged, optimiert und in ein einziges Paket kompiliert habe. Sehr wahrscheinlich wird es eine kleine Entwicklunggebühr geben (oder möglicherweise auch gratis sein) und eine etwas teurere Commercial-Lizenz.
Q: Wie groß ist Iridiums Einfluß auf die Framerate? A: Im Vergleich zur regulären A7-Engine (einfach ein Level ohne Shaders oder Effekte zu starten) ist Iridium um einiges langsamer. Da Iridium deine Welt aber mit dynamischer Beleuchtung und weiterentwickelten Schatteneffekten rendert, läuft Iridium tatsächlich schneller. Das Culling- und Partikelsystem von Iridium ist es, was den Vorsprung vor der A7 alleine ausmacht. Ich habe "Schleifenlöcher" im Design der A7 gefunden, die es mir erlauben, Features der Engine zum Verbessern der Geschwindigkeit der A7-Enginge selbst zu verwenden (wie etwa Welt-Culling vor dem Rendern und Unterstützung des Post-Processings). Ausserdem sind viele der Features von Iridium mit der A7-Engine alleine gar nicht möglich; etwa das Rendern von Dutzenden von Lichtern pro Frame oder das Rendern von GPU-Partikeln.
Q: Was sind die geschätzten Systemvoraussetzungen, um Iridium auf unseren PCs laufen zu lassen? A: Iridiums Mindestanforderungen sind A7-Commercial oder -Professional, Windows mit DirectX.9.0c (oder höher) und eine Grafikkarte, die Shader-Model 2.0 unterstützt. Für optimale Performance wirst du eine Grafikkarte wollen, die MRTs (multiple render targets), Shader-Model 3.0 und eine sehr schnelle Pixelfüllrate unterstützt. In Sachen RAM sollte Windows XP mindestens 512MB und Windows Vista 1.5 GB haben. Iridium kann Systemkonfigurationen automatisch erkennen oder auch manuell angepaßt werden, um eine gute Performance auf fast jedem Rechner zu bieten.
Q: Soweit ich weiß gibt es zumindest ein Spiel (Ground Tactics) das Iridium benutzen wird. Wie und wo wirst du Iridium in Ground Tactics verwenden? A: Iridium wird in fast jedem visuellen Aspekt von Ground Tactics verwendet werden. Tatsächlich wird die gesamte Welt für unser erstes Level derzeit mit Iridium im Kopf konstruiert. Lichter die zuvor "gebacken" werden mussten werden nun dynamisch hinzugefügt und wir gestalten die benötigten Materialtexturen für die Welt. Iridium wird auch zum Simulieren fortschrittlicher Blut- und Explosionseffekte im Game benutzt, genauseo wie dynamische Geometrie-Zerstörung wie man es in Games wie Crysis gesehen hat. Iridium wird außerdem zum Rendern von Physik wie Kleidung, Wasser, Feuer und Parikel benutzt werden.
Q: Wie können wir Iridium in unsere eigenen Projekte integrieren? Wieviel Programmieren wird nötig sein? A: Iridium ist für Klienten-Programmierung gemacht. Jedes Feature hat beide Zugriffs- und Veränderungsmethoden, um die Engine durch ein gut dokumentiertes api zu beeinflussen. Das bedeutet, dass du die Möglichkeit hast, die Engine individuell anzupassen aber auch, nur ein paar wenige Funktionen aufzurufen, um Iridium "out-of-the-box" zu starten. Allerdings wird der größte Teil des Implementierens von Iridium in dein Projekt die Kunst ausmachen. Iridium erfordert, dass deine Modelle mit korrekten Normalen und Texturformaten konstruiert sind. Künstler begrüssen allerdings oft die zusätzliche Kontrolle von Per-Pixel-Materialien und die Arbeit, die beim erstellen von Objekten als eine einzige Mesh gespart wird, überwiegt oft die Arbeit, die zum Erstellen von zusätzlichen Texturen für deine Modelle gebraucht wird.
Q: Was würdest du einem Anfänger, der Shader-Programmieren lernen will, empfehlen? A: Mir macht interaktives Lernen wirklich Spaß und daher würde ich empfehlen, dass Anfänger Artikel über Shader-Algorithmen lesen, die Shader downloaden und versuchen sollten sie zu verstehen. Dummerweise bin ich Autodidakt und so weiß ich nicht wirklich genau etwas über formale Kurse und so etwas zu sagen. Aber es gibt ja viele Online-Tutorials und Inhalte, die dir helfen können, selbstständig zu lernen. Shade-c ist eine wunderbar gestaltete, frei verfügbare Grafikerweiterung für GameStudio und ein hervorragendes Beispiel zum Implementieren und Schreiben von Shadern für GameStudio und DirectX im Allgemeinen. Auch auf dem 3dgs-Wiki und in Foren lassen sich eine Menge von einfachen Tutorials und Beispielen finden. Außerdem kannst du Nvidia googeln, sie haben eine schicke Entwicklerzone, die voll ist von frei zugänglichen Shadern, Tutorials und Code. Ich lehre in meiner Freizeit auch (umsonst) Shader-Progrmmieren online, allerdings habe ich nur sehr begrenzte Kapazitäten und ich nehme es sehr ernst. Wenn ihr mehr darüber wissen wollt, wo und wie man das Shader-Programmieren lernen kann, könnt ihr mich gerne unter Michael@groundtacticsgame.com kontaktieren.
Vielen Dank, Michael! |