Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
pospa
Založen: 22. 05. 2010 Příspěvky: 44
|
Zaslal: 22. květen 2010, 22:17:25 Předmět: Velky teren a stiny |
|
|
Zdar lidi.. narazil jsem na problem, ktery se mi nedari vyresit a uz nevim co kde hledat a co zkouset. Jde mi o to, ze mam vygenerovany teren na zaklade height mapy a na nem objekty. Je to jakoby strategie, psane v XNA. Rad bych mel nekde nad terenem jeden zdroj svetla (slunce), ktery by zapricinil vrhani stinu vsech objektu. Jedine co trochu chapu je shadow mapping. Nejradsi bych mel stiny ostre, ale to bych asi i klidne ozelel. Nejvetsi problem ale vznika u objektu samotnych, ktere vrhaji stiny sami na sebe - napr. striska pred vchodem do domu nebo zabradli na terase apod. Stiny se proste spatne pocitaji a neodpovidaji realite. Problem je asi v tom, ze svetlo je moc daleko od terenu a pak ty rozdily ve vzdalenostech jednotlivych pixelu jsou velmi male. Ale jak to vyresit? Dikes.. |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 22. květen 2010, 23:34:33 Předmět: |
|
|
Těch důvodů pro špatnou kvalitu stínů tvořených pomocí shadow mappingu může být více. Ukaž screenshoty a naznač, jak přesně ty stíny počítáš. |
|
Návrat nahoru |
|
 |
pospa
Založen: 22. 05. 2010 Příspěvky: 44
|
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 23. květen 2010, 16:44:01 Předmět: |
|
|
No to je docela zvláštní postup. Spíš se to dělává tak, že se nejprve vyrenderuje shadow mapa a pak se už renderuje normálně scéna, přičemž se v shaderech zároveň vyhodnocuje zastínění pomocí stínové mapy.
Ta první chyba je nejspíše způsobena nevhodným nastavením parametrů depthBias a/nebo MaxDepth - zkus sis s nimi pohrát (hlavně s tím biasem - typicky změna z 0.001 na 0.002 znamená velký vizuální rozdíl).
Ta druhá chyba může mít více příčin. Zkus zvýšit rozlišení stínové mapy, jestli se to zlepší. Pokud ano, tak to bude chtít pravděpodobně aplikovat nějakou parametrizaci stínové mapy. Jinými slovy - pokud děláš teď stínovou mapu tak, aby zabírala celý terén, tak to musíš změnit tak, aby zabírala jen tu část terénu, která je relevantní pro aktuální pohled kamery. To není moc jednoduché a řeší to třeba Perspective Shadow Maps.
Ale ten odkazovaný kód vypadá dost divně - určitě zkus najít ještě nějaký jiný příklady - tenhle kód vypadá tak, že to někdo slepil z tutoriálů a pořádně nevěděl, co dělá... |
|
Návrat nahoru |
|
 |
pospa
Založen: 22. 05. 2010 Příspěvky: 44
|
Zaslal: 23. květen 2010, 18:00:24 Předmět: |
|
|
Diky moc, ze se mi venujes.. souhlasim, ze to nekdo zpatlal tak jak rikas, pak to jeste patlam ja a pak to takhle vypada ;-/ Prave posledni obdobi vyzkumu jsem venoval tomu, ze jsem si hral s depthBias a maxDepth, ale nic kloudnyho jsem nevymyslel. Udelal jsem si na to klavesy, ktery mi menej hodnoty. Ono se to pak jeste taky lisi, kdyz treba dam svetlo do jednoho rohu v terenu a jeden objekt blizko a druhej daleko.
Co se tyce rozliseni stinovy mapy, tak to opravdu pomaha - na tech screenech jsem dal ukazku v nejnizsim rozliseni, aby to bylo patrny. |
|
Návrat nahoru |
|
 |
pospa
Založen: 22. 05. 2010 Příspěvky: 44
|
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 26. květen 2010, 11:29:43 Předmět: |
|
|
Bohužel teď nemám čas se tomu věnovat, ale mají pravdu: Your aim should be to keep the view frustum of your light source as small as possible in order to get the best quality. |
|
Návrat nahoru |
|
 |
pospa
Založen: 22. 05. 2010 Příspěvky: 44
|
Zaslal: 26. květen 2010, 12:11:21 Předmět: |
|
|
Jasny, neva. Zkusim se tim nejak prokousat, uz to resim pres mesic, tak nejakej cas navic me uz nezabije. Aspon ze jsem na spravny stope. Dik |
|
Návrat nahoru |
|
 |
Manox

Založen: 30. 07. 2007 Příspěvky: 140 Bydliště: Brno
|
Zaslal: 26. květen 2010, 12:33:45 Předmět: |
|
|
Ahoj, stáhl jsem si ty zdrojáky a chvíli si hrál, nicméně taky na to nemám moc času. Ten kód je hodně nepřehledný a pak taky se mi zdá hodně amatérský a spousta věcí je tam řešena špatně (třeba textury pro modely přes globální proměnné,...). Zkoušel jsi nějaký tutoriál z XNA Creators ? Těm bych důvěřoval mnohem více a myslím, že tam nějaké stíny mají. Používám taky shadow mapy, ale mám to celé udělané jinak, takže nemůžu přímo poradit jak tohle upravit. Ale nezdá se mi na první pohled, že by byla správně vyplněná shadow mapa. A pak nevím, kde je zdroj světla, ale očividně se pohybuje při pohybu kamery. Pokud je svázán s kamerou, asi ani žádné stíny neuvidíš. |
|
Návrat nahoru |
|
 |
pospa
Založen: 22. 05. 2010 Příspěvky: 44
|
Zaslal: 26. květen 2010, 14:52:11 Předmět: |
|
|
Pravda, amatersky to asi je.. To ja moc neresim, vezmu si z toho jen to dobry, pokud sam dokazu poznat co to je
Hledal jsem ruzne po netu a zrovna na CreatorsXNA jsem nic podobnyho nenasel (coz neznamena, ze to tam neni..) |
|
Návrat nahoru |
|
 |
Augi

Založen: 28. 07. 2007 Příspěvky: 782 Bydliště: Čerčany
|
Zaslal: 26. květen 2010, 15:10:26 Předmět: |
|
|
Btw. pohyb světla spolu s kamerou není nutně špatně.
Pokud se simuluje slunce pomocí ortogonálního promítání při vytváření stínové mapy (což je IMHO tazetelův případ, protože se to hodí na stínování rozlehlého terénu), tak nastavení fixní velikosti ortogonálního light-frustumu a jeho pohyb spolu s kamerou (+ natáčení) může vést ke kýženému výsledku (protože light frustum obsahuje jen relevantní část terénu). |
|
Návrat nahoru |
|
 |
Manox

Založen: 30. 07. 2007 Příspěvky: 140 Bydliště: Brno
|
Zaslal: 26. květen 2010, 15:27:44 Předmět: |
|
|
Na to jsem nepomyslel, jak mám paraboloidní shadow mapy, tak se tam tohle nestává. |
|
Návrat nahoru |
|
 |
pospa
Založen: 22. 05. 2010 Příspěvky: 44
|
Zaslal: 27. květen 2010, 20:32:59 Předmět: |
|
|
A ty slouzi k cemu? Resp. v cem jsou lepsi nez obycejna shadow mapa? |
|
Návrat nahoru |
|
 |
pospa
Založen: 22. 05. 2010 Příspěvky: 44
|
Zaslal: 27. květen 2010, 23:09:28 Předmět: |
|
|
Tak jeste tak lezu po netu a koukam, ze zajimavy by asi byly stencil shadows.. chapu jak to funguje, ale uz vubec ne, jak to napsat. Neznate nejakej tutorial nebo example? Teorie je hafo, ale potreboval bych nejlip nejakej priklad ;-( |
|
Návrat nahoru |
|
 |
Manox

Založen: 30. 07. 2007 Příspěvky: 140 Bydliště: Brno
|
Zaslal: 28. květen 2010, 06:19:15 Předmět: |
|
|
Ona to pořád je shadow mapa, ale mám bodový všesměrový zdroj světla a proto potrřebuju shadow mapu, která pokryje celé okolí světla. U slunce nad terénem je to zbytečné, protože nepotřebuješ pokrýt vše kolem světla.
Do stencil stínů bych se na Tvém místě nepouštěl, není to úplně vhodné pro velkeé terény a pak mnohem spíše doladíš ty shadowmapy než udělaáš stencily. |
|
Návrat nahoru |
|
 |
|