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: 21. říjen 2012, 19:40:49 Předmět: OpenGL 3.3 & GLSL 1.50 - CMSM - zvláštní self shadow |
|
|
Zdravím,
upravil jsem název topicu, aby odpovídal aktuálnímu problému. Ten je nyní takový, že mám implementovaný cubemap shadowmapping. Vše funguje akorát mám problém se selfshadowingem (viz obrázek) - aktuálně nepočítám osvětlení (ale to by vadit nemělo)
Cubemapa z gDebuggeru:
vertex shader:
kód: |
out vec4 WorldSpacePosition;
out vec3 WorldSpace_lightPosition;
...
gl_Position = p*mv*vec4(vertex,1.0);
WorldSpace_lightPosition = (m*vec4(lightPosition,1)).xyz;
...
WorldSpacePosition = m*vec4(vertex, 1.0); |
fragment shader:
kód: |
//Cube Shadow mapa
layout (location=1) uniform samplerCubeShadow cube_shadow;
....
vec4 shadow = vec4(1.0,1.0,1.0,1.0);
vec3 lightDir = WorldSpacePosition.xyz - WorldSpace_lightPosition.xyz;
shadow *= texture(cube_shadow, vec4((lightDir.xyz),1.0));
...
|
EDIT: Když "nemapuji" shadow texturu na objekty, tak to vypadá následovně, ovšem ten selfshadow bych chtěl:
Naposledy upravil mafian89 dne 5. listopad 2012, 18:39:00, celkově upraveno 5 krát |
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 21. říjen 2012, 19:51:40 Předmět: |
|
|
pouzil si glPolygonOffset(1, 1) ? _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
|
mafian89
Založen: 21. 10. 2012 Příspěvky: 51
|
Zaslal: 21. říjen 2012, 20:03:12 Předmět: |
|
|
No někde v dokumentech (tuším od NVidie) jsem viděl doporučeno glPolygonOffset(1.1, 4.0);. Nicméně to mi nepomohlo. |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 21. říjen 2012, 21:04:36 Předmět: |
|
|
Co takhle ten offset aplikovat v shaderu namísto funkce glPolygonOffset, jejíž chování není úplně zřejmé na první pohled. Jsi první, koho vidím, že to používá při shadow mappingu. (já bych zas na shadow mapy nepoužíval depth textury, ale použil bych float textury) _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
mafian89
Založen: 21. 10. 2012 Příspěvky: 51
|
Zaslal: 21. říjen 2012, 21:41:40 Předmět: |
|
|
No já polygon offset nepoužívám, jsem to jen zkoušel. Jo v shaderu jsem to zkoušel, ale nějak jsem nepochodil. Zkusím ale ještě, |
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 21. říjen 2012, 22:57:18 Předmět: |
|
|
no a nastavis ten polygon offset aj naspet na [0, 0]? pretoze ma byt nastaveny len ak rederujes do depth textury. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
|
mafian89
Založen: 21. 10. 2012 Příspěvky: 51
|
Zaslal: 21. říjen 2012, 23:57:55 Předmět: |
|
|
nou: Ano, to jsem zkoušel. Bohužel bez výsledku. |
|
Návrat nahoru |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 22. říjen 2012, 02:11:08 Předmět: |
|
|
No já si myslím, že ten depth offset máš prostě moc malej. Při dostatečně velkým offsetu to akné prostě musí zmizet (zároveň to ale bude posunovat stín). Pokud nemizí, tak to máš úplně celé špatně implementované. _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
|
mafian89
Založen: 21. 10. 2012 Příspěvky: 51
|
Zaslal: 22. říjen 2012, 11:37:23 Předmět: |
|
|
...
Naposledy upravil mafian89 dne 5. listopad 2012, 14:58:05, celkově upraveno 2 krát |
|
Návrat nahoru |
|
|
pcmaster
Založen: 28. 07. 2007 Příspěvky: 1824
|
Zaslal: 26. říjen 2012, 11:28:49 Předmět: |
|
|
Ja tam to acne furt vidim, alebo je to proste nejaky strasne hnusny mesh? _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
|
mafian89
Založen: 21. 10. 2012 Příspěvky: 51
|
Zaslal: 26. říjen 2012, 18:47:25 Předmět: |
|
|
No bohužel tam trochu ještě je. A mesh je taky nic moc (cca 1500 vertexů). Bohužel teďka nemám moc času, až trochu bude, tak na to kouknu. |
|
Návrat nahoru |
|
|
Vilem Otte
Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 27. říjen 2012, 02:52:45 Předmět: |
|
|
Ono je také viditelné, protože model nestínuješ - e.g. nepočítáš osvětlení. Kdybys to vynásobil blbým kosinem úhlu mezi normálou a vektorem světla k bodu (Lambert's cosine law) - tak získáš o dost lepší obrázek, takto samozřejmě acne půjde vidět (nicméně máš nějakých 8 bpp přesnost v shadow mapě afaik - nebo dost špatně nastavené near/far roviny, při 32 bpp fp shadow mapě by acne nemělo jít téměř vidět). _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
|
mafian89
Založen: 21. 10. 2012 Příspěvky: 51
|
Zaslal: 27. říjen 2012, 14:18:54 Předmět: |
|
|
Vilem Otte: Stínování resp. osvětlení implementované mám, ale z jistých důvodů jsem ho vypl. Ohledně near a far ořezových rovin. Tak ty budou docela blbě asi (near = 1.0, far = 1000). Bohužel mě teďka vytěžuje škola, ale po víkendu se k tomu dostanu. Momentálně to předělávám po kouscích na všesměrová světla. |
|
Návrat nahoru |
|
|
mafian89
Založen: 21. 10. 2012 Příspěvky: 51
|
Zaslal: 5. listopad 2012, 14:58:30 Předmět: |
|
|
Upraven název topicu a aktuální problém |
|
Návrat nahoru |
|
|
|