A...РеализациjууHW Лакша Тежа Мемориjа Више Мање...

29
Aрхитектура игрица ЛПРС2 РТ-РК May 14, 2018 ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 1 / 29

Transcript of A...РеализациjууHW Лакша Тежа Мемориjа Више Мање...

Page 1: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Aрхитектура игрица

ЛПРС2

РТ-РК

May 14, 2018

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 1 / 29

Page 2: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Саставни делови играчке платформе

Контролни улази - контролише ток игре,Видео излаз - исцртавање резултата,Аудио излаз - баш и не радимо,Игрица - чува тренутно стање и повезуjе све ово.

Игрица jе практично као jедан велики FSM.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 2 / 29

Page 3: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Реализациjа играчке платформе

Платформа се може реализовати потпуно софтверски.Али jе уобичаjено да се користи хардверска акцелерациjа за некеделове, пре свега графику коjа jе наjзахтевниjа, онда звук (декодовање,мешање), физику (коjа се обично одрађуjе на графичком процесору).

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 3 / 29

Page 4: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Слоjеви игрице

Scripting

Engine

HW

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 4 / 29

Page 5: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Scripting

Саставни делови су:Gameplay - логика, како се игра игра,Мапе - да припреми мапе,AI - вештачка интелигенциjа, ботови,UI - кориснички интерфеjс, GUI, подешавања.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 5 / 29

Page 6: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Реализациjа Scripting-а

Обично се пише у неким интерпретираним (скрипт) jезицима (отуданазив). На скромниjим платформама (као што jе E2LP, Sega) се пишеу компаjлираним (хард коре) jезицима, као што jе C. Ствар jекомпромиса:

Jезик Интерпретирани КомпаjлираниРазвоj Бржи СпориjиИзмене Лакше Теже

Проширивост Лакша ТежаБрзина (CPU) Мања ВећаМемориjа Већа Мања

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 6 / 29

Page 7: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Оправдање за интерпретиране jезике

На нивоу целе игрице:Jезик Scripting Остало

Захтевност (CPU, мемориjа) Мања ВећаКоличина кода Већа Мања

Измене (tweaking, нова верзиjа) Честе РеђеРаду Шљакери Мастер Jода

У случаjу мањих игрица, где неће бити много мењања ипроширивања, Scripting може бити урађен у компаjлираним jезицима.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 7 / 29

Page 8: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Scripting у нашем случаjу

На ЛПРС2 радите га у C-у.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 8 / 29

Page 9: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

HW

Подразумева рад са перифериjама (видео, аудио, контролер), али ихардверску акцелерациjу (графика, аудио, физика, итд.). Практично,графика не може без хардвера.Аудио ћемо прескочити овога пута.Овде ниjе искључиво хардвер у питању, већ и софтвер у обликусистемске подршке за хардвер (драjвери, библиотеке).

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 9 / 29

Page 10: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Таксономиjа графике

Врсте графике (примитиве):Векторска - цртамо геометриjске облике:

линиjе,полигоне,слова.

Растерска - цртамо неке сличице:спраjтове - (sprite),текстуре - (texture).

Врсте простора боjа:Index-mode - постоjи палета боjа, а пиксели у framebuffer-у суиндекси,Color-mode - RGB, директан рад са компонентама боjа.

index-mode По геометриjи:2D,3D.ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 10 / 29

Page 11: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Index-mode vs. Color-mode

Простор боjа Index-mode Color-modeОбрада (мешање боjа, интерполациjа) Теже Лакше

Мемориjа (framebuffer) Мање ВишеПрактично, индексни мод jе бољи на простиjим графичкама, 2D и безикаквих интерполациjа и слично.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 11 / 29

Page 12: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Сортирање

Практично сви алгоритми за примењени у графичком режиму,се своде на неку врсту сортирања.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 12 / 29

Page 13: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Z-оса алгоритми

Painter’s algorithm (Cликарски алгоритам) - програмеродређуjе у z-оси редослед исцртавања полигона.Z-buffering - алгоритам сам одређуjе коjи ће полигон бити прекокоjег.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 13 / 29

Page 14: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Проблем са сликарским алгоритмом

Мало jе теже цртати загуљениjе 3D случаjеве.

Z-buffering то успева да исхендла jер ради сортирање исцртавања нанивоу пиксела а не полигона.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 14 / 29

Page 15: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Реализациjе

Излаз може бити:Framebuffer - сортирање преко мемориjе, па касниjе их пошаљена екран,Beamchasing - нема framebuffer-а, израчуна пиксел таман пренего што га пошаље на екран.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 15 / 29

Page 16: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Framebuffer vs. Beamchasing

Простор боjа Framebuffer BeamchasingСортирање на нивоу Пиксела Примитива

Алгоритам Лакши ТежиПаралелизљивост алгоритма Већа Мања

Мемориjа Више МањеМемориjски bandwidth Већи Мањи

Beamchasing jест компликованиjи за хардвер, али jе мањи bandwidth,што jе већи проблем у будућности.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 16 / 29

Page 17: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

2D Операциjе

Draw Line - векторска, исцртаj линиjу на екрану (framebuffer-у),Draw Rect - векторска, исцртаj полигон на екрану (framebuffer-у),Copy-Blit - растерска, копираj слику на екран, пиксел на пиксел.Copy-Strech - растерска, различите димензиjе извора иодредишта, мора да користи интерполациjу.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 17 / 29

Page 18: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

3D Операциjе

линиjа,троуглови.

Главна операциjа jе цртање троуглова. Сваки троугао има 3 вертекса(vertex). Могу бити исцртани као:

линиjа,jедна боjа (сва три вертекса иста боjа)интерполациjа боjа са сваког од три вертекса,мапирана текстура (texture mapping).

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 18 / 29

Page 19: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

3D алгоритми

Rasterization - израчунава фрагмент (fragment), будући пиксел,на основу троугла и извора светлости, па врши сортирањефрагмената и коjи jе наjближи постаjе пиксел.Ray-casting - прати уназад зрак из пиксела, на први троугао коjина коjи наиђе, па се одбиjа па према извору светлости.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 19 / 29

Page 20: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Rasterization vs Ray-casting

Алгоритам Rasterization Ray-castingСортирање на нивоу Фрагмената (Пиксела) ТроугловаБазични алгоритам Лакши ТежиКраjњи алгоритам Тежи Лакши

Паралелизљивост алгоритма Већа МањаРеализациjу у HW Лакша Тежа

Мемориjа Више МањеМемориjски bandwidth Већи Мањи

Сенке Не ДаОгледала Не Не

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 20 / 29

Page 21: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Ray-tracing

Слично као и ray-casting само се зрак може одбити више пута.Резултат: огледало jе тривиjално реализовати (рефлексиjа), прозирнематериjале исто (рефракциjа) и jош много тога.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 21 / 29

Page 22: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Произвођачи

Главни:AMD,NVidia,Imagination Technologies.

Ко jош ради:Intel,Broadcom,ARM...

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 22 / 29

Page 23: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Слоjеви у 3D системскоj подршци

Lib with API

Driver

HW

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 23 / 29

Page 24: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

3D lib API-jи

OpenGL,DirectX,Vulkan.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 24 / 29

Page 25: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Слоjеви у 3D системскоj подршци 2

Обично произвођачи подржаваjу све API-jе.

OpenGL DirecX Vulkan

Driver

HW

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 25 / 29

Page 26: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Shaders

Програмабилан део рендерског pipeline-а.Geometry,Vertex,Fragment.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 26 / 29

Page 27: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Engine

Engine jе софтверски радни оквир (framework) коjи олакшава развоjигрица.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 27 / 29

Page 28: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Шта онда ради Engine

Мапе - да припреми мапе,Gameplay - логика, како се игра игра,AI - вештачка интелигенциjа, ботови,Физика - да срачуна ефекте.

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 28 / 29

Page 29: A...РеализациjууHW Лакша Тежа Мемориjа Више Мање Мемориjскиbandwidth Већи Мањи Сенке Не Да Огледала Не Не ЛПРС2

Алгоритам игре

Учитавање

Контроле

СрачунатиGameplay

Цртањеграфике

ЛПРС2 (РТ-РК) Aрхитектура игрица May 14, 2018 29 / 29