.[ ČeskéHry.cz ].
Deferred rendering, obloha a zrcadlo

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 14. prosinec 2011, 14:03:17    Předmět: Deferred rendering, obloha a zrcadlo Odpovědět s citátem

Cau,
Nadpis tematu sice vypada jako nazev pohadky, ale neni. Mam problem.
Renderuji scenu pres deferred, vse je ok. Kdyz ovsem potrebuju scenu ozrcadlit pro vodu, nesedi mi obloha a mam mezi nebem a jeho odrazem pas, takze nesedi na sebe. Ostatni objekty sedi presne.
Renderuji nebe jako prvni, mam vypnuty ztest a zapis do zbufferu. V deferred shaderu zapisuji na hloubku "nekonecno". Kdyz nebe kreslim jako objekt (proste kupoli) se zapisy hloubek, tak je vse ok (jenomze pak mam zakryty zbytek sceny Smile)
Predpokladam nejakou blbou chybu, ale proste ji nevidim.
Pozn.: na clipping pres rovinu mam upravenou projekcni matici, obliuqe frustrum culling.
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Vilem Otte



Založen: 18. 09. 2007
Příspěvky: 462
Bydliště: Znojmo - Sedlesovice, Kravi Hora

PříspěvekZaslal: 14. prosinec 2011, 15:53:25    Předmět: Odpovědět s citátem

A co vykreslit normálně s hloubkou, ale nepřepisovat si hloubku již vykreslených modelů? Wink
_________________
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 14. prosinec 2011, 16:17:09    Předmět: Odpovědět s citátem

Pro představu jak to vypadá:



Ty "poklice" by měli ležet na sobě a ne aby mezi byl ten pruh
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 14. prosinec 2011, 18:51:53    Předmět: Odpovědět s citátem

Tak jsem (asi) našel chybu... resp. teď to funguje Smile

Na clipping používám Oblique Frustrum Culling (úprava projekční matice). Tím, jak jsem oblohu renderoval v "nekonečnu", tak se blbě uřízla.
Takže finální řešení: Oblique matici mít na objekty a ty clipovat, u nebe se na clipping vykašlat a pro oboje ho renderovat celé - sice se to trochu překrývá a nesedí to úplně na 100%, ale pokud to někdo neví a nehledá, chybu nevidí.
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Spytihněv



Založen: 05. 04. 2011
Příspěvky: 547
Bydliště: Praha

PříspěvekZaslal: 14. prosinec 2011, 19:17:14    Předmět: Odpovědět s citátem

Sice to nesouvisí, ale pro zajímavost širokoúhlý ořez jako součást zrcadla ve hře Assassin's Creed Revelations

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 15. prosinec 2011, 02:49:49    Předmět: Odpovědět s citátem

perry napsal:
Tak jsem (asi) našel chybu... resp. teď to funguje Smile

Na clipping používám Oblique Frustrum Culling (úprava projekční matice). Tím, jak jsem oblohu renderoval v "nekonečnu", tak se blbě uřízla.
Takže finální řešení: Oblique matici mít na objekty a ty clipovat, u nebe se na clipping vykašlat a pro oboje ho renderovat celé - sice se to trochu překrývá a nesedí to úplně na 100%, ale pokud to někdo neví a nehledá, chybu nevidí.


Oblohu je lepší renderovat přesně na zadní ořezávací rovině. Udělá se to tak, že se z vertex shaderu pošle pozice xyww. Oblohu je také lepší renderovat až na konec, jelikož ji obvykle stejně překrývají objekty v popředí.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 15. prosinec 2011, 11:21:52    Předmět: Odpovědět s citátem

Jj.. renderovat oblohu jako poslední jsem zkoušel... jenomže pak mi obloha překryla scénu (skydome mam malý a pohybuju s ním spolu s kamerou). Pravda, to s tim xyww jsem nezkoušel...zkusim to.. díky Smile
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 15. prosinec 2011, 17:59:27    Předmět: Odpovědět s citátem

glDepthRange je to, co potřebuješ
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 17. prosinec 2011, 01:42:15    Předmět: Odpovědět s citátem

perry napsal:
jenomže pak mi obloha překryla scénu

Pak to máš špatně.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 17. prosinec 2011, 10:46:22    Předmět: Odpovědět s citátem

To, co sem psal, to taky vyřeší, ne? A IMHO mnohem flexibilněji.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 17. prosinec 2011, 10:54:18    Předmět: Odpovědět s citátem

Ještě jsem se nedostal k tomu to otestovat Smile Ale flexibilnější mi přijde Markovo řešení, glDepthRange nemůžu pod DX najít
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 17. prosinec 2011, 14:54:07    Předmět: Odpovědět s citátem

perry napsal:
Ještě jsem se nedostal k tomu to otestovat Smile Ale flexibilnější mi přijde Markovo řešení, glDepthRange nemůžu pod DX najít


D3D10_VIEWPORT::MinDepth a MaxDepth.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 17. prosinec 2011, 17:12:59    Předmět: Odpovědět s citátem

Díky Smile Super... už to funguje i na vykreslení nakonec...
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna