3D Engine architektúra - Programozói Konferencia

Post on 11-Nov-2021

8 views 0 download

Transcript of 3D Engine architektúra - Programozói Konferencia

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