您的位置:首页 > 编程语言 > Qt开发

QT5 OpenGL(七, 透明度设置)

2016-04-08 18:14 543 查看
概要

效果图
正常立体图

透明度为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表示完全不透明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: