0
我试图在2D地图上绘制一个2d字符精灵,但是当我绘制角色时,他身后有奇怪的东西。这不在精灵之中,所以我认为它是混合。在OpenGL中正确混合的问题
这是我的OpenGL是如何设置:
void InitGL(int Width, int Height) // We call this right after our OpenGL window is created.
{
glViewport(0, 0, Width, Height);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // This Will Clear The Background Color To Black
glClearDepth(1.0); // Enables Clearing Of The Depth Buffer
glDepthFunc(GL_LESS); // The Type Of Depth Test To Do
glDisable(GL_DEPTH_TEST); // Enables Depth Testing
//glShadeModel(GL_SMOOTH); // Enables Smooth Color Shading
glEnable(GL_TEXTURE_2D); // Enable Texture Mapping (NEW)
glShadeModel(GL_FLAT);
glMatrixMode(GL_PROJECTION);
glEnable(GL_BLEND);
glBlendFunc(GL_ONE , GL_ONE_MINUS_SRC_ALPHA);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glAlphaFunc(GL_GREATER, 0.5f);
glMatrixMode(GL_PROJECTION);//configuring projection matrix now
glLoadIdentity();//reset matrix
glOrtho(0, Width, 0, Height, 0.0f, 100.0f);//set a 2d projection matrix
}
我应该如何设置这正常工作(即图纸没有他身后奇怪的东西精灵
这是我在说什么约:http://i.stack.imgur.com/cmotJ.png
PS:我需要能够把对方的顶部透明/半透明的和有什么在他们身后可见太
你通常不应该“设置”OpenGL。您在InitGL中设置的所有状态都应该设置在显示功能中所需的基础上。在OpenGL中只有很少的初始化,即纹理和缓冲区对象。一旦你围绕这个事实思考,你可以在任何时候启用/禁用混合,并且应该根据当前阶段渲染场景的需要来做到这一点,变得更容易。 – datenwolf 2011-04-12 07:45:47