Revolution der virtuellen Welten - Procedural Textures



Revolution der virtuellen Welten - Procedural Textures

Lebendige Texturen durch mathematische Genialität








Seit einiger Zeit häufen sich die Diskussionen um ein Entwicklung eines Unternehmens, welches eine neue Texturverarbeitung entwickelt hat, die Spiele bis zu 70% kleiner macht. Der Name des Unternehmens: Allegorithmic. Das Wegweisende an der neuen Verarbeitungstechnologie, welche die schlauen Köpfe von Allegorithmic entwickelt haben: eine Texturing-engine behält die aktuellen Qualitätsstandards für Texturen in Spielen auf einem hohen Niveau, wenngleich die Größe der Texturen um bis zu 90% schrumpft.

Natürlich muss man dem Kind auch einen Namen geben und so bekommt eine komplizierte Technologie auch einen komplizierten Begriff: "Procedural Textures" – eine eins-zu-eins Übersetzung gibt es für diesen Begriff nicht, man könnte es aber mit „während des Verfahrens generierte Texturen“ deuten. Das Interview mit Sebastian DeGuy soll ein bisschen Licht ins Dunkel um Procedural Textures bringen, vor allem geht es um die Bedeutung für  Spielekonsumenten. Wir diskutieren darüber, wie klein die Texturen werden können und ob Procedural Textures mit den Texturen von Spielen wie Crysis mithalten können.

Das Interview


Nach dem Lesen des vorangegangen Artikels meinten einige "Das hab ich doch alles schon vor ein paar Jahren in .kkrieger gesehen." Wo liegt der Unterschied zwischen den Techniken in diesem Spiel und eurer Procedural Textures Technologie?

Sebastian DeGuy:

Nun, .kkrieger ist ein Nebenprodukt der Demo Szene. Die Gruppen konkurrieren miteinander, um aus einem sehr kleinen Programm eine eindrucksvolle Demo zu erstellen. Um das zu bewerkstelligen, nutzen sie prozedurale (verfahrensorientierte) Methoden zur Erstellung des Inhalts (Modelle, Animationen, Texturen usw.).

Aber nicht nur Entwickler, auch Forscher haben seit einiger Zeit das Contentgenerierung mittels prozeduraler Techniken als Forschungsgebiet im Auge. Wenn Leute sehen, was wir machen, kommt es oft zu Aussagen wie: "Das haben wir in .krieger schon gesehen". Nun, damit haben sie im Grunde genommen auch wirklich Recht. Prozedurale Techniken wurden bereits seit einiger Zeit von der Industrie beachtet, auch schon bevor .kkrieger veröffentlicht wurde.

Jedoch: neben einigen Ähnlichkeiten wandern wir jedoch technisch auf unterschiedlichen Pfaden. Hier wäre zuerst die Kerntechnolgie zu nennen. Diese basiert auf modernsten mathematischen Formeln. Wir nutzen 'Wavelets', anstelle der klassischen 'Fourier Transformation', welche früher für prozedurale Texturerstellung genutzt wurden (so auch in .krieger). Unsere Technik basiert auf einem neuen mathematischen Modell, welches ich während meiner Promovierung entwickelt habe.


Also grundlegend, ihr benutzt moderne mathematische Formeln und Techniken, während alte prozedurale Texturerstellungstechniken eben noch auf alten Formeln basiert?

Genau! Unsere Technik erlaubt es Entwicklern sich auf komplexere Weise auszudrücken. Procedural Textures wurden hauptsächlich wegen der Begrenztheit der Fourier-Methode in der Vergangenheit wenig genutzt.

 

Inwiefern spielt die Komplexität der Mathematik eine Rolle?

Wegen der Kerncharakteristik der Fourier-Transformation, sicher. Man muss schon ein guter Mathematiker sein, um hochwertig wirkende Texturen zu erstellen. Wir, andererseits, können das mit weniger Aufwand erreichen. Die Komplexität der Fourier Transformation ist der Hauptgrund warum so wenige Procedural Textures nutzen. Diese Technik zu nutzen und zu beherrschen ist einfach sehr aufwendig und schwer.

Die Bilder zeigen, was wir mit der Technik unseres ProFX Programms machen können. Anhand der Echtzeitrenderings sieht man, dass mit unseren Procedural Textures annähernd richtige Fotoqualität möglich ist. Dies mit alten Programmalgorithmen zu realisieren, ist quasi unmöglich. Mit unseren Programmen ist es dagegen recht einfach.




Was meinst du, welche Auswirkungen könnte diese Technologie – was den Platzbedarf in in Spielen und auf PCs angeht, haben?

Mindestens 70% der Texturen in deinem Spiel könnten durch ein prozedurales Equivalent ersetzt werden. 70% stellen dabei das Minimum der Anzahl der Texturen, die ersetzt werden können. Aktuell ist aber davon auszugehen, dass der prozentuale Anteil sogar noch höher liegt. Kleines Rechenbeispiel: Wenn wir 80% der Texturen in einem Spiel ersetzen, die 50% des Platzbedarfs ausmachen, dann kann der Gesamtplatzbedarf des Spiels etwas weniger als die Hälfte betragen.

Ich habe ein paar aktuelle Beispiele des Spiels Roboblitz. In diesem Spiel haben wir  über 95% der Texturen ersetzt. Das Spiel hat 6 Level und für jeden Level haben die Entwickler rund 80 MB an komprimierten Texturen aufgewendet. Wieder ein Zahlenspiel: Zusammengerechnet wären das nun 6x80 MB – also 480 MB. Mit unseren Tools haben wir diese 480 MB auf winzige 3 MB nur mit Hilfe der prozeduralen Texturen geschrumpft. Spektuakulär, nicht wahr?

Jetzt braucht das Spiel rund 50 MB und kann so locker über XBOX-Live heruntergeladen warden. Ohne unsere Technologie würde das Spiel satte 530 MB (50 MB – 3 MB + 480 MB) einnehmen. Letzten Endes haben wir bei Roboblitz insgesamt 90% des Gesamtplatzbedarfs eingespart. Dies ist ein massiver Nutzen für jeden Entwickler, der für Online- und XBOX-Live-Publikum programmiert.

     


Wie lange arbeitest du schon als Unternehmen? Wie sieht dein bisheriger Werdegang aus?

Ich habe Allegorithmetic knapp anderthalb Jahre, nachdem ich meinen PhD 2001 gemacht habe, gegründet. Wir haben für dieses Projekt viel Unterstützung, viele Preise und Medaillen von der französischen Regierung erhalten, weil sie die Innovationen erkannte. Am Anfang konzentrierten wir uns auf VXF und Animationen, wobei wir uns hierbei wiederum auf Authoring-Werkzeuge und die Technologie konzentrierten.

Eineinhalb Jahre später entschieden wir uns, den Weg in Richtung Spiele-Industrie zu gehen und besannen uns dabei auf die Entwicklung von ProFX, unserer Tools-Suite. Wir arbeiteten eng mit Naked Sky zusammen, um an RoboBlitz zu entwickeln. Sie verschafften uns dabei Zugang zu Microsofts XDK und Epics Unreal Engine 3. In der Zwischenzeit suchten wir Gespräche auf verschiedenen Spielentwickler-Konferenzen und versuchten die Entwickler auf unsere Technologie aufmerksam zu machen.




Was würdest du zu Unternehmen wir Crytek oder Valve sagen? Vor allem in Bezug auf die Nutzung ihrer eigenen Textur-Technologien?

Valve hat bereits einen sehr interessanten Ansatz mit Steam. Ich liebe das Konzept der digitalen Verbreitung/Vermarktung. Die Art, wie Spielentwickler bisher Bitmap Texturen in Verbindung mit diesem Service genutzt haben - ich würde sagen, das ist bisher das beste, was mit Bitmap Texturen gemacht wurde – es ist sehr beeindruckend.

Wie auch immer, in einigen Punkten ist diese Technologie limitiert. Ich möchte aber gleich erwähnen, dass ich damit nicht meine, dass Bitmap Texturen visuell begrenzt sind. Ich möchte darauf hinaus, dass der Nutzen dieser „althergebrachten“ Texturen begrenzt ist, wenn man sich die Schwierigkeiten bei Next-Gen Spielentwicklungen – vor allem in anbetracht der benötigten Größen – vor Augen hält.


Hast du im Moment irgendwelche Konkurrenten? Gibt es irgendjemanden, der ähnliches entwickelt, wie du?

Im Autorenbereich gibt es im Moment vier Unternehmen, die Lösungen zum Design mit prozeduralen Texturen anbieten. Wir haben das innovativste, effektivste und modernste Angebot im Engine-Bereich und bieten derzeit als einziger eine Engine für Next-Gen Konsolen und PCs. Abschließend ein Zitat von Torten Reil (CEO, Natural Motion), den die Existenz des Markts bestätigt: „Allegorithmetic ist Marktführer bei der Textur-Sythetisierung in Echtzeit.“


Ist das, an dem ihr arbeitet, das genaue Gegenteil von dem was Id softwares „Megatexturing“, welches John Carmack in „Quake Wars: Enemy Territory“ aufrollt, entwickelt?

In der Art. Ich denke, was Carmack geschaffen hat, ist sehr eindrucksvoll, aber wir gehen das Problem der Texturgrössen von einer anderen Seite aus an. Aber komisch, dass das gerade zur Sprache kommt. Unser Geschäftsentwickler hat für gewöhnlich bei Id gearbeitet und erzählt deshalb sehr oft von John.


360° Animation eines alternden Badezimmers (klick mich)



Weißt du, was John von eurem Ansatz halt?

Er hat sein Urteil bereits gefällt.


PhysX hatte zu kämpfen, weil es von Microsoft nicht angenommen und akzeptiert wurde – folglich kämpfen dessen Entwickler nun um das Recht, es trotzdem mit an Bord bringen zu können. Seid ihr in einer ähnlichen Position? Braucht ihr die Akzeptanz seitens Microsoft, um diese Technologie erfolgreich einzusetzen?

Interessante Frage. Zweifellos haben wir nichts gegen ein bisschen Hilfe von Microsoft. Aber wir arbeiten genauso mit Sony für die PS3. PhysX ist einen wirklich interessanten Weg gegangen, als sie Novodex kostenlos anboten, haben aber sehr mit ihrer Karte zu kämpfen.

Wir möchten weiterhin bei der Middleware bleiben. Deshalb werden wir kein Geld in die Entwicklung von Hardware investieren. Das Problem von PhysX ist der Kampf gegen bereits existierende und etablierte Software-Technologien wie die Havoc-Engine. Wir, andererseits, erforschen und erobern gerade braches Land. Das heist im Endeffekt, wir gehen zum Teil ähnliche Wege, haben zum anderen aber viele anders geartete Bedingungen vorliegen.

Videoanimation für alternde Texturen (klick mich)


Hofft ihr, genau wie mit Entwicklern, auch mit Herstellern wie nVidia, ATi oder Intel zusammen zu arbeiten?

Wir arbeiten bereits sehr eng mit einigen dieser Leute zusammen und es freut mich zu sehen, dass bereits einige unserer Befehle in Grafikchips implementiert wurden. Das hilft uns viel.


Was kommt als nächstes?

Wir wollen erstens zum Standard im Bereich der “Procedural Textures” werden. Es ist noch sehr früh dafür, aber ich bin überzeugt, dass wir erfolgreich sein werden. Man stelle sich vor, unsere Technologie hält Einzug in Mobil-Telefone. Der Download von ein paar Kilobytes könnte qualitativ hochwertige Spiele zustande bringen. Dasselbe bei einer ganzen Palette von Unterhaltungsprodukten. Wir könnten dasselbe bei digitalem Fernsehen erreichen. Das könnte zu großartig aussehenden Spielen auf jeder Plattform führen.


Wie wird sich das alles auf die Konsumenten – unsere Leser – auswirken?

Gut, denken wir doch nur mal an den Vertrieb der Spiele. Die Konsumenten könnten Softwaretitel, Addons und Patches, aufgrund der geringeren Datengrössen, sehr viel schneller herunterladen. Das lange Warten während des Downloads von Zusatzmaterial ist doch wirklich nervig. Diese Wartezeit wird also extrem verkürzt, weil die Texturen mithilfe von ProFX während der Ladezeit berechnet werden. Nicht minder interessant ist, dass diese Technologie es dem Spieler ermöglicht, fast jede der Texturen zu verändern. Die Mod-Community wird’s lieben, genauso wie ambitionierte Tweaker es lieben werden, Prozedurale Texturen on-the-fly berechnen zu lassen und das Ergebnis ohne viel Aufwand nach Belieben zu verändern.

Es wird ausserdem möglich sein, „Lebendige Spiele“ zu spielen. Was sind lebendige Spiele? Sie verfolgen dasselbe Konzept, das Ken Kutaragi kürzlich „4D Games“ genannt hat. Ich rede über Spiele, die sich selbst entwickeln. Schaut euch die Demo weiter unten an und beobachtet, wie das Badezimmer altert. All diese Sachen werden erst durch prozedurale Texturen möglich.


weitere Videoanimation (klick mich)


Um noch mal auf diese “lebendigen Texturen” zu sprechen zu kommen: beinhalten sie bereits alle Daten um zu „altern“ oder macht eine externe Berechnung sie älter?

Es wird alles berechnet. Man braucht also keine zusätzlichen Daten zu speichern. Die verschiedenen Zwischenstufen und Formen der zeitlichen Auswirkungen auf die Texturen können berechnet werden. Stellt an sich also zum Beispiel ein Auto vor, das gegen eine Wand fährt, hat es dafür eine eigene Lackfärbung, Form, Gewicht und Geschwindigkeit. Die Physik-Engine berechnet dann die vektoriellen Auswirkungen der verschiedenen Kräfte. Dieses Vektorfeld wird dann wiederum genutzt, um die innersten Eigenschaften der Texturen zu verändern und Normal-Map, Colour-Map etc. nach diesen Parametern zu modifizieren. Nichts muss im Speicher abgelegt werden, alles wird in Echtzeit berechnet.


Was wird im besten Fall passieren? Billigere Spiele? Detailliertere Spiele? Pünktlicheres Erscheinen von Spielen?

Ich würde sagen, ein bisschen von allem. Einige Programmierer werden versuchen, Spiele billiger zu produzieren, andere werden versuchen, den freigewordenen Platz mit anderen Daten zu füllen und es zum selben Preis zu verkaufen. Prozedurale Texturen helfen Designern, grössere Welten zu erstellen. In dem Fall könnte man hundertmal mehr Content erstellen, ohne hundertmal mehr Designer einzustellen. Das Arbeiten wird effektiver.


Zusammenfassung

 
Interessante Probleme erwirken auch immer interessante Lösungsansätze und gerade das ist es, was die Software-Industrie weiter fortschreiten lässt. Und gerade im Fall der prozeduralen Texturierung scheint ein Stein ins Rollen gebracht worden zu sein, der die visuelle Qualität von generischen Bildern und Animationen revolutioniert. Und mit Distributionssystemen wie Steam oder EAs Link Service werden Bandbreiten-schonende Technologien, trotz immer schnellerer DSL-Verbindungen, wieder enorm wichtig. Für uns Konsumenten heisst es, abwarten und Tee trinken und den Dingen harren, die da kommen.

Dieses Interview erschien im englischen Magazin Bit-Tech.com und wurde von Stephan Kirsten und Torsten Schmidt (Redaktion ProjectLAN.de) sinngemäß übersetzt.



Kommentare

  • Wahnsinn
    geil das wünsch ich mir in meinem nächsten handy. wielange reicht eigentlich eine akkuladung? reicht das für ne spielfilmlänge?

    4. Jul 2006 - 14:08 Uhr
  • @ABSinth
    Full Ack

    Kann es kaum erwarten, bis soetwas zur Standardfunktion eines jeden Handys gehört. Und das wird es hoffentlich!

    4. Jul 2006 - 16:23 Uhr
  • zeit wurde es
    jetzt kommen wir langsam dahin, das die Spiele wie echt aussehen....
    mal sehen, wie weit die noch gehen

    19. Nov 2006 - 15:27 Uhr
  • Geringere Größen? - Her damit!
    Das wäre wirklich mal ne feine Sache, wenn die Kapazitäten der Games auf ein normales Niveau fallen würden.
    Und optisch machts auch noch was her.
    Ich könnte mir auch vorstellen, daß damit gerenderte Filme in Echtzeit produziert werden könnten. Mal sehen

    19. Nov 2006 - 17:10 Uhr
  • - Speicherplat aber + Rechenleistung ?
    Auf die notwendige Rechenleistung, die sicherlich erforderlich sein wird, wird im ganzen Artikel nicht eingegangen. Es ist schon einleuchtend, wenn die Texturen permanent neu errechnet werden und somit viel Speicher frei wird aber wo bitte rechnet es die Grafikkarte? Im eigenen RAM? Und ich kann mir auch nicht ganz vorstellen, wie das bei komplexen Leveln ala Crysis aussehen soll, wenn dann soviele verschiedenen Texturen gleichzeitig angezeigt und nach der These ja auch berechnet werden müssen.

    20. Nov 2006 - 15:36 Uhr

Alle weiteren Kommentare (6 insgesamt) zu dem Thema findest du in unserem Forum.

Du bist nicht eingeloggt! Bitte melde dich erst an, um ein Kommentar zu schreiben.