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