.[ ČeskéHry.cz ].
opengl - nejmenší hodnota depth

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
frca



Založen: 28. 07. 2007
Příspěvky: 1561

PříspěvekZaslal: 8. únor 2011, 13:14:53    Předmět: opengl - nejmenší hodnota depth Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Ladis



Založen: 18. 09. 2007
Příspěvky: 1537
Bydliště: u Prahy

PříspěvekZaslal: 8. únor 2011, 13:26:57    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 8. únor 2011, 13:43:47    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1827

PříspěvekZaslal: 8. únor 2011, 13:49:30    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1561

PříspěvekZaslal: 8. únor 2011, 13:54:12    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 8. únor 2011, 14:32:22    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1561

PříspěvekZaslal: 8. únor 2011, 14:57:57    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
nou



Založen: 28. 07. 2007
Příspěvky: 1050

PříspěvekZaslal: 8. únor 2011, 15:10:15    Předmět: Odpovědět s citátem

co vlastne potrebujes. masku ze kde sa nieco vykreslilo a kde nie?
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1561

PříspěvekZaslal: 8. únor 2011, 16:16:14    Předmět: Odpovědět s citátem

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 Smile
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
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