Vignesh
Vignesh

Reputation: 10251

Transparent Texture With OpenGL-ES 2.0

I am trying to add a transparent texture on top a cube. Only the front face is not transparent. Other sides are transparent. What could be the problem?. Any help is appreciated.

EDIT : I found that the face which is drawn first is opaque.

3 face of the cube is drawn.

Opaque face.((This face's index is given first in GLdrawElements)) opaque

Transparent face. tranparent

Upvotes: 0

Views: 818

Answers (1)

Tobias Schlegel
Tobias Schlegel

Reputation: 3970

You most probably ran into a sorting problem. To display transparent geometries correctly the faces of the object have to be sorted from back to front.

Unfortunately there is no built-in support for that in opengl-es (or in any gfx-library in existance). The only possibility is to sort your polygons, recreate your object each frame and draw it with correctly ordered faces.

A workaround would be using additive transparency instead of normal transparency. Additive transparency is an order independent calculation. You have to remember to turn off z-buffer writes while drawing because otherwise some geometry may be ocluded.

Additive transparency is achieved by setting both blendfunc values to GL_ONE.

Upvotes: 2

Related Questions