[ zaraza @ 03.02.2005. 19:16 ] @
| evo vec neko vreme pokusavam da uradim nesto sto sam ranije radio, ali ocigledno da nesto propustam. Poenta je u 2 objekta od kojih je jedan u drugiom, a ovaj spoljni, se providi...
evo kako sam radio....
Code:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0f,0.0f,-7.0f);
//pocinje prvi
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
glEnable(GL_BLEND);
glBindTexture(GL_TEXTURE_2D,texture[0]);
glBegin(GL_QUADS);
....
glEnd();
//drugi
glBegin(GL_QUADS);
....
glEnd();
e sad tu nastaje problem, ako kazem disable blend, dobijem jako cudan efekat, drugi objekat je prostorno U prvom, ali ne i vizuelno...dakle izgleda kao da je ispred...iako je u stvari unutra :) ako kazem disable posle oba isctana objekta onda je ok, medjutim providi se i ovaj drugi, sto ne zelim...
|
[ bkaradzic @ 03.02.2005. 19:33 ] @
Probaj ovako:
Code:
glEnable(GL_CULL_FACE);
glCullFace(GL_FRONT);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
glEnable(GL_BLEND);
renderuj model 2 (spoljni)
glCullFace(GL_BACK);
glDisable(GL_BLEND);
renderuj model 1 (unutraĆĄnji)
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
glEnable(GL_BLEND);
renderuj model 2 (spoljni) ponovo
Branimir
[ biotech @ 03.02.2005. 21:55 ] @
tu postoji redosled kojim se trebaju renderovati poligoni-znaci providni uvek ide poslednji.
koliko ja vidim iz koda ti radis suprotno :)
[ yooyo @ 04.02.2005. 11:13 ] @
Transparentni poligoni se takodje upisuju u zbuffer. Pravilan redosled bi bio:
1. iskljuci blending
2. renderuj unutrasnji
3. ukljuci blending i postavi blend funkciju
4. renderuj spoljasnji
Opciono mozes kod renderiga spoljasnjeg objekta iskljuciti upis u zbuffer (glDepthMask(GL_FALSE)) i onda mozes renderovati vise "spoljasnjih" objekata.
yooyo
[ tosa @ 04.02.2005. 11:39 ] @
Ukoliko je spoljni objekat providan onda je jedini ispravan nacin onaj
koji je naveo branimir, u suprotnom nece se videti zadnji deo spoljnog
objekta kroz prednji deo spoljnog objekta...
[ zaraza @ 05.02.2005. 00:00 ] @
uf, hvala vam na odgvorima, moracu da probam, ali malko kasnije...
ako opet budem imao problema, a ja se opet javljam :)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.