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

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 10. prosinec 2013, 20:53:36 Předmět: Depth buffer problém (?) |
|
|
Zase já V poslední době jsem se nějak rozjel s příspěvky... což asi bude dokončováním projektu a laděním bugů.
O co se tedy jedná tentokrát. Mám problém se z-bufferem (nebo si to alespoň myslím).
Na obrázku kreslím dvě roviny. Spodní je Z= 0 , ta šedivá nad ní Z = 0.5. Celá ta zeleně zobrazená síť by měla být šedě vybarvená, ale není. Navíc se to celé mění s pohybem kamery (nejenom na zoom, ale i na left / right apod.)
Zásadní problém je, že na kompu a na iPhone 4 se to renderuje korektně. Problém mám opět s "tadá"... 5S
ZBuffer čistím pře každým renderem na 0.0
Už jsem to řešil i s mickym, poradil mi změnit zNear a zFar (což jsem měl hloupě na 0.3 - 600). Teď mám 2 - 170, ale nějak se problém příliš nezměnil. Navíc předpokládám, že 5S asi nebude mít nižší rozlišení bufferů než 4ka, takže třeba problém s 16bit hloubkou by se musel projevit na obou zařízeních.
Absolutně netuším kde hledat, ani moc jak hledat.
Díky _________________ Perry.cz |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 11. prosinec 2013, 11:44:57 Předmět: |
|
|
Nějak mě to celý mate :-). DepthBuffer se většinou čistí 1.0 (nejdál) a porovnává se GL_LESS nebo GL_LEQUAL. Ty to máš nějak obráceně. Vzhledem k nelinearitě hodnot v ZBufferu to možná dělá problémy. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 11. prosinec 2013, 13:55:37 Předmět: |
|
|
Já to mám obráceně, protože mám otočený souřadný systém po vzoru DirectX Pak to musím čistit na 0 a mít právě GL_GREATER _________________ Perry.cz |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 11. prosinec 2013, 14:32:56 Předmět: |
|
|
A důvod? :) _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 11. prosinec 2013, 14:56:21 Předmět: |
|
|
a) Lenost to přepisovat
b) Jsem na ten systém zvyklý a přijde mi logičtější
Ale s problémem podle mě nesouvisí, ten rozdíl mezi těmi zařízeními je obrovský. _________________ Perry.cz |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 11. prosinec 2013, 15:36:18 Předmět: |
|
|
A to zko teda vypočteš v shaderu tak, aby byla největší přesnost u kamery? Radši se ptám, protože mě nic jinýho nenapadá.
EDIT: a ještě jednu věc nechápu: píšeš, že jedna rovina má Zko 0 a druhá 0.5. Jaktože nemá každý pixel jinou hodnotu? Nějak to víc popiš. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 11. prosinec 2013, 19:20:53 Předmět: |
|
|
Mám dvě rovnoběžné roviny. SOuřadný systém, kde Z je UP. První rovina má celá Z = 0, druhá má celá Z = 0.5 (X a Y jsou pak souřadnice vrcholů té roviny od [0,0] do [100,100] nebo tak něco)
Každý vrchol transformuju maticí: World * (View * Projection). View a Projection jsou v LH systému _________________ Perry.cz |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 12. prosinec 2013, 12:44:20 Předmět: |
|
|
Aha, tak já měl teda na myslil Depth-ka, ne Zet-ka :-). No, stejně ti neporadím, asi by to chtělo víc informací; kód, shader... . _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 12. prosinec 2013, 13:23:08 Předmět: |
|
|
Kód je moc rozsáhlý na to abych to sem postoval
V shaderech nic moc není.. ve VS do gl_Position nacpu position přenásobenou těmi maticemi, jak jsem psal výše. V PS akorát čtu texturu, popř. u ní upravuju alfu pokud mám povolěný blend.
Co se týče obsahu depth bufferu, tak jsem na to koukal a vypadá to, že se tam buď nic nezapisuje a nebo jsou ty hodnoty moc podobné, takže je na vizualizaci nevidím.
Jinak pokud by to bylo nedostatečnou přesnotí depth bufferu, tak co s tím. Ptozože změnit zNear a zFar nemůžu. Tím jak mam izometrický pohled, tak jsem víceméně na těsno. Zmenšení = začne mizet geometrie. Ale u 24bit bufferu bych čekal rozsah +- 0 - 200, že bude OK. _________________ Perry.cz |
|
Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 12. prosinec 2013, 17:50:07 Předmět: |
|
|
Tak už jsem to asi opravil. Jsem neskutečný debil Jsem měl ve VS u float specifikovaný precision na mediump místo highp.. to bych si jednu fláknul
Díky semovi za různé tipy _________________ Perry.cz |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 12. prosinec 2013, 18:03:58 Předmět: |
|
|
...za hrůzné tipy :-) Tak hlavně že už to nebudu muset číst :-D. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
perry

Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 12. prosinec 2013, 18:12:00 Předmět: |
|
|
Proč za hrůzné Tipy byly v pohodě s ohledem na to, co jsem poskytnul (Pravda, až na ten zmatek s depth vs Z ) _________________ Perry.cz |
|
Návrat nahoru |
|
 |
|