位置: 编程技术 - 正文

OpenGL学习日记-2014.1.21--混合(opengl怎么学)

编辑:rootadmin
混合可以实现很多效果,笔记单纯的记录混合的原理,和混合公式,混合函数的使用。最后分析书中的两个混合代码例子,两个例子结合起来说明了绘图顺序对混合最终效果的影响,及如何去规避这样的问题。在颜色中之前一直忽略的第四个分量alpha终于派上用场。在启用混合情况下,alpha常常用于把被处理片断的颜色&#;与已经存在帧缓冲区的像素颜色&#;进行组合。混合操作是在场景进行了光栅化并转换为像素之后,但是在最终的像素绘制到帧缓冲区之前进行。一、源(新片断)因子和目标(旧片断)因子 在混合过程中,新旧片断的组合分两步进行。首先,需要如何计算源和目标混合因子(混合因子)。这两个因子都是RGBA四元组,分别与源颜色和目标颜色的RGBA相乘。然后两个RGBA四元组对应成分再进行组合(混合公式)。最终的RGBA颜色是通过下面的公式得出: (Rs*Sr &#;Rd*Dr, Gs*Sg &#; Gd*Dg, Bs*Sb &#; Bd*Db, As*Sa &#; Ad*Da ) 源颜色(Rs, Bs, Gs, As)、目标颜色(Rd, Gd, Bd, Ad)、源混合因子(Sr, Sg, Sb, Sa)、目标混合因子(Dr, Dg, Db, Da)常量RGB混合因子alpha混合因子GL_ZERO(0,0,0)0GL_ONE(1,1,1)1GL_SRC_COLOR(Rs,Gs,Bs)AsGL_ONE_MINUS_SRC_COLOR(1,1,1)-(Rs,Gs,Bs)1-AsGL_DST_COLOR(Rd,Gd,Bd)AdGL_ONE_MINUS_DST_COLOR(1,1,1)-(Rd,Gd,Bd)1-AdGL_SRC_ALPHA(As,As,As)AsGL_ONE_MINUS_SRC_ALPHA(1,1,1)-(As,As,As)1-AsGL_DST_ALPHA(Ad,Ad,AD)AdGL_ONE_MINUS_DST_ALPHA(1,1,1)-(Ad,Ad,Ad)1-AdGL_CONSTANT_COLOR(Rc,Gc,Bc)AcGL_ONE_MINUS_CONSTANT_COLOR(1,1,1)-(Rc,Gc,Bc)1-AcGL_CONSTANT_ALPHA(Ac,Ac,Ac)AcGL_ONE_MINUS_CONSTANT_ALPHA(1,1,1)-(Ac,Ac,Ac)AcGL_SRC_ALPHA_SATURATE(f,f,f)=min(As,1-Ad)1要指定混合因子可能需要用到:1、glBlendFunc( GLenum srcfactor, GLenum destfactor ),指定源和目标混合因子,RGB和ALPHA使用同一因子。2、glBlendFuncSeparate(GLenum srcRGB, GLenum destRGB, GLenum srcAlpha, GLenum destAlpha),如参数所示,分开指定RGB混合因子,和Alpha混合因子,允许使用不一样的&#;。二、设置混合方程式 在指定了混合方程式之后,还需要确定,源混合因子和目标混合因子如何结合(这就是混合方程式)。使用函数 void glBlendEquation( GLenum mode ) 或 void glBlendEquationSeparate( GLenum modeRGB, GLenum modeAlpha) 进行设定,与混合因子的设置类&#;,两个*Separate()函数允许Alpha采取与RGB不同的混合方程式。混合模式参数数学操作GL_FUNC_ADD(默认)Cs*S&#;Cd*DGL_FUNC_SUBTRACTCs*S-Cd*DGL_FUNC_REVERSE_SUBTRACTCd*D-Cs*SGL_MINmin(Cs*S,Cd*D)GL_MAXmax(Cs*S,Cd*D)GL_LOGIC_OPCs op Cd最后当然还有的是要启用混合:glEnable(GL_BLEND)三、例子分析例子1:绘制了练个不同颜色的三角形,通过输入个改变练个三角形的绘图顺序来了解图元的绘制顺序对于混合的最终效果的影响。程序按T来切换绘制顺序:首先绘制的是黄色的三角形,然后绘制通明度比较高的蓝色三角形,可以看出即使蓝色三角形通明度低,但在最终的颜色影响上还是比目标颜色黄色来的大。在切换了绘制顺序之后,最终颜色基本是黄色了。这个例子只是说明了绘制顺序会极大影响最终的混合效果。其实不难理解的是,在本例子中因为我们的目标和源混合因子在切换了绘制顺序时并没有随之调换。根据回合因子的设置,可以得到源混合因子总是0.,目标混合因子总是0..所以后绘制的图元总是对最终的颜色产生较大的影响。例子2:如何在解决3d场景了的混合问题:深度缓冲区。当在3维场景中存在半透明和不透明物体时,问题就来了。如果只有不透明物体,假如一个物体被另外一个物体遮挡,我们不需要考虑的把被遮挡的物体剔除。但如果挡在前面的是个半透明物体时,事实上我们不应该去剔除这个物体,而更为复杂的是,这些物体有可能是运动的,这样我们就无法单一的指定绘制顺序去解决这样的问题。在此的解决方案是深度缓冲区:先去绘制不透明物体,这是深度缓冲区可读写;然后再绘制半透明物体时把深度缓冲区设为只读,这是已经在深度缓冲区的片元将不会被剔除,而是与新的片元进行混合。观察两个图元重合的地方。第一幅图是半透明物体在前,第二幅是半透明物体基本被不透明的球体挡住。

推荐整理分享OpenGL学习日记-2014.1.21--混合(opengl怎么学),希望有所帮助,仅作参考,欢迎阅读内容。

OpenGL学习日记-2014.1.21--混合(opengl怎么学)

文章相关热门搜索词:opengl教程视频,opengl示例,opengl learn,opengl使用教程,opengl示例,opengl入门视频教程,opengl learn,opengl教程48讲,内容如对您有帮助,希望把文章链接给更多的朋友!

简单一个opengl程序,2D图形移动 很早打算系统的学习一下opengl,但是由于课程以及学习算法占据了时间,一直没能开始,现在这段时间开始弄opengl了,这几天看正在看《Opengl变成指南

gluPerspective的具体含义 OpenGL有两种投影:正射投影(垂直投影)和透视投影。透视投影通过指定一个平截头体来定义视见体的范围,平截头体如下图所示:voidgluPerspective(GLdoubl

opengl(mesa) for ubuntu. 关于mesamesa是一个开源的OpenGL的实现。它被广泛用于包括X-Windows在内的各种渲染系统中。具体见官网:

标签: opengl怎么学

本文链接地址:https://www.jiuchutong.com/biancheng/369668.html 转载请保留说明!

上一篇:景深图片的3d显示(opengl)(景深图片的3d显示器)

下一篇:简单一个opengl程序,2D图形移动(opengl程序)

  • 小微企业要做企业年金吗
  • 怎么做税种
  • 什么是税目税基税率,简答题
  • 私车公用车险是个人名字可报销吗
  • 可转债中签后怎么操作卖出
  • 银行开户手续费怎么开发票
  • 基本户零流水如何处理
  • 待认证进项税是借方还是贷方
  • 小规模纳税人的票怎么开
  • 资源税折算后计提怎么算
  • 购销合同赔偿比例一般多少
  • 金蝶怎么填写凭证
  • 商铺租赁合同的用途怎么写
  • 提取法定盈余公积会计分录
  • 建筑工地不按月发工资怎么办
  • 预付房租发票未到分录
  • 应收账款贷方余额表示什么
  • 劳务外包用工单位可以抵扣进项税吗
  • 超过离线开票限定时长09d11f怎么解决
  • 案例讲解:将自己的房产用于办公使用,在税收的缴纳中该如何把控?
  • 开发商开发土地需要交国家什么钱
  • 超过三年的坏帐损失税前扣除怎样规定?
  • 企业年会的费用会计分录
  • 出口业务怎么做分录
  • 别的公司代缴社保合法
  • 如何绕开压缩包密码
  • 个贷系统平帐专户A
  • Linux系统怎么设置常亮
  • 怎么升级win11正版
  • 如何禁用开始目录的app自动推荐
  • 合伙企业必须有什么并以其作为企业法律基础
  • 租赁的车间改造的会计分录
  • 票据贴现办法
  • 企业所得税如何更正申报
  • js文件格式化工具
  • 电力系统培训计划
  • 公司开的餐费专票可以抵扣吗
  • 企业应收账款的规模受哪些因素的影响?( )
  • sql server查询前1000条纪录
  • 出口退税中的免税是什么
  • 当月收入可以下月开票吗
  • 个人所得税申报教程
  • 非独立核算门市部销售自产应税消费品
  • 销售开票会计分录怎么做
  • 金税四期何时上线
  • 外购商品职工福利进项税额转出如何记账?
  • 固定资产以前年度多计提怎么办
  • 商业保理怎么账务处理?
  • 社保费单位减免
  • 没有购销合同的销售额交印花税吗
  • 委外加工物资管理制度
  • 自制半成品属于什么会计要素
  • 固定资产超过多少入账
  • 虚开发票要如何处理?
  • 销售商品的运费的税费计入进项税额
  • 固定资产处理附件是什么
  • 预付账款主要是什么
  • 应计入产品成本的停工损失是
  • mysql索引优化是什么意思
  • mysql基本sql语句大全(基础用语篇)
  • 批量修改 sql
  • win8系统如何安装软件
  • Win10 Mobile 10549预览版怎么升级?
  • ubuntu12.04 amd64系统中lamp环境搭建方法
  • u盘装win8系统教程图解
  • ubuntu写脚本
  • LINUX系统下MySQL 压力测试工具super smack
  • 如何输入密钥上网
  • opengl教程48讲
  • Unity3D游戏开发培训课程大纲
  • python贪吃蛇游戏代码怎么运行
  • javascript运用
  • python3 bytes类型
  • js的设计模式有哪些
  • 下拉列表框模糊匹配
  • 在android
  • 江西电子税局
  • 天津2020年契税征收标准
  • 河北电子税务局怎么使用
  • 广东电子税务局官网登录入口手机版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设