dobře tak já vás všechny zdravím

já přicházím s tématem tak je to jo jenže jinak

a cože

je pravor identic renderovací architektura

nejdřív pár slov o kontextu

nebo

tak já se zabývá počítačovou grafiku a zobrazováním

od základní školy jakoby já bych se chtěl zeptat ať víme jakým způsobem mluvit kolik

z vás třeba

někdy vyrenderovalo trojúhelník opengl nebo něco podobného

a kolik nás je skoro není většina

jo takže já budu jakoby předpokládat že máte

jakoby povědomí o tom na

počítačové grafice

a

a jak je

proč nějaký nový je dva cizí

v že máme tolik některé komerční některé open

já jsem sem začala odpovím na entou pyrimidinová firma se výkon graphic jsem v devadesátých

letech

pak sme používali o konci graf to že taky opensource vznikl kolem roku dva tisíce

jedna

a

ale

řekněme že už je to hodně nazpátek a architektura počítačů ji a hlavně grafický akcelerátor

se velmi proces měnila

my stále já spolupracuje s firmou kantory kteří zobrazují takovéhle modely použili tom blbě naskenované

ale asi s tím a

nic neudělám

verzovat bojím toho dotknout a _e

a

řekněme

tam ke doma neteklo jakoby problémy že

zákazníci

vytváří různé modely

roste jejich složitost a oni se nějak jako příliš neohlížej na to že to počítačová

nějaký jako limity

a požadují jednak aby

vše bylo naprosto dnes artefakty

jako tady vidíte že prostě nám jaky přesností no nestačí tady na ně nějak z

nějaké hry ty stíny prostě soupis tečkované analyzovali další auta artefaktů které vznikají viníky ze

bufferu

a jiným věcem a snažíme se s tím bojovat prostě protože základní tenhle nezajímá nějaké

omezení

proč se perfektní obraz na modelu

který se prostě vymodeloval

a

takže snažíme se stat nějakým ale těžko stem čelit

a poslední je z nich byl problém tady s tímhle modelem který neni tak krásny

a _e zákazník toho noři jiným účelem a zjistil tam osumdesát tisíc krychli oni vůbec

se konkrétní lidé rádi to dobrý s krychlí

a

prostě je to příliš náročné a

knihovny jakou prosím graf a tu střídavé a podobně když tam jeden nezvládají

a pokud se mně zeptáte proč

nepoužíváme například unit

kdy ty přijde a

ten tým moderní a milion nebo pink it

my nemůžeme protože

to ještě to na míru té prohry kde prostě na design je to hledal a

jestli že tam máte nějaký problém vysílání

tak předně za jmenujete prostě level tak aby to vypadalo dobře

jako typicky tam vznikají různé artefakty hlavní když máte východ slunce a jsou tam slovo

spadal oni ten stín jako je to hrozně škaredé

vezme to vyřešené nebo jeden

můj student takže tam dělo prostě položí a tím pádem slunce vychází až že hodně

vysoko

no na trenér nicméně tohle si naši zákazníci

tak nějak jako o to moc nestojí jo taková to řešení

takže

takže my potřebujeme mít přístup jako bych těma znaků a mít možnost modifikovat o pravítko

speciálně pro sto my dva dny trénovací postupy

když má uživatel speciální přání a podobně

takže proto potřebu z ho pozvali opensource

věc orientovanou na dnešní gpu architektury

kdyby to tak jako by přiblížil

tak a klasické

například i oplácím graf používali architekturu

jak je tady naznačená

máme celkem očko a není máme syn graf

jo scény

kde uložena celá ta scéna samozřejmě na g broučku sou tak studiové broučka nicméně celá

scéna je prokázané každým snímkem a posílány příkazy doubek _e broučka

který pak to jako veliký výpočetní stroj zpracuje vyrobí na

výsledný obrázek na vozovku

nicméně a

dnešních jednička

přeruš podobají velmi toho co klasickým tohoto soudu nebo

o psovi velmi mnoho stihla schopnosti

řekněme

a sou schopny to s cenou ideální kdyby vůbec nemuseli komunikovat s procesor procesory pouze

řekl zobraz

zobrazí mi scénu a on měl všechny na to už dispozici a čistě si pracoval

sám nezávisle

nad se doučovat můžete řešit

síť

umělou inteligenci abdejt objektů a tyhle věci

a teploučko se to překlopit data vyplivne výsledek na obrazovku

takže tolik jakoby teorie kam jakoby míříme věříme že jo konci nebo podobné technologie se

snaží to mohla přibližovat

ale řekněme díky zpětné kompatibilitě a podobně

jim to bude ještě chvíli trvat

a vzhledem tak jediný problém na které jsme s nimi měli když jsme potřebovali doplnit

nějaké technologie do těhle knihoven

tak se to ukázalo časově neefektivní takže sme

založili vlastní

vlastní engine který dneska

vám tady prezentuju

eště jednou tomu problému výkonnosti ať nemluvíme no teoreticky

tady ten model s nechtěli zobrazit tady

a ono psovi osumdesát tisíc krychli jak jsem říkal dělat osmdesát tisíc drog all u

jakých volání s přes opengl to zadání příkazu

a zobrazujeme to třikrát protože řešíme a jistiny a každý

ste každý užila mashe dovolím svoje

abychom neměli artefakty shadow mappingu

a navíc se nám podařilo vyvinout echo

řekněme přístupy které jsou podobně výkonné nebo někdy výkonnější jakž ano mapy

a my sme si že za pět člověk o roku sme vyvinuli technologii která je

řekněme

na svět naprosto na světové úrovni a nikdy si myslím že sme nejrychlejší na světě

ale dobře možná si trochu fandím _e

a takže tři krát osobu zobrazuje ne aby se tam dostali stíny cože čtu roční

čtvrt milionu

velkou a

pokud změřil jsem je dlouho trvat rok ona and idejích dneska poslední

na

ostrově ne paskal generace

a je to zhruba sto nanosekund

šedesát je za drog o čtyrycet na přepnutí bufferu

a takže máme třeba někdy stane no se kód když to vynásobíme čtvrt milionem a

šedesáti f ps

získáme jeden a půl sekundy

tedy nedostaneme šedesát _e stavem asi čtyřicet

prostě dostane se na hranice

výpočetní možnosti

dnešní klasické zobrazovací architektury

takže mu a stručně řečeno výkonnost máme zhruba šedesát tisíc

šedesát tisíc do roku na prim

a

šedesát tisíc krychli

pokud se pokud se posuneme

do herního světa který možná většina z vás bude zajímat více

tak jo přimontujeme auto dáme mu čtyři kola k a stojan nějakým tady je takže

máme dohromady šest rukou chceme zobrazit deset tisíc aut

protože si můžeme město nebo vytváříme simulaci nějaké bity a máme deset tisíc různých

bohnicích vozidel

tak

jsme schopni zobrazí těchto deset tisíc aut ale

náš cíl by byl někde jinde

takže nechtěli zobrazit

třeba ještě trochu více navíc tam zobrazí částicové taky a podobně

a my mu před tebou by byla výkonnost a zhruba desetkrát větší

a teoreticky

teoreticky tam se opravdu dostáváme

provedl jsem opět nějaké měření a možná že víte že rychlost vykreslování jedna dva jedna

sekunda

pokud o ničem malý a to je teoretická propustnost na zobrazení rychlá potřebujeme dvanáct takže

pro deset sekund když to spočítáte kolik je teda pěkný zobrazit tak její zhruba šest

set tisíc

a na šedesát šest a třech my se s tím a má

takže

je to opravdu výkonu zhruba desetkrát větší než kolik jsme schopni za starou architekturou

a

můžeme sebrat a jak teda výkonnosti dosáhlo opravdu se na dnešních různých jako diskuzi kolem

opengl objevují jestliže na ten na evoluční výhoda jako _e

a tímto způsobem bylo dilema jo oni měl štyři tři o co některé externí ženy

další se objevují postupně časem a ještě stále některé čekáme až by

nejsou byli ve standartu pravidlo měl udělat čtyři šest pokud do té doby

řekněme dvou kam nebude příliš velkou konkurencí

a

takže

takže co nám nabízí tady ty metody

no ne na nového hrdinu

o hraju nabízejí na metodu nepřímého renderování místo toho aby zavolali šedesát tisíc krát nějaký

blok o tak si myslíme šedesáticí na to direct na to

ten záznam vypadá to byl nějakej chtěli vědět co to nějakej indexy nováků

slušně řečeno

a

vše co pak uděláme jediný bylo o závěr tady na postupně provede tady celý tento

na from

všechny ty příkazy

takže při třech vacek se dostáváme na nějaké přijdou o ji tak zjednodušeně

a

teď jedinej zádrhel

je jak dlouho nám teda provádění tady tenhle

bufferu jako to je jedno z poučení které sem se naučil vnucovat že ho používám

jestli ženě používáte nějaký přístup ne vězte že je to automaticky rychle spal nezmladil lišily

jestli jsou rychlé ale že takhle mnoho let když se to podařilo efektivně implementovat

a křemíku

a jedna dva tri

radšis je změřit asistentem že to deset sekund na ní

to show proměnná která době trvání jedné rychlé

co šlo šlehání dobře se dostane kam chceme ale taková zajímavost

udělat se podobné měření na daný najednou

podporují to já nevím master regenerace snad odhlásil

nebo možná ani pryč a ale i na poslední generaci to trvá ty si čtyři

sta na úseku

tedy řekněme sto čtyřicet krát déle a tím pádem je to naprosto nepoužitelný

jako doby

uvedeno na houbách jestli to neudělali náhodou software nějakým způsobem takže před ním

veš použijete nějakou technologii je vhodné si to ověřit například

polynomy teďka říkal že dokonce i wireless textury jsou poněkud se dá se pomalejší než

klasické prostory

radši vám neřeknu číslo

příprava ověřené šest nevím eště

takže je vhodné

spočítat si dopředu jestli to jesli

je svoje se dostane mezi cenou při by zájem

našich

engine nula trénovacích struktury

takže to by bylo

hardwerove no tak nebo výkonnostní mu

přístupu který používáme

a teď k samotnému návrhu našeho

našeho většinou

jakýsi odborný ju

máme nějaký stoličky pro geometry který obsahuje vertex je trojúhelníky všechno

a máme také

matice

na který chceme virem dva tyto objekty

obojí zkombinuje dohromady von nějakým

do indirect bufferu který spojuje geometrii sladit sem a

už asi tuší takže tím pádem můžeme velmi efektivně využívat instance radary

a

poté vše v naprostém bufferu

výhody

minimum trochou

automatickým stránce rendering také se nám automaticky dochází k nějakému state co pingu když se

minim minimalizuje přepínání nastavení a

přepínání samův pokud žel pipeline je jenom taková sranda třeba při potěšení nulová stojí řádově

dvě mikrosekundy

cože hodně za tu dobu byste vyrvali dva tisíce trojúhelníku

takže je dobré minimalizovat přepínání stavu

von koji a taky a máme

zneutralizuje plot přímo na ně broučku ve s

výpočtu na c brouček před louček

a divisibility tady

tak tě tolik nějaký přehled abych ke konkrétním _e architektuře

řekněme

taky

čtverečky nebo krabičky představují jednotlivé třídy nebo

víceméně základní

bloky které tam pracují

a

řekl bych souzen takové tři základní bloky které sem a jsou to děleny barevně jednak

zde máme jako john metry repozitory

to zastupují tady tyhle tři ve tři třídy a pak jsme provedli

odlišný přístup

oproti ostatním a ostatním knihovna

které používají jeden graf se ne

vezme

rozdělili na dva

protože na grafice na potřeba je pro nás výhodné zpracovávat transformace zvlášť

a stavijou brečel zvlášť

to je matce broučku je to snadné protože tam vy můžete dědičnosti nějaké třídy každá

s obslouží po svém

ale na grafice je ideál že to oddělené takže sme pak to provedli a je

to lůžko efektivně zpracuje na transformace graf transformací a zvlášť zpracovává přepínání stavů šedinů a

podobně

a

takže tolik a tolik tomu

a abych nemluvil nějak si teoreticky řekněme na další pěti slajdech uvedu jenom příklad jak

se zobrazuje jednoduchý model funguje formátu řekněme nechová tak rychle

s o textu romana a jakým způsobem jí dostaneme do našich relacích struktur

řeknu dopředu design je šitý na to abychom optimálně

vytvořili data najděte účku

a myslim na ty data

a tím pádem

řekněme

ne ukážu v a jediný příkaz tedy zadal cílem

a na čestné na všechno a je to hotovo ukážu vám jak se vytváří jednotlivé

struktury ale řekněme jenom zběžně jak se s tím zase příliš nezdržel na takže máme

nějaké souřadnice tak slováci souřadnice normály a chceme vykreslit nějakým ukončil příkazem

mořidlo indirect

s prvé řadě potřebujeme vybrat a trip stojíš a ty co že za buzení ve

broučka podle formátů podle toho kolik za tech zbav vede o

ve brouček používané a podobně

to že

a bez nestíhali já možná ten koho to jenom se no

vybereme si nějaký ty řekneme že tak slováci sou lidi sou vrstva mám souřadnice sobec

tři požádáme o takovýchto

úložiště

pak vzal zavoláme jaký a okna ta řekneme si kolik chceme vertexu tím se tam

zablokuje prostor tam taky nahrajeme data a pak

a provozujeme tyhle data

takže máme tam geometry krychle

potom musíme vytvořit

tak a teďka kódujeme ukončila příkazy to primitiv storage _e a pak musíme vytvořit stanice

cože řekněme pracovně texturu a šejdrem který to renderuje

vytvoříme

a

vše s spojíme vtom a control komando

který vytvoříme ze dvou zapře věcí je nepotřebujeme vejš

a patrik s a state set

co to tři indexy dodat která sou žena legie ledničku a tento

tento dokument tak prochází komp jo čili které a vyrazili

nebo řekněme přesun imidže dojde bufferu a pak je ten druhý

a já trošičku zrychluje abysme stihli časově

vyrenderování scény pak provedeme jenom zavoláním frame

a předtím tam a posuzujeme novou matici kamery

takže takového přibližně funguje ve gram

pozadí funkce frame je skryto výpočet transformačních matic

řekni

které je potřeba spočítáme ke grebeníčkovi spočítali pochopitelně mnohem rychleji než na

cep jedničku

je to zároveň i s to matematicky instrukcí násobení dvou matic takže pochopitelně spočítat stonat

je broučku je velmi

vhodnější

a rychlejší tři osmdesáti tisíci matic semice broučku poněkud započala

a

a není to už vhodné po vás pro velké scény pak provedeme nějaký aby jste

jsem tu rozpustíme komp večera na závěr

šel všechno jedna

a

dostáváme se trošku k závěru

jo

přispět š od konce

sem tady zaseklo jo výborně

video zablokovalo tlačítka

a

dostáváme se k závěru abysme měli prostor na dotazy

když to když to zrno představil jsem vám ve velké rychlosti jakousi renderovací architekturu které

na g p účku orientovaná pro co nejrychlejší vyrenderování a obchází co nejvíce veškeré závislosti

na to se perou

datech a když datech nebo výpočtech

a mimo to samozřejmě našetřila psovi další částí za zapouzdření opengl za po nějaké jakých

oken aut jelita podobně

brzy tam budou a jistý ty stínové algoritmy které momentálně připravujeme pro

jaký komici dost těch to je pro většinu

výhody je to opensource

je to

přejmenování se neobjevují skoro žádné artefakty o poslední který víme sou přes noc ze bufferu

kterou stěží odstraníme pokud

pokud se mi používat ze buffer a

jinak

takže

velmi efektivně my používáme na ty různé modely

a zavede či slajd

řekl bych

pokud byste měli zájem o nějakou spolupráci je problém že ne k dispozici je volně

na internetu a jsou svoloč

uvítáme jak ji spolupráci na jednu nějaký další vodou například fyziky na gpu nebo

pokud

byste chtěli to použito nějaké ty projekty

tutoriály uvítáme

klidně nám dejte vědět ráda budeme rádi věděli o tom že to

někdo používá nebo nám třeba nabídne

nějaký modul který by kterýmu tam chybí a rád vyvine takže velmi otevření co se

týká spolupráce na nějakých open technologiích

taky sme otevřený spolupráci s firmami a když to budete používat komerční nějakých

svět projektech nebo v rámci fitu

s tím jsme schopni nějako smluvního výstupního a s smluvního vývoje

na závěr bych řekl pokud byste chtěli měl nějaké hry budeme velmi rádi pokud nám

o tom

dáte vědět a

velmi rádi naváže nějakou spolupráci

takže prostor vaše dotazy

ano

tato hodnota

a to je dobrá otázka

a

počítáme zmínil bych asi dvě věci

jednak

připadá mi že vulkány takový jako trošičku začátku

do docela popularizován a technologie a řekněme její nelze na to že eště není z

peněz

stabilní ve všech ohledech

a speciálně miliarda jedenáct ne se zlobili

a čekám na ještě ve větru vychytané proto to není vhodné netlačí zákazníkům

druhá věc

dvojka

jo to opengl

pokud používáme obličej a efektivně jsme schopni aplikaci hynou rychleji než vendulka tam jste na

nejnižší úrovni ženíte si veškeré přenosy a je to mnohem víc práce a

takže zatím zůstáváme neublížil

a čekáme až se

tabulkám tak nějak jako usadí a

a pak paní i rádi použijeme