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