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

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 8. únor 2011, 13:14:53 Předmět: opengl - nejmenší hodnota depth |
|
|
Jak ji udělat v gl 1.x, když mám pomocí glFrustum nastavenou near plane na 0 a far plane na 1? Stačí vykreslit velký čtyřúhelník s body, které mají z v nule? Mám zaručeno, že se to například neodřeže ořezávacími rovinami? Nebo je nějaký příkaz, který přepíše zbuffer konstantní a zároveň nejmenší (nejbližší) hodnotou v místě vykreslování primitiv? Díky. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
Ladis

Založen: 18. 09. 2007 Příspěvky: 1537 Bydliště: u Prahy
|
Zaslal: 8. únor 2011, 13:26:57 Předmět: |
|
|
Jestli ti jde o nevykreslení v daném místě následujících polygonů, tak jsou na ty asi lepší techniky (vím, že se používal třeba stencil buffer). Hrát si takhle na hranici ořezávání, tam asi není zaručené nic (např. v nižších přesnostech z-bufferu by ti mohl nezobrazit i něco větší kousek za ořezávací rovinou). _________________ Award-winning game developer |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 8. únor 2011, 13:43:47 Předmět: |
|
|
asi glClearDepth(0); a ked potom zavolas glClear() tak sa vycisti s nulami. standartne je to 1.
a ako ti dokaze fungovat glFrustrum s near nastavenou na 0. ved tam ti to zacne ist limitne k nekonecnu. _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
pcmaster

Založen: 28. 07. 2007 Příspěvky: 1827
|
Zaslal: 8. únor 2011, 13:49:30 Předmět: |
|
|
Near musi nutne byt nenulove kladne cislo, far tiez. Musi platit far > near > 0. Je to mimo ineho aj preto, lebo sa vyskytuje v citateli zlomku (vid prislusne rovnice pre perspektivne premietanie) a ako vieme, len Chuck Norris vie delit nulou.
http://www.opengl.org/resources/faq/technical/depthbuffer.htm
Najmensia hodnota v z-bufferi je 0 a reprezentuje near (a je jedno, ci je near 0.1 alebo 233). _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 8. únor 2011, 13:54:12 Předmět: |
|
|
Napsal jsem glFrustum, ale ve skutecnosti jsem mel na mysli glOrtho (to je tak, kdyz clovek zkousi premyslet po obede). _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
Marek

Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 8. únor 2011, 14:32:22 Předmět: |
|
|
Do glOrtho můžeš dát hloubku jakoukoliv, tam žádnej zlomek není.
Taky nemusíš volat glOrtho a můžeš použít rovnou glLoadIdentity. Pak ale levý dolní roh je (-1,-1) a pravý horní roh je (1,1). Hloubka je vpředu -1 a vzadu 1.
Hloubka -1 se převádí před rasterizací na 0 automaticky, proto:
- minimální glClearDepth může být 0
- minimální glDepthRange může být 0
- minimální gl_FragCoord.z je 0
- ale ve vertex shaderu v gl_Position.z je to -1 _________________ AMD Open Source Graphics Driver Developer |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 8. únor 2011, 14:57:57 Předmět: |
|
|
Takže glDepthRange(0, 0) je ten příkaz, který udělá to, co chci, jo? (Donutí vše vykreslovat v nejbližší vzdálenosti dokonce bez ohledu na souřadnici z.) Cool, díky. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
nou

Založen: 28. 07. 2007 Příspěvky: 1050
|
Zaslal: 8. únor 2011, 15:10:15 Předmět: |
|
|
co vlastne potrebujes. masku ze kde sa nieco vykreslilo a kde nie? _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
 |
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 8. únor 2011, 16:16:14 Předmět: |
|
|
Chtěl jsem emulovat stencil buffer bez stencil bufferu (absolutně jednoduchý, jen určit, kde nepůjde vykreslovat). Nebo by se tomu dalo říkat per-pixel scissor test. Podařilo se  _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
 |
|