Fotorealistische 3D-Modelle mit Embree
Bleiben wir bei dem Thema 3D, das auch in der vergangenen Woche diesen Blog bestimmt hat. Intel hat kürzlich unter dem Namen Embree eine Sammlung von High-Performance Raytracing-Kernels veröffentlicht. Diese ermöglichen fotorealistische Rendering-Tasks auf den aktuellen Intel Prozessor-Umgebungen mit Unterstützung von SSE beziehungsweise AVX. Zudem beinhaltet Embree eine eigene Rendering Engine für Demonstrationszwecke.
Embree wurde für Monte Carlo Raytracing-Algorithmen konzipiert. Monte Carlo Raytracing wird auch als Path Tracing bezeichnet und beschreibt einen Bildsynthese-Algorithmus zur Simulation der so genannten globalen Beleuchtung. Die speziellen Single-Ray Traversal Kernels in Embree bieten eine hohe Performance und lassen sich sehr leicht in vorhandene Anwendungen integrieren.
Die Vorgehensweise ist schnell erklärt: Aus einem vorhandenen 3D-Modell berechnet Embree Einzelbilder, die dann in sehr kurzer Zeit zusammengefügt werden. Dank der exakten Berechnungen der Dimensionen und Lichteinflüsse entstehen fotorealistische Bilder.
Vor allem für aufwändige Simulationen, 3D-Spiele und Animationsfilme ist Embree interessant. Auch Webshop-Betreiber werden Interesse an Embree finden, da es möglich ist, dem Kunden hochauflösend genau die Produktansicht zu vermitteln, die er für seine Kaufentscheidung benötigt.
Weitere Informationen zu Embree finden Sie in diesem Artikel.
Zudem empfehlen wir Ihnen dieses Video:
Die beste Nachricht am Schluss: Der Source Code ist frei verfügbar. Sie können die Quelldatei von dieser Seite kostenlos laden.
Games: Cloud-basiertes Raytracing über die Intel MIC-Architektur
Verlassen wir San Francisco mit einem Blick nach Hannover: Die CeBIT ist in vollem Gange, und alle sprechen über “Cloud Computing”. Dann wollen wir das auch tun – und zwar in Bezug auf Computerspiele. Der Ansatz ist nicht ganz neu, wenn man beispielsweise an Browsergames denkt, die ebenfalls über Hosting-Services im Internet bereitgestellt werden.
Neu allerdings ist der cloud-basierte Ansatz für grafisch anspruchsvolle Spiele. Dabei agiert der Anwender von seinem Spiele-Client aus wie bei einer lokalen Anwendung. Nur werden die Eingaben und Befehlsfolgen an einen Spieleserver im Internet gesendet, der wiederum komprimierte, gerenderte Daten zurücksendet, so dass der Spieler sofort eine (grafische) Reaktion auf seine Eingaben erhält.
Die Vorteile für Spieler als auch Anbieter sind enorm: Die per Internet zur Verfügung gestellten Games sind kopiersicher, plattformunabhängig und für den Anwender ohne nennenswerten Installationsaufwand nutzbar. Auf Seiten der Programmierer ergibt sich der Vorteil, dass Updates und Patches jederzeit eingespielt werden können.
Bleiben die technischen Hürden. Ungeachtet einer sehr hohen Internetbandbreite, die solche Online-Spiele erfordern, stellt sich die Frage nach geeigneten Rendering-Mechanismen, um einen hohen Datenfluss bei der grafischen Berechnung zu gewährleisten. Vor allem wurden bisher Lösungen für Raytracing in Echtzeit vermisst, also die Berechnung, Kompression und realitätsnahe Darstellung von 3D-Objekten inklusive Lichteinflüssen, Schatten und Texturen. Aufgrund dieser Probleme belassen es die Anbieter von erfolgreichen Browsergames derzeit meist bei recht einfachen 2D-Spielen.
Ab sofort sind aber auch aufwändige 3D-Renderingverfahren für ein realistisches Spieleerlebnis über das Internet möglich! Damit gelingt Intel der Durchbruch in einer langjährigen Erfolgsgeschichte im Bereich “Visual Computing”. Denn der Chip-Hersteller ist – wie nur Wenige wissen – auf diesem Forschungsgebiet ein Pionier. Bereits 2008 konnte das 3D-Spiel „Quake Wars: Raytraced” auf einem Server mit Xenon-Prozessoren und einem Quad-Core-PC auf der Spieler-Seite als Hosting-Lösung gezeigt werden – mit damals durchaus akzeptablen 15-20 Frames per Sekunde (fps).
3D-Spiele in Echtzeit über das Internet mit MIC
Heute sind wir gleich zwei Schritte weiter. Denn mit der Intel Many Integrated Core Architecture (Intel MIC) lassen sich jetzt testweise (und in naher Zukunft auch marktreife) 3D-Spiele in Echtzeit über entsprechend schnelle Internetleitungen berechnen, übertragen und natürlich spielen – ohne Perfomance-Unterschiede zu lokal installierten 3D-Games.
Intel hat dies in einer spektakulären Demo mit dem Spiel Wolfenstein raytraced nachgewiesen. Wolfenstein raytraced ist eine modifizierte Version des Spielklassikers Wolfenstein.
Für das Experiment wurde ein Verbund aus vier PCs mit folgender Ausstattung zusammengeschlossen, um die Server zu simulieren:
- Intel DX58SO-Motherboard (Codename “Smackover”)
- Intel Core i7-980X Prozessor (6 Kerne, 2 Threads per Core, 3,33 GHz)
- Intel Knights Ferry PCIe-Karte (32 Kerne , 4 Threads per Kern) basierend auf der MIC-Architektur
- Gigabit Ethernet-Anschluss
Der PC des Spielers wurde mit folgender Ausstattung aufgebaut:
- Intel Core 2 Duo Prozessor P9600 (2 Kerne, 2,66 GHz)
- 13-Zoll-Display mit einer 1280 x 800-Auflösung
- Gigabit Ethernet-Anschluss
Wobei die Ausstattung des Spieler-Notebooks nicht von großer Bedeutung war, da die Grafik- und insbesondere die Raytracing-Berechnungen von den als Server fungierenden PCs übernommen wurden. Die lieferten im Test 60 Bilder pro Sekunde über die Internetleitung bei maximaler Auflösung. Die Kompressionsrate lag bei 1:8, Kompressionsartfakte gab es so gut wie nicht.
Für das Rendering mithilfe dieser High-End-Plattform ergeben sich grundsätzlich zwei unterschiedliche Methoden:
- Verteiltes Rendering über alle Server hinweg: Die Rendering-Aufgaben für die Raytrace-Bilder werden verkleinert (etwa 64 x 64 Pixel) und häppchenweise von den Servern berechnet. Vorteil: keine spürbare Latenzzeiten.
- Frame Rendering: Hierbei wird ein spezieller Frame einer bestimmen Maschine zugewiesen. Der Vorteil: Das lässt sich sehr einfach bewerkstelligen. Allerdings sind die Latenzzeiten höher.
In der Praxis dürfte sich künftig daher das Verteilte Rendering durchsetzen. Vor allem Spiele-Streaming-Dienste wie Gaikai und Onlive dürften sich bei diesen Aussichten die Hände reiben.
Mehr zu diesem sehr spannenden Thema und zur Versuchsanordnung können Sie auf der englischsprachigen Seite Experimental Cloud-based Ray Tracing Using Intel MIC Architecture for Highly Parallel Visual Processing nachlesen.
Und hier das Video dazu:
3D-Demo von Intel verbessern und Computerspiel gewinnen
Intel hat mal wieder einen 3D-Wettbewerb ins Leben gerufen, und zwar unter dem leicht dramatisch klingenden Titel “Thread like Wildfire”. Dahinter verbirgt sich die Aufforderung, der mittlerweile recht bekannten 3D-Demo Smoke noch mehr Leben einzuhauchen. Smoke zeigt sehr anschaulich, wie sich die Anzahl der verfügbaren Prozessorkerne dazu nutzen lässt, das Gesamtverhalten einer sehr komplexen 3D-Anwendung wie eines Computerspiels insgesamt zu optimieren.
Dazu gehören eine verbesserte AI und realistischere physikalische Verhaltensweisen, aber auch schönere 3D-Bilder und eine höhere Bildrate. Das bedeutet: schlauere Gegner, noch echtere Wasserspiegelungen und Zusammenstöße, detailliertere Landschaften und damit insgesamt mehr Spielspaß.
Damit angehende ebenso wie erfahrene 3D-Entwickler zeigen können, was in ihnen und in Smoke steckt, hat Intel den Quellcode der 3D-Demo freigegeben und bietet diesen zum Download an. Und das Beste daran: Jeder, der bis Ende des Jahres am monatlich stattfindenden 3D-Contest teilnehmen will (und im Gewinnfalle 100 Dollar auf Intel-Kosten in ein neues Computerspiel investieren möchte), kann an Smoke ganz nach seinem Geschmack herumschrauben und damit zeigen, was man mit der Multithread-3D-Demo alles anstellen kann.
Als kleines Beispiel sei Horsepower genannt, eine Wildpferdesimulation, bei der es je nach Anzahl der vorhandenen Prozessoren ganz schön wild zugeht auf dem Computermonitor. Gemäß dem Motto “Thread like Wildfire”!
Also, worauf wartet ihr noch? Zeigt mal, was ihr 3D-programmiermäßig darauf habt und meldet euch mithilfe dieses Links für für den Smoke-Contest an.
Eurographics 2009: Tech-Session Ray Tracing vs. Rasterisierung
Direkt im Anschluss an die Larrabee-Session von Mat Pharr war Manfred Ernst an der Reihe, um über das Thema Ray Tracing zu referieren. Am Anfang zeigte Manfred eine angepasste Quake Wars-Demo, die nicht auf Basis der klassischen Rasterisierung generiert wird, sondern mithilfe von Ray Tracing. Sehr beeindruckend!
Ray Tracing zeichnet sich durch vier wesentliche Aspekte aus: Flexibilität, Qualität, Einfachheit und Robustheit.
Flexibilität: Auf Basis der Rasterisierung lassen sich unterschiedliche Perspektiven nur mit viel Aufwand darstellen. Vor allem dann, wenn die Zahl der darzustellenden Datenobjekte sehr groß ist. Ray Tracing ist hierfür viel besser geeignet. Aber: Rasterisierung ist schneller als Ray Tracing. Daher ist für akzeptables Ray Tracing leistungsfähige Hardware notwendig.
Qualität: Die erzielbare Bildqualität ist mit Ray Tracing deutlich höher als mit Rasterisierung. Dies betrifft vor allem Schatten, spiegelnde Flächen wie Wasseroberflächen etc. Doch wer braucht diesen Level an realistischer Bildqualität? Nun, vor allem Architekten, Produktdesigner, Animationsfilmer und natürlich Spieleentwickler.
Einfachheit: Die Implementierung einer Rasterisierung-Engine ist im Vergleich zu Ray Tracing deutlich einfacher, aber bei der Programmierung neuer Effekte haben Ray Tracer große Vorteile. So lassen sich bestehende und neue Shader-Effekte mit weniger Programmierzeilen in eine 3D-Anwendung implementieren.
Robustheit: Rasterisierungs-Implementierung sind meist nicht robust genug. Vor allem die Zunahme verschiedener Effekte innerhalb einer Szene überfordert Rasterisierungs-Engines zusehend. Dieses Problem lässt sich mit Ray Tracing recht einfach lösen. Das geht allerdings mit großen Anstregungen hinsichtlich der Render-Engines einher. Denn eines ist klar: Robuste 3D-Engines sind äußerst wichtig, da gerade beim Erstellen von 3D-Szenen etc. viel Zeit und damit viel Geld aufgewendet wird.
Eurographics 2009: Tech-Session Larrabee
Jetzt sitze ich hier also seit über zehn Jahren zum ersten Mal wieder in einem Hörsaal, wartend auf den Beginn der Intel-Session zu den Themen Ray Tracing und Larrabee. Das wird zwar nicht unbedingt in Live-Blogging ausarten, aber während das Diktiergerät alles aufzeichnet, werde ich während der zwei Vorträge von Manfred Ernst und Mat Pharr die Highlight-Statements schon mal veröffentlichen. So, lean back and enjoy the show.
Der Saal ist gut gefüllt, die Themen scheinen also voll im Trend zu liegen. Als erster ist Mat Pharr dran, der sich bei Intel um das Thema Larrabee kümmert.
Matt beginnt mit einer kurzen Einführung: Fließpunkt-Arithmetik ist mittlerweile ausreichend vorhanden und 3D existiert in Software und nicht mehr ausschließlich in Hardware. Das bedeutet, das Prozessoren immer flexibler werden, vor allem, wenn man an neue Anwendungsgebiete wie 3D-Darstellungen denkt.
Ein kurzer Rückblick: 2001 war die Darstellung von 3D-Daten sehr gebunden an die Hardware. Mittlerweile kann das dank der enormen Rechenleistung vollständig in Software geschehen.
Was ist Larrabee? Letztlich der Zusammenschluss einer Multicore-CPU und einer programmierbaren, parallelisierten Grafikeinheit.
Schöner Versuch: Was bringt die Erhöhung der verfügbaren Prozessorkerne um den Faktor fünf in Sachen Rechenleistung? Den Faktor 160!
Das Larrabee-Blockdiagramm zeigt vor allem eins: Es gibt einen gemeinsamen L2-Cache, auf den sämtliche Prozessorkerne zugreifen.
Die Lehre der nächsten Folie: Sowohl das Berechnen einer 3D-Szene als auch Rendern dieser fertigen Szene sind in höchstem Maße parallelisierbar. Daher ist der Rasterisierer von Larrabee natürlich bestmöglich parallelisiert.
Dank Larrabee lässt sich in Zukunft die komplette 3D-Berechnung in Software realisieren und so der komplette 3D-Workflow als Software-Pipeline abbilden. Das macht Spezialhardware wie Grafikkarten selbst für aufwendige 3D-Berechnung künftig überflüssig.
Larrabee versteht sich auf das unmittelbare Umwandeln zwischen verschiedenen Datenformaten. So lassen sich FP32-Daten problemlos in FP16-Daten konvertieren, falls dies notwendig ist.
Problem heutige 3D-Spiele: Es gibt keinen ausgewogenen Workload, da jedes Game seinen eigenen Schwerpunkt hat in Sachen Alpha Blending, Pixel Shading, Rasterisierung, Vertex Shading etc. Mit Larrabee wird sich dieses Problem einfacher lösen lassen, da Larrabee sehr viel flexibler mit unterschiedlichen Workloads umgehen kann.
Die GPU-Programmierung wird sich mit Larrabee vollständig ändern: Sie wird parallel programmierbar!
Eurographics 2009: Wohin geht die 3D-Reise?!
Nächsten Montag beginnt hier in München auf dem Forschungsgelände der TU München die Eurographics 2009, und das bereits zum 30. Mal. Auf dieser Fünftageskonferenz geht es vor allem um professionelle 3D-Applikationen und deren Anwendungsgebiete samt der zugehörigen Trends und zukünftigen Entwicklungen.
So finden an jedem Tag zahlreiche Workshops, Keynote-Sessions, Tutorials, Vorträge und anderes statt, die sich mit dem Thema Visual Computing beschäftigen. Mit dabei ist Intel, die Firma hat innerhalb der Sektion “Industry Presentations” einen eigenen Slot zugewiesen bekommen. Das hat unter anderem damit zu tun, dass Intel einer der Sponsoren der Eurographics 2009 ist.
In eineinhalb Stunden (13:30 bis 15:00) werden Manfred Ernst und Mat Pharr über zwei Themen sprechen: “Ray Tracing – Why should we use it?” (Manfred) und “Back To The Future With New Graphics Architectures” (Mat). In Manfreds Vortrag geht um die Fragen, worin sich Rasterisierung und Ray Tracing im Wesentlichen unterscheiden und wie aktuelle und zukünftige Multicore-Plattformen ihren Teil zu mehr Ray-Tracing-Power beitragen.
Im zweiten Vortrag wird Mat darüber reden, wie sich Grafikberechnungen immer mehr von Spezial-Hardware (z. B. Grafikkarten) auf massenmarkttaugliche Prozessoren verschieben. Das Stichwort dahinter ist wohl Larrebee. Zumindest deutet die Zusammenfassung seines geplanten Vortrags darauf hin. Da ich es natürlich ganz genau wissen will, werde ich am nächsten Mitwoch (1.4.) vor Ort sein und mir die Vorträge anhören/-sehen und darüber berichten. Und keine Sorge, das wird kein Aprilscherz!


