Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Vilem Otte

Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 11. duben 2011, 21:08:56 Předmět: |
|
|
citace: |
Pokud hodláš podporovat tady tento Radeon, tak bych doporučil být hodně opatrný. Ani blbý pole tam neuděláš, pokud indexy do toho pole nejsou konstanty. |
No vzhledem k tomu, že plánuju podporu až karet s podporou OpenCL, tak asi ne. Přece jenom by to znamenalo dělat pro tento typ karty úplně jiný traversal (protože pro pre-G80/R600 karty je lepší stack-less, a pro novější klasický stack-based), což znamená psát něco vícekrát - a udržovat ještě více render-paths (už tak CPU a GPU render path stačí, i to je dost).
EDIT: Tak scéna pro demo je hotová, teď je třeba demo ještě připravit (to chvilku potrvá ... ale na GPU asi ještě nebude, půjde zase jen o test). Ale bude mít trošku masivnější scénu (několik set tisíc verts, několik set tisíc faců)... co jsem testoval, tak se hýbe dobře (je interaktivní na Core i3, na které testuju).
Ad loading time - tady se teprve osvědčuje dobrý O(N log N) KD-Tree, načtení scény trvá cca stejně dlouho jako kompilace KD-Tree (což je jen dobře) ... a to je SAH-based, ještě dochází k linearizaci v paměti (levý child je *list + 1, druhý odkázaný pointerem). To drasticky zrychluje traversal (a ten pak běhá prakticky bez cache-misses a jde to poznat). _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
 |
Vilem Otte

Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 13. duben 2011, 01:31:18 Předmět: |
|
|
Mala ukazka jednoho trosku vice massive setu (zajimave ze zakladne mam na Core i3 cca 2 MRays/s per core, a s timto radove komplexnejsim modelem cca 1.2 MRays/s per core (coz dokazuje, ze v pripade massive setu by byl tento ray tracer radove rychlejsi nez rasterizer pri renderingu).
Prozatim si stale pokracuji v OpenCL (na Core i3 mam nejakych 32 GFlops, na HD 6950, ktery planuju poridit na testovani, jich je pres 2700 GFlops, samozrejme neco umre na pameti a cache (neni cache line jako cache line, a alignment na GPU neni alignment na CPU, etc.), ale pokud bych z ni vytriskal alespon 4x takovy vykon jako z i3 - tak jsem velmi spokojeny (ale afaik z ni dostanu mnohem vice).
Eye candy image time:
Samozrejme zkonvergovano behem 2, 3 sekund (uz se tesim jak se to povede s GPU, tam by to mohlo silne zavanet high-quality realtime path tracingem). Na i3 celkem slusny cas (na vetsich bestiich jsem zatim nemel cas testovat).
EDIT: Teoreticky v pripade sikovneho rendereru by bylo mozne pouzit tracer pouze na stiny, a/nebo odrazy a/nebo lomy, etc. - coz by mohlo byt take prakticke ... dokud tedy nebudeme mit doma 4 x 12-core CPU kazdy  _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 13. duben 2011, 01:54:57 Předmět: |
|
|
Škoda, že to umí jen flat-shading.
A ten aliasing, bleeee.  _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1051
|
Zaslal: 13. duben 2011, 08:05:00 Předmět: |
|
|
vilem poznas LuxRender? ten typek co to porgramuje dosiahol minule s 3x radeon 5870 cez 100MRays/s v komplexnom pathtracery ktory rata prakticky normalne pouzitelny osvetlovaci model. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
Vilem Otte

Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 13. duben 2011, 11:00:33 Předmět: |
|
|
citace: |
Škoda, že to umí jen flat-shading. |
Ono to umí i smooth-shading, jenom já jsem líný správně (správně = na daném bodě sesumovat normály) spočítat vertex normály při načítání
Výpočet normály na daném bodě se bere ze všech tří bodů a mixuje se na základě barycentrických koordinátů (tedy standardní výpočet normály na pixelu v závislosti na vertex normals.
citace: |
A ten aliasing, bleeee. Razz |
Neboj, oversampling se přidá (ono to jde celkem přirozeně přes temporal antialiasing, navíc jednoduše).
citace: |
vilem poznas LuxRender? ten typek co to porgramuje dosiahol minule s 3x radeon 5870 cez 100MRays/s v komplexnom pathtracery ktory rata prakticky normalne pouzitelny osvetlovaci model. |
Mám i Cornell-box path-traced při 80 MRays/s na HD 5470 (napsáno v GLSL), GLSL odvedlo o dost lepší práci při kompilaci v optimalizacích algoritmu než OpenCL. Na Ompf.org jsme o tom dost filozofovali s toxiem, a prozatím asi skutečně GLSL shader je rychlejší (o dost), než OpenCL.
Nicméně nelze srovnávat, protože pokud trošku do ray tracerů vidíte - zjistíte, že samotné je nelze nikdy navzájem srovnávat.
LuxRender znám, ten se však soustředí na kvalitu, já momentálně na rychlost (a na ni se také plánuji soustředit v budoucnu).
EDIT: Pro Eosieho, s temporal antialiasingem:
 _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
 |
|