我正在尝试在2d瓷砖地图上绘制一个二维角色精灵,但是当我画出角色时,他背后有一些奇怪的东西。这不是精灵,所以我认为它是混合。
这就是我的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:我需要能够将透明/半透明图像放在彼此之上,并且在它们后面也可以看到它们
答案 0 :(得分:3)
你的精灵有预乘alpha吗?您的glBlendFunc
设置有点不寻常,如果您没有预乘alpha,那肯定会导致问题。