20
3D Engine architektúra Constans Mátyás Yves 2018. október 11.

3D Engine architektúra - Programozói Konferencia

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3D Engine architektúra - Programozói Konferencia

3D Engine architektúraConstans Mátyás Yves

2018. október 11.

Page 2: 3D Engine architektúra - Programozói Konferencia

3D Enginek

• Engine: Software fejlesztő környezet játékokhoz• Jelenlegi Enginek:

Page 3: 3D Engine architektúra - Programozói Konferencia

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

Page 4: 3D Engine architektúra - Programozói Konferencia

Black Boxes

•  Valami amit "csak" használunk.•  Nem feltétlenül értjük mit takar.

3D Engine

Page 5: 3D Engine architektúra - Programozói Konferencia

Manapság

Normal Mapping

Linear Filtering

Shaders

Parallax Mapping

Tessellation

SSAO

Antialiasing

Deferred Shading

Page 6: 3D Engine architektúra - Programozói Konferencia

"Andy giveth, Bill taketh away"

Page 7: 3D Engine architektúra - Programozói Konferencia

Andy már nem ad sokat...

Page 8: 3D Engine architektúra - Programozói Konferencia

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.

Page 9: 3D Engine architektúra - Programozói Konferencia

A legtöbb engine-ben

• Platform mint objektum.• +: Lehet class Win_Platform, PS4_Platform : Platform

Page 10: 3D Engine architektúra - Programozói Konferencia

Azonban...

• Jóval bonyolultabb megközelítés mint szükséges• Kevesebb optimizáció lehetőség.• Példa: Ogre3D... *sigh*

Page 11: 3D Engine architektúra - Programozói Konferencia

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!

Page 12: 3D Engine architektúra - Programozói Konferencia

Architektúra

.EXE

.DLL

.DLL

DATA (r/w)

DATA (w)

Page 13: 3D Engine architektúra - Programozói Konferencia

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!

Page 14: 3D Engine architektúra - Programozói Konferencia

Adatok megjelenítése

• ImGUI(Immediate GUI)

Page 15: 3D Engine architektúra - Programozói Konferencia

Majd egy nap...

Normal Mapping

Linear Filtering

Shaders

Parallax Mapping

Tessellation

SSAO

Antialiasing

Deferred Shading

Page 16: 3D Engine architektúra - Programozói Konferencia

Majd egy nap...

Normal Mapping

Linear Filtering

Shaders

Parallax Mapping

Tessellation

SSAO

Antialiasing

Deferred Shading

Page 17: 3D Engine architektúra - Programozói Konferencia

Majd egy nap...

Normal Mapping

Linear Filtering

Shaders

Parallax Mapping

Tessellation

SSAO

Antialiasing

Deferred Shading

Page 18: 3D Engine architektúra - Programozói Konferencia

Majd egy nap...

Normal Mapping

Linear Filtering

Shaders

Parallax Mapping

Tessellation

SSAO

Antialiasing

Deferred Shading

Page 19: 3D Engine architektúra - Programozói Konferencia

Majd egy nap...

Normal Mapping

Linear Filtering

Shaders

Parallax Mapping

Tessellation

SSAO

Antialiasing

Deferred Shading

Page 20: 3D Engine architektúra - Programozói Konferencia

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