Finding Next Gen CryEngine2 Martin Mittring Lead Graphics Programmer Crytek GmbH.
Go Parallel – Multicore Programming & Game Development Die Bedeutung von Multicore in der...
-
Upload
chlotichilda-west -
Category
Documents
-
view
107 -
download
1
Transcript of Go Parallel – Multicore Programming & Game Development Die Bedeutung von Multicore in der...
Go Parallel –Multicore Programming & Game Development
“Die Bedeutung von Multicore in der Spieleentwicklung bei Crytek”
Martin Mittring
Lead Graphics Programmer
Einer für alle, alle für einen
1894, Maurice Leloir (1851-1940)
“Die drei Musketiere” Alexandre Dumas, 1844
Crytek
• Hauptstudio in Frankfurt
• 3 weitere Studios (Kiev, Budapest, Sofia)
• Firmensprache Englisch
• 30+ Nationalitäten
• CryEngine 1: PC
• CryEngine 2: PC, XBox360, PS3
Crytek Spiele
Far Cry 2004UbisoftPC
2007Electronic Arts
PCCrysis*
* nun auch Crysis Wars und Crysis Warhead
Computer Spiele Industrie• Produktion:
– Game (Spiele spezifischer Quellcode)– Engine (Wieder verwendbarer Quellcode, Groß, Lizenzierbar)– Tools (Editor, Resource Compiler, Plug-ins)– Art, Design (3D Objekte, Texturen, Levels)
• Meilensteine (CXP, Demo, Konkurrenz, Technologie Fenster)• Real-time, mehrere Plattformen, Mehrspieler, Cheating• Technologie ist im schnellen Wandel:
– CPU, Fixed Function, Shaders, … , erneut CPU?• Marketing, Publisher, Die meisten Spiele werfen keinen Gewinn ab• Qualität gegen Performance• Wenige % Performance erfordern mehr und mehr Arbeit• Multithreading macht es nicht leichter [Sutter05]
Spiel-Engine Herausforderungen• Verschiedenste HW (x CPUs, GPU, Speicher)• Riesige Welten• Produktionsprobleme
(Kosten, Zeit, Termindruck)• Massen Mehrspieler• Qualitätserwartung (HDTV,
Anti-Aliasing, Stereo Darstellung,stabile Frame Rate,„Uncanny Valley“)
Multiprocessing in Game EnginesI. CPU
(z.B. Doom)
II. += Grafikkarten (Fixed Function)(z.B. Far Cry)
III. += GPU (Shaders)(z.B. Far Cry)
IV. += x CPU (MT performancekritische Teile)(z.B. Crysis)
V. Job basierend? Verteilt? Spezialsprache?
Warum Grafikkarten schnell sind?
• OpenGL/DirectX = Erfolgreichste Multiprocessing Sprache?
• SIMD, VLIW (nicht immer)• Optimiert für eine Anwendung (z.B. bi-linearer
Filter, Speicherorganisation)• Latenz wird versteckt durch
verschränktes abarbeitenvon Datenpakten
Kommen wir jetzt zu etwasvöllig anderem
Dreiecks Rasterisierung
• Fest verdrahtet in Grafikkarten• Softwarerendering wird weiterhin benötigt
(z.B. in CryEngine um Objekte auf Verdeckung zu testen)
• SW Rasterisierung hat ein Come-back (Larrabee)
• Gutes Beispiel wie ein Algorithmus parallelisiert werden kann
… nun im Detail
Dreiecks
Gegeben:
3 Eckpunkte float2
2D Bildraster
Rasterisierung
Wo soll
rasterisiert
Eine klare Definition ist
essenziell:
Pixelzentrum im Dreieck,
Pixels am Rand je nach
Kantenrichtung (Ganzzahl)
=> Keine Löcher
=> Kein Kanten überzeichnen
werden?
Klassischer
Ansatz
Scan-Line Algorithmus
Sonderfälle
Serieller Algorithmus
Halb-
Raum
Die drei Kanten
definieren drei Halb-Räume,
Im Dreieck wird zu
3 Halb-Raum Tests
Umschließendes Rechteck
wäre ineffizient
Halb-
Raum
Pakete
Paket von mehreren Pixeln
muß bearbeitet werden
wenn teilweise im Dreieck
Umschließendes Rechteck
ist effizient für kleine Dreiecke
Drei
Paket
Typen
• Vollständig außerhalb=> Paket verwerfen
• Vollständig innerhalb=> Alle Pixel bearbeiten
• Teilweise innerhalb=> Pixel Test nötig
Halb-
Raum
mit Paketen
• SIMD freundlich
• Ganzzahl Arithmetik(exakt, schnell)
• Vermeidet Verzweigungen
• Cache freundlich[Nicolas04]
Kommen wir jetzt zu etwasvöllig anderem
Drei Render Algorithmen
• Rasterisierung (keine Folie)
• Ray-tracing (vier Folien)
• REYES (drei Folien)
• Die drei Methoden im Vergleich (eine Folie)
(kein kompletter oder gerechter Vergleich)
Ray-tracing• Einfach auf CPU
(Stack Rekursion)• Raumunterteilung
um Strahltests zu beschleunigen
• Rechenintensiv• Elegante Lösung• Parallel aber nicht
cache freundlich• Real-time
problematisch
[Hauser02a]
Ray-tracing Generationen 1/3
RekursiveStrahl-verfolgung
Harte Schatten,perfekte Reflektionen /Lichtbrechung,Verdeckung gelöst, Adaptives AA
Ray-tracing Generationen 2/3 Verteilte
Strahl-verfolgung[Carp84]
mehr Integrations-Samples:
Bewegungsunschärfe,unscharfe Reflektionen,Weiche Schatten,DOF, IBL Integration
Ray-tracing Generationen 3/3
GlobaleBeleuchtung
mehr Integrations-Samples:
Indirekte Beleuchtung
© GNU Free Documentation Licensee
REYES, Renderman
Lucasfilm Computer Graphics (jetzt Pixar)
Verwendet in Pixar und vielen anderen Filmen:
Wall-E, Ratatouille, Transformers, Cars, … [Pixar08]
1984
REYES• Rekursive Aufteilung in
dice-able Primitiven• Sichtbare dice werden
grids von Mikropolygonen(~ Pixel Größe)
• Schattierung pro grid Mikropolygon oder Punkt(Farbe und Position)
• Renderman Shader Sprache (C ähnliche Syntax)
REYES: Mikropolygon Abtastung
• Ein Pixel besteht aus vielen verteilten Abtastpunkten
• DOF, AA, Bewegungsunschärfe(effizienter, weil nach Shading)
• A-Buffer für OIT• Tiled Rendering
für bessere Speicher Lokalität,für weniger Speicherverbrauch,für Parallelverarbeitung
Die drei Methoden im Vergleich• Rasterisierung:
Aug-Strahlen, Dreiecke, Transparenzproblematik, GPU
• Ray-tracing:perfekte Reflektionen / Lichtbrechung, Dreiecke sind limitierend,weniger Real-time: Verteiltes Ray-tracing, Global Illumination
• REYES:Displacement Mapping, Level of Detail, Anti-Aliasing
• Shading / Beleuchtung ist orthogonal zur Methode [Hauser02b]• Film Realismus statt physikalischer Korrektheit• Ambient Occlusion, Hybride Lösungen
Fazit• “Die Bedeutung von Multicore in der Spieleentwicklung
bei Crytek”• PS3 (1*2+7 Cell)
XBox360 (3*2 PowerPC)Intel/AMD (1/2/4/?)
• Multi / Many Cores?• Diese Präsentation soll motivieren, dafür benutzte ich
mein Lieblingsthema: Computergrafik
Querverweise• [Nicolas04] Advanced Rasterization, DevMaster.net
www.devmaster.net/forums/showthread.php?t=1884
• [Carp84] Distributed Ray Tracing, Siggraph 1984http://www.csie.ntu.edu.tw/~cyy/courses/rendering/05fall/assignments/pres/slides/DRT.ppt
• [Hauser02a] CGR4- Raytracing (German)http://www.vrvis.at/vr/cgr4/slides/CGR4-2002-RayTracing.pdf
• [Hauser02b] CGR4- Beleuchtung (German)http://www.vrvis.at/vr/cgr4/slides/CGR4-2002-Beleuchtung.pdf
• [Sutter05] Herb Sutter, The Free Lunch Is OverDr. Dobb's Journal, 30(3), March 2005http://www.gotw.ca/publications/concurrency-ddj.htm
• [Pixar08] Renderman Movieshttps://renderman.pixar.com/products/whatsrenderman/movies.html
www.crytek.com/inside/presentations