Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
3D Engine architektúraConstans Mátyás Yves
2018. október 11.
3D Enginek
• Engine: Software fejlesztő környezet játékokhoz• Jelenlegi Enginek:
Miért írjunk saját engine-t?
• A legtöbb játék ezen programok egy részét használja fel csak (5-10%)
• Hatással van a játék design-ára
• A játékot tekintve, nem optimális mivel általános
• Fejlesztési filozófia
Black Boxes
• Valami amit "csak" használunk.• Nem feltétlenül értjük mit takar.
3D Engine
Manapság
Normal Mapping
Linear Filtering
Shaders
Parallax Mapping
Tessellation
SSAO
Antialiasing
Deferred Shading
"Andy giveth, Bill taketh away"
Andy már nem ad sokat...
Data-Oriented Design (DOD)
• Minden program célja: adat változtatás egy adott formából egy másikra.
1.) Ha nem érted az adatot, nem érted a problémát.
2.) Ha nem érted a hardware-t, nem tudsz mérlegelni.
3.) A compiler egy eszköz, nem varázs pálca.
A legtöbb engine-ben
• Platform mint objektum.• +: Lehet class Win_Platform, PS4_Platform : Platform
Azonban...
• Jóval bonyolultabb megközelítés mint szükséges• Kevesebb optimizáció lehetőség.• Példa: Ogre3D... *sigh*
Fordítsuk meg a problémát
• Tudjuk, hogy milyen hardware-en lesz az játék.
• Amit elvárunk egy platformtól:• Display, Video• Audio (Stereo, 3D)• Input (Controller, Mouse, Keyboard)• Error handling (OS, Driver)
• Minden más a játek része!
Architektúra
.EXE
.DLL
.DLL
DATA (r/w)
DATA (w)
Amit ezzel nyerünk
• Dynamic reload: Live C/C++ editing!
• Profiling: frame-time, audio samples (serialization)
• Input recording/replay
• Multithreading: Work Queues
• "Nem tud" minderről a játék!
Adatok megjelenítése
• ImGUI(Immediate GUI)
Majd egy nap...
Normal Mapping
Linear Filtering
Shaders
Parallax Mapping
Tessellation
SSAO
Antialiasing
Deferred Shading
Majd egy nap...
Normal Mapping
Linear Filtering
Shaders
Parallax Mapping
Tessellation
SSAO
Antialiasing
Deferred Shading
Majd egy nap...
Normal Mapping
Linear Filtering
Shaders
Parallax Mapping
Tessellation
SSAO
Antialiasing
Deferred Shading
Majd egy nap...
Normal Mapping
Linear Filtering
Shaders
Parallax Mapping
Tessellation
SSAO
Antialiasing
Deferred Shading
Majd egy nap...
Normal Mapping
Linear Filtering
Shaders
Parallax Mapping
Tessellation
SSAO
Antialiasing
Deferred Shading
Irodalom
• Semantic Compression: https://caseymuratori.com/blog_0015
• Data Oriented Design: https://www.youtube.com/watch?v=rX0ItVEVjHc
• DOD - Példa: https://bitbucket.org/bitsquid/foundation/src
• Opening a black box: https://www.youtube.com/watch?v=SYomOZIfeoU
• A lang. for games: https://www.youtube.com/watch?v=uZgbKrDEzAs