繁体   English   中英

在openGL中正确混合的问题

[英]problem blending properly in openGL

我试图在2D瓦片地图上绘制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:我需要能够将透明/半透明的图像彼此叠加,并使它们背后的内容也可见

您的精灵是否已预乘alpha? 您的glBlendFunc设置有点不寻常,如果您没有预乘alpha,则肯定会引起问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM