Dans le cadre de création d'un moteur 3D, j'essaye d'activer la transparence d'un objet à l'aide des insctructions
Code :
- glEnable(GL_BLEND);
- glBlendFunc(GL_SRC_ALPHA,GL_ONE);
|
Le probléme c'est que les faces cachés de l'objets ne sont pas dessinées ce qui est très génant lors du rendu de l'objet transparent.
J'ai pu résoudre ce probléme en désactivant le test du z-buffer le temps du rendu de l'objet grace à l'instruction
Code :
- glDepthMask(GL_FALSE);
|
Bien sure je désactive le blending et réactive le DephMask une fois mon objet affiché.
Un autre probléme c'est posé, les objets qui passent derrière mon objet transparent sont rendu comme si ils étaient devant (à cause du z-buffer désactivé pour cet objet).
Ca a pu être détourné en dessinant mon objet transparant en tout dernier par contre le probléme persiste lorsque qu'un objet transparant passe par derrière un autre objet trasnparant (on ne sait pas lequel est devant et lequel est derrière?)
Y'a t'il une manière de détourner celà d'une manière ou d'une autre par exemple grace à la procédure glDepthFunc() ou à l'aide d'instructions diverses?
Merci de votre aide