QT5 OpenGL(七, 透明度设置)

来源:互联网 发布:中云数据科技有限公司 编辑:程序博客网 时间:2024/04/29 23:12

    • 概要
    • 效果图
      • 正常立体图
      • 透明度为05的
      • 透明度为01的
      • 图形设置为绿色时
    • 部分代码的更改

概要

我们在做与UI或者图形,图片有关的项目时,总会遇到透明度的设置。 opengl也有自己的透明度设置。 值得一提得是,普通的平面图形透明度设置是改变单张平面的显示效果, 而立体图形的呢,这就会使多个平面的图形出现。


效果图


正常立体图

这里写图片描述


透明度为0.5的

这里写图片描述


透明度为0.1的

这里写图片描述


图形设置为绿色时

这里写图片描述


部分代码的更改

void OpenglWidget::initializeGL(){    loadGLTextures();    glEnable( GL_TEXTURE_2D );    glShadeModel( GL_SMOOTH );    glClearColor( 0.0, 0.0, 0.0, 0.5 );    glClearDepth( 1.0 );    glEnable( GL_DEPTH_TEST );    glDepthFunc( GL_LEQUAL );    glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );    glLightfv( GL_LIGHT1, GL_AMBIENT, lightAmbient );    glLightfv( GL_LIGHT1, GL_DIFFUSE, lightDiffuse );    glLightfv( GL_LIGHT1, GL_POSITION, lightPosition );    glEnable( GL_LIGHT1 );    glColor4f(1, 1, 1, 0.5);    glBlendFunc( GL_SRC_ALPHA, GL_ONE );}

其实最主要的就是加了

    glColor4f(1, 1, 1, 0.5);    glBlendFunc( GL_SRC_ALPHA, GL_ONE );

这两行的代码。

WINGDIAPI void APIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);

这个函数前三个参数表示色彩值, 分别为red green blue, 而最后一个值 为alpha通道。

前面色彩值的设置决定了立体图形整体的色彩基调。 而最后一个alpha通道 设置区间为0 - 1 , 0表示完全透明,而1表示完全不透明。

0 0
原创粉丝点击