Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 21. září 2008, 00:58:18 Předmět: |
|
|
Vo vedlajsom threade som dostal motivaciu spojazdnit to do tech-dema, cize som sa do toho dnes pustil. Aktualny status je, ze sa mi podarilo najst ten teren a predovsetkym sa mi podarilo renderer switchnut z podmorskeho http://www.avenger.sk/AquAttack/2008/ScreenShot010.jpg na klasicky pustny. Na pocudovanie to bola celkom makacka, lebo mam 3 rozne sady Index Bufferov a pre kazdy typ povrchu 3-5 metod renderingu. Takze nakoniec som to hladal vylucovacou metodou
Mam to, ale uz su 2 hodiny rano, takze na teraz koncim. Este ma caka naeditovat par kamier, zapnut FPS benchmarking a spravit z toho spakovany release v normalnej velkosti. Teraz v nedelu vela casu za kompom mat nebudem, ale momentalne je to priorita, takze benchmark bude  |
|
Návrat nahoru |
|
 |
andris11
Založen: 29. 07. 2008 Příspěvky: 22
|
Zaslal: 22. září 2008, 12:13:41 Předmět: |
|
|
3000 FPS?!? To se mi zda...jak bych to rekl cesky... very cool!
Skoda, ze se zas tolik nevyznam v oznaceni a vykonech GK, mohl bych to zkusit na svem Radeonu 9600XT pro srovnani?
Prozradis kolik je tam trojuhelniku? Pocitam, ze je to jeden velky triangle strip, nebo implementujes i nejakym zpusobem LODding? (ve tve MasterThesis.pdf, jsem zahlidl i pokec o LOD)
3000FPS a takovy obraz - fakt dobre  |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 22. září 2008, 12:43:29 Předmět: |
|
|
Teraz presne netusim kolko tam bolo trianglov, ale asi vela nie, ked to vybehlo na 3000 fps
Na tom radeone by to tiez malo ist v pohode. Ale vcera som prehral boj s Feature-Creep. Je to svina, zase ma zmohla
Ale su to len drobnosti, ziaden refaktor terenu sa nekona, takze by to nemalo zdrzat viac nez par dni, prinajhorsom do dalsieho vikendu. Plus, robim si tam trocha poriadok, kedze sa popridavali dalsie featury za posledny polrok a uz je tam slusne mnozstvo kombinacii IB/VB/Rendererov, cize uz v tom zacinam mat hokej.
Ten MasterThesis.pdf nie je odo mna, tusim to tam niekto spominal o par postov vyssie.
TriangleStrip nepouzivam, uspora VRAM/BandWidth na pocte indexov je minimalna a nestoji za rec (+- 1-2 MB). Navyse, Tri-List si vies zindexovat lepsie ako Tri-Strip. Mne sa podarilo docielit pomeru (medzi transf.vertexami a poctom trianglov) 0.621. Cize na 504 trianglov treba len 313 transformacii.
Viem, su na nete PDFka s indexovanim na 0.57. Ale ja radsej pouzijem svoje vlastne, krvopotne vymyslene, hoc o 10% pomalsie
Inak, ked si celkom dole pri zemi a zapnu sa vsetky materialy a LODy sa prepnu na nizsiu uroven, tak FPS uz samozrejme nie je 3000, ale padne to na 500-1000  |
|
Návrat nahoru |
|
 |
SUK
Založen: 14. 11. 2007 Příspěvky: 93 Bydliště: /dev/null
|
Zaslal: 22. září 2008, 15:42:37 Předmět: |
|
|
Btw jak je vlastne tech 3000fps moznych? ja tolik nedostanu ani kdyz "vykresluju" prazdnou scenu
Ale jinak - dobry  |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 22. září 2008, 15:51:33 Předmět: |
|
|
No, ked ti ani prazdna scena neda tolko, tak moj teren urcite nie
Ale je to umerne kombinacii vykonu grafickej karty a CPU. U mna je to 1.6 GHz CPU a nVidia 7950GT. Chcel by som to pustit na nejakom 3.5GHz CPU s 9800kou, len tak zo srandy Mate niekto taky stroj ? |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 22. září 2008, 15:52:56 Předmět: |
|
|
VladR napsal: |
No, ked ti ani prazdna scena neda tolko, tak moj teren urcite nie
Ale je to umerne kombinacii vykonu grafickej karty a CPU. U mna je to 1.6 GHz CPU a nVidia 7950GT. Chcel by som to pustit na nejakom 3.5GHz CPU s 9800kou, len tak zo srandy Mate niekto taky stroj ? |
mas jezdit na GDS - meli jsme k dispozici dva silne stroje - jeden z nich dve GTX280 ve SLI a nejaky core2quad a druhy mel jednu GTX280 a nejake 3GHz core2duo  |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 22. září 2008, 16:13:36 Předmět: |
|
|
Tak ale cesta z Kosic autom do Brna vyjde casovo podobne ako cesta do Chorvatska cez Madarske dialnice. Cize k tomu sa clovek len tak nedonuti.
Ja som to absolvoval pred mesiacom kvoli Leipzigu (siel som cez CZ) a bol to masaker, hlavne tie obchadzky za Brnom boli uzasne...
Ta masinka znie lakavo Je este k dispozicii ? |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 22. září 2008, 18:23:13 Předmět: |
|
|
VladR napsal: |
Ta masinka znie lakavo Je este k dispozicii ? |
neni - byly pujcene od nvidie - tak si vzpomen pred pristim GDS  |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 22. září 2008, 18:38:28 Předmět: |
|
|
Tak pokial sa o rok najde niekto z KE co by bol ochotny ist, tak by som pouvazoval. Sam urcite nemienim znasat naklady takej dlhej cesty.
Minuly mesiac som siel z KE cez Cechy do Leipzigu, tyzden na to z KE do Chorvatska. Keby som mal ist este do Brna, tak asi zinfarktujem z tolkych redbullov, o stovkach litrov nafty nehovoriac.
Ale program vyzeral lakavo. Kebyze idem o rok, tak vam spravim prezentaciu o terenoch  |
|
Návrat nahoru |
|
 |
andris11
Založen: 29. 07. 2008 Příspěvky: 22
|
Zaslal: 22. září 2008, 22:24:06 Předmět: |
|
|
VladR napsal: |
TriangleStrip nepouzivam, uspora VRAM/BandWidth na pocte indexov je minimalna a nestoji za rec (+- 1-2 MB).
|
krome cteni indexu se prece ctou i vertexy, a veril bych, ze to bude 1 cteni vertexu na 1 index, takze v pripade tri-stripu bys mohl prece jen usetrit ne? zvlast mas-li slozitejsi vertex declaration... jen domnenka
citace: |
Navyse, Tri-List si vies zindexovat lepsie ako Tri-Strip. |
to jo, ale vzhledem k tomu, ze indexy po vytvoreni uz netreba menit, tak by mohlo stat za to vytvorit tri-strip? (jestli to teda v pripade terenu jde, ale snad by to melo jit)
citace: |
Mne sa podarilo docielit pomeru (medzi transf.vertexami a poctom trianglov) 0.621. Cize na 504 trianglov treba len 313 transformacii. |
to ale s indexovanim nemusi mit nic spolecneho ne? Vezmes vertex buffer, v cyklu ho prohrcis a transormujes pozici kazdeho vertexu...
citace: |
Viem, su na nete PDFka s indexovanim na 0.57. Ale ja radsej pouzijem svoje vlastne, krvopotne vymyslene, hoc o 10% pomalsie |
Jo tenhle pocit znam, i kdyz ty chvile, kdy zjistim, ze uz to fakt optimalizovat nejde a presto se najdou implementace, ktere to zvladnou o nejake celkem vyznamne procento lip, me vzdycky deptaji
citace: |
Inak, ked si celkom dole pri zemi a zapnu sa vsetky materialy a LODy ... |
Takze implementujes nejaky LOD, mas ten teren nejak rozdeleny do mrizky a kazda bunka ma vice LOD levelu? |
|
Návrat nahoru |
|
 |
andris11
Založen: 29. 07. 2008 Příspěvky: 22
|
Zaslal: 22. září 2008, 22:41:15 Předmět: |
|
|
andris11 napsal: |
...tak by mohlo stat za to vytvorit tri-strip? (jestli to teda v pripade terenu jde |
urcite to jde kdyz se pouzije degenerate strip (dole v odstavci "Converting from polygon mesh")
Naposledy upravil andris11 dne 23. září 2008, 21:11:52, celkově upraveno 1 krát |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 23. září 2008, 00:08:51 Předmět: |
|
|
Bez degenerovaných trianglů by byl triangle strip už úplně nepoužitelnej, nebudem si přece zbytečně zvyšovat počet draw-calls.
Když se dobře udělá index buffer pro triangle list, máš to rychlejší než jakej vůbec můžeš udělat triangle strip i s indexováním. U stripu musíš následovat ten pás trojúhelníků a trochu ztrácíš na efektivitě post-vertex-shader cache, hlavně kvůli ní má index buffer smysl. U pouhého seznamu máš větší kontrolu nad pořadím transformovaných vertexů a tedy můžeš uspořádat indexy tak, aby se co nejvíc využila a tedy aby reálný počet spuštěných vertex shaderů byl co nejmenší. Z toho důvodu bych triangle stripy nedoporučil. Nicméně abychom furt nehonili výkon jen na této jedné cache, doporučuje se taky řadit trojúhelníky podle pozice od pozorovatele (kreslit dřív ty, co jsou blíže), tak se využije early depth-test v rámci jednoho draw-callu (tady zas snižujeme počet spuštěných pixel shaderů). U statických objektů si to celé můžem předpočítat, u dynamických je to problém. Obě tyto optimalizace umí za nás řešit Tootle. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 23. září 2008, 08:06:15 Předmět: |
|
|
andris11 napsal: |
krome cteni indexu se prece ctou i vertexy, a veril bych, ze to bude 1 cteni vertexu na 1 index, takze v pripade tri-stripu bys mohl prece jen usetrit ne? |
Praveze jedine, co realne usetris je bandwidth na citanie tych par indexov navyse. To sa neprejavuje ani pri framerate 3000, cize pri beznych konecnych frameratoch okolo 100ky, to neuvidis ani na tretom desatinnom mieste.
andris11 napsal: |
zvlast mas-li slozitejsi vertex declaration... |
To je osobitna kapitola, tu je vzdy na otestovani, ci je lepsie mat Verex Declaration nealignovany na cache alebo ho mat s tym ze sa zvysok dat doplni v dalsich streamoch. Win some, loose some Tu som stravil vacsinu casu - tym testovanim vsetkych kombinacii, ze este dokedy sa oplati mat dodatocne streamy.
andris11 napsal: |
VladR napsal: |
Mne sa podarilo docielit pomeru (medzi transf.vertexami a poctom trianglov) 0.621. Cize na 504 trianglov treba len 313 transformacii. |
to ale s indexovanim nemusi mit nic spolecneho ne? Vezmes vertex buffer, v cyklu ho prohrcis a transormujes pozici kazdeho vertexu... |
No to ma praveze VSETKO spolocne s indexovanim Prave tym, ze mas indexy zoradene idealnym sposobom docielis toho, ze sa ti vertex shader nevola na kazdy 1 triangle ale az kazdy cca druhy (vid 0.6). Co je teda riadna uspora.
andris11 napsal: |
Takze implementujes nejaky LOD, mas ten teren nejak rozdeleny do mrizky a kazda bunka ma vice LOD levelu? |
Presne tak. Je to klasicky system ala quadtree (ale nie presne quadtree). Samozrejme, na nahlady z vysky to pouzit nejde, to by bolo prilis vela volani DIP, tam uz to treba ochcat inak  |
|
Návrat nahoru |
|
 |
andris11
Založen: 29. 07. 2008 Příspěvky: 22
|
Zaslal: 23. září 2008, 11:10:08 Předmět: |
|
|
Eosie napsal: |
Bez degenerovaných trianglů by byl triangle strip už úplně nepoužitelnej, nebudem si přece zbytečně zvyšovat počet draw-calls. |
jj, sorry, ze vas tady podcenuju zminovanim infa o degenerate stips ja jen aby bylo jasno
Eosie napsal: |
řadit trojúhelníky podle pozice od pozorovatele (kreslit dřív ty, co jsou blíže), tak se využije early depth-test v rámci jednoho draw-callu (tady zas snižujeme počet spuštěných pixel shaderů). |
Jasne, pixel shadery daji urcite vic zabrat, nez fetchovani trianglu.
VladR napsal: |
No to ma praveze VSETKO spolocne s indexovanim Prave tym, ze mas indexy zoradene idealnym sposobom docielis toho, ze sa ti vertex shader nevola na kazdy 1 triangle ale az kazdy cca druhy (vid 0.6). Co je teda riadna uspora. |
Aha vlastne transformujes ve vertex shaderu, to pak jo. Ale jaktoze neni proste jedno volani vertex shaderu na jeden vertex?! EDIT napr. kvuli moznosti zaradit do pipeline geometry shadery? |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 23. září 2008, 11:51:46 Předmět: |
|
|
andris11 napsal: |
Ale jaktoze neni proste jedno volani vertex shaderu na jeden vertex?! |
No tak si představ situaci, kdy se vykresluje model...a teď se ztransformuje vertex A...za ním se renderují další vertexy a najednou se vyskytne trojúhelník, který opět obsahuje vertex A. Všechny transformované vertexy se ukládají do nějaké cache a pokud mezi prvním a druhým výskytem vertexu A bylo tak málo vertexů, že nevytlačily z této cache vertex A (resp. výsledek transformace jeho prvního výskytu), tak se použije přímo výsledek z té cache a nemusí se na něj znovu pouštět vertex shader.
Ještě trošku jiný pohled: Vertex shader je v nejhorším případě (bez post-vertex cache) spouštěn pro každý vertex, který je indexovaný (a to tolikrát, kolik je indexovaný) - tedy je transformováno tolik vertexů, kolik je indexů.
Takže důležité je, aby jsi měl trojúhelníky uspořádané tak, aby se stejné vertexy vyskytovaly blízko za sebou (aby se lépe využila post-vertex cache (nebo jak se tomu nadává)).
"Problém" je, že proti tomuto požadavku může jít jiný požadavek - vykreslování trojúhelníků ve směru od kamery dozadu (jak psal Eosie) - tím zase ušetříš spuštění pixel shaderů, protože tím zmenšíš možnost, že vykreslený pixel bude přepsán jiným (tedy zvýšíš možnost, že na pixel nebude vůbec spuštěn pixel shader, protože jeho Z bude dost velká).
Mně osobně se nejvíc líbí přístup, kdy vertexy uvnitř modelu jsou uspořádány tak, aby byla co nejvíce využita post-vertex cache, a celé modely řadit od kamery dál. |
|
Návrat nahoru |
|
 |
|