首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在OpenGL中设置透明背景色不起作用

在OpenGL中设置透明背景色不起作用
EN

Stack Overflow用户
提问于 2018-02-08 00:18:41
回答 1查看 3.3K关注 0票数 2

我尝试使用函数glClearColor()和glClear()将背景色设置为透明颜色。但是,传递给glClearColor()的alpha值并没有改变任何东西。

下面是我尝试运行的代码:

代码语言:javascript
运行
复制
 #include<GL/glut.h>

    void display()
    {
        glClear(GL_COLOR_BUFFER_BIT);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        gluOrtho2D(0.0,(float)glutGet(GLUT_WINDOW_WIDTH),0.0,(float)glutGet(GLUT_WINDOW_HEIGHT));

        glBegin(GL_LINES);
            glVertex2i(200,200);
            glVertex2i(300,305);
        glEnd();

        glFlush();
    }

    int main(int argc, char *argv[const])
    {
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_RGBA | GLUT_ALPHA);
        glutInitWindowSize(1100,620);
        glutInitWindowPosition((glutGet(GLUT_SCREEN_WIDTH)-1100)/2,(glutGet(GLUT_SCREEN_HEIGHT)-620)/2);
        glutCreateWindow("GLUT Programming");
        glClearColor(0.0f,0.0f,0.0f,0.5f);   // I have tried experimenting with this part, but, nothing happens
        glutDisplayFunc(display);
        glutMainLoop();
    }

我正在运行Fedora 26的机器上使用freeglut和freeglut开发,如果有帮助的话。

编辑:

结果我得到了:

结果我试图获得:

EN

Stack Overflow用户

发布于 2018-02-08 06:14:03

如果要启用混合,则必须启用混合(glEnable( GL_BLEND )),并且必须设置混合函数(glBlendFunc)。

此外,还必须设置颜色的alpha通道,用于绘制几何图形(glColor4f)。

以某种方式更改代码如下:

代码语言:javascript
运行
复制
glClearColor( 0.5f, 0.5f, 0.5f, 1.0f );              // background color
glClear(GL_COLOR_BUFFER_BIT);                        // clear background with background color

glEnable( GL_BLEND );
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); // = color * alpha + background * (1-alpha)
glColor4f( 1.0f, 0.0f, 0.0f, 0.1f );                 // color of the line, alpha channel 0.1 (very "transparent")
glLineWidth( 5.0 );

glBegin(GL_LINES);
.....
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48675484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档