Hi fellows
I'm writing a program that loads 3ds files. I want to add transparent in some 3ds.
My code to init the OpenGL is this
void InitializeGL()
{
glCullFace(GL_BACK);
glEnable(GL_CULL_FACE);
glEnable(GL_DEPTH_TEST);
glShadeModel(GL_SMOOTH);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glClearColor(0.0, 0.0, 0.0, 0.0);
glClearDepth(1.0f);
glDepthFunc(GL_LEQUAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glLightfv(GL_LIGHT1, GL_AMBIENT, fAmbientLight);
glLightfv(GL_LIGHT1, GL_DIFFUSE, fDiffuseLight);
glLightfv(GL_LIGHT1, GL_POSITION, fPositionLight);
glEnable(GL_LIGHT1);
glEnable(GL_LIGHTING);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
glColor4f(1.0, 1.0, 1.0, fAlphaFactor); //fAlphaFactor is 0.5
}
My code for draw the 3ds in screen is this:
/*Desenha na tela*/
void Object3DS::DrawObject3DS()
{
glPushMatrix();
glPushAttrib(GL_CURRENT_BIT|GL_ENABLE_BIT);
glEnable(GL_BLEND);
glDisable(GL_DEPTH_TEST);
if(m_bTranslate)
{
TranslationMatrix(&this->model.Objects[0].TranslationMatrix, fTransX, fTransY, fTransZ);
glMultMatrixf(&this->model.Objects[0].TranslationMatrix.theMatrix[0][0]);
fTransX = fTransY = fTransZ = 0.0f;
}
if(m_bRotate)
{
RotationMatrix(&this->model.Objects[0].RotationMatrix, fRotX, fRotY, fRotZ);
glMultMatrixf(&this->model.Objects[0].RotationMatrix.theMatrix[0][0]);
fRotX =fRotY = fRotZ = 0.0f;
}
glCallList(m_uiIDDisplayList);
glEnable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
glPopAttrib();
glPopMatrix();
}
//Below this is my function that creates a display list
void Object3DS::GenObjectDisplayList()
{
m_uiIDDisplayList = glGenLists(1);
glNewList(m_uiIDDisplayList, GL_COMPILE);
this->model.Draw(); //function that does the calcs to draw the 3ds file
glEndList();
}
My code works fine. When I add transparency in my 3ds models, some parts receives light. Look at the picture below:
Like you've seen in my code, the light source is in my InitializeGL, not in the object.
I just want that my object stay transparent without light.
If I moves the object in the place where are other object the transparency are being VERY strange. It seems the objects have a light.
Look at this picture:
I don't understand this thing too. Someone can explains how can I solve this?
[Edited by - LessBread on November 7, 2006 1:17:41 PM]