首页 > 其他 > 详细

OpenGL 混合功能

时间:2018-11-19 17:01:54      阅读:31      评论:0      收藏:0      [点我收藏+]

标签:swa   scene   open   scrip   wap   渲染   flash   param   bsp   

一、概念:简言之,即在颜色缓存区和深度缓存区中,新旧颜色的覆盖和替换问题;已经存在于缓存区的为目标颜色,即将进入缓存区的为源颜色;

二、应用场景:在不透明的图形前绘制一个透明的图形;

三、主要代码实现

//核心代码

void RenderScene()
{
    //清除缓存区
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT);
    
    //设置四个固定矩形颜色
    GLfloat vRed[] = {1.0f, 0.0f, 0.0f, 0.5f};
    GLfloat vGreen[] = {0.0f, 1.0f, 0.0f, 1.0f};
    GLfloat vBlue[] = {0.0f, 0.0f, 1.0f, 1.0f};
    GLfloat vBlack[] = {0.0f, 0.0f, 0.0f, 1.0f};
    
    //绘制四个固定矩形
    //GLT_SHADER_IDENTITY:单元着色器
    shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed);
    redBatch.Draw();
    shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vGreen);
    greenBatch.Draw();
    shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vBlue);
    blueBatch.Draw();
    shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vBlack);
    blackBatch.Draw();
    
    //移动矩形设置混合功能
    //开启混合功能
    glEnable(GL_BLEND);
    //设置混合因子
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    //使用固定管线着色器
    shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed);
    //绘制
    squareBatch.Draw();
    //关闭混合功能
    glDisable(GL_BLEND);
    
    //后台渲染完成交给前台
    glutSwapBuffers();
}

四、效果

 

OpenGL 混合功能

标签:swa   scene   open   scrip   wap   渲染   flash   param   bsp   

原文:https://www.cnblogs.com/lybSkill/p/9983755.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号