Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
mafian89
Založen: 21. 10. 2012 Příspěvky: 51
|
Zaslal: 24. únor 2013, 21:24:41 Předmět: Cube mapping shadows - GLSL |
|
|
Zdravím, už delší dobu si lámu hlavu nad následujícím problémem. Mám naimplementovaný CMSM. Jenže jsem došel na docela zásadní problém. Všechno "funguje", jak má. Alespoň do té doby, než chci zobrazit (namapovat) pouze jednu stranu kostky (potřebuji skrz optimalizaci). Data v textuře jsou správná (viz obrázek), takže hádám, že bude problém někde v mapování. Ovšem nemám tušení, kde by to mohlo být. Nesetkal se někdo s podobným problémem?
EDIT: Podivné je, že pro -Z stranu to funguje, jinde ne :-/
shader pro mapování:
kód: |
vec4 position_light_space = v_light * vec4(vertex_fs,1.0);
vec4 abs_position = abs(position_light_space);
float fs_z = -max(abs_position.x, max(abs_position.y, abs_position.z));
vec4 depth_tmp = P_light * vec4(0.0, 0.0, fs_z, 1.0);
float depth = (depth_tmp.z / depth_tmp.w) * 0.5 + 0.5;
return texture(cube_shadow, vec4((position_light_space.xyz),depth-0.000055)); |
, kde vertex_fs je netrasformovaný vertex z VS.
obrázky:
Kompletní mapa (jen pro ilustraci)
a mapa, pro +x stranu:
Výsledkem mapování je (resp. není) nic - pro jednu stranu. Nemá někdo nápad, co by problém mohlo způsobovat? Díky za každou radu. |
|
Návrat nahoru |
|
|
mafian89
Založen: 21. 10. 2012 Příspěvky: 51
|
Zaslal: 4. březen 2013, 23:12:45 Předmět: |
|
|
Update. Chyba byla ve výpočtu hloubky. Nechal jsem OGL počítat hloubku pixelu po projekci - tady byl zakopaný pes. Vyřešil jsem to ručním výpočtem hloubky. |
|
Návrat nahoru |
|
|
|
|
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