第六章_OpenGL混合.docVIP

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章_OpenGL混合

第章 混合是透明技术、数字合成和计算机绘画技术的核心指两种颜色分量依据一定的比例混在一起合。具体,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。来源于Alpha值,即RGBA中的A或(r、g、b、a)中的a值,通常称a为不透明,称(1-a)为透明。操作不能在颜色。   为了更好地理解这些概念,我们可以举出一个例子来简要说明。例如,坐在汽车内透过车窗的茶色玻璃看车外的绿树,这些树木的颜色并不是它们本来的绿色,而是透明的茶色与不透明的绿色的混合颜色。也就是说,最终的颜色来源于两部分,一部分来自于玻璃的茶色,另一部分来自于树木的绿色。两部分所占的百分比依据玻璃的透射变化,若玻璃透射率为80%(即一束光照在其上有80%的透射过去),其不透明度为20%,即这里的a值就等于0.2,这样进入眼中的树木颜色是20%的玻璃颜色与80%的树木本身颜色的合成。 源因子和目标因子前面我们已经提到,混合需要把原来的颜色和将要画上去的颜色找出来,经过某种方式处理后得到一种新的颜色。这里把将要画上去的颜色称为“源颜色”,把颜色称为“目标颜色”。OpenGL会把源颜色和目标颜色各自取出,并乘以一个系数源颜色乘以的系数称为“源因子”,目标颜色乘以的系数称为“目标因子”,然后相加,这样就得到了新的颜色(也可以不是相加,新版本的OpenGL可以设置运算方式,包括加、减、取两者中较大的、取两者中较小的、逻辑运算等)假设源颜色的四个分量(红色,绿色,蓝色,alpha值)是(Rs, Gs, Bs, As),目标颜色的四个分量是(Rd, Gd, Bd, Ad),又设源因子为(Sr, Sg, Sb, Sa),目标因子为(Dr, Dg, Db, Da)。则混合产生的新颜色可以表示为:(Rs*Sr+Rd*Dr, Gs*Sg+Gd*Dg, Bs*Sb+Bd*Db, As*Sa+Ad*Da) 如果颜色的某一分量超过了1.0,则它会被自动截取为1.0。 源因子和目标因子源因子和目标因子是可以通过glBlendFunc函数来进行设置的。glBlendFunc函数void glBlendFunc( GLenum sfactor, GLenum dfactor ); glBlendFunc有两个参数,前者表示源因子,后者表示目标因子。源因子和目标因子常数 相关因子 计算后得到的融合因子 GL_ZERO 源因子或目的因子 (0,0,0,0) GL_ONE 源因子或目的因子 (1,1,1,1) GL_DST_COLOR 源因子或目的因子 (Rd,Gd,Bd,Ad) GL_SRC_COLOR 源因子或目的因子 (Rs,Gs,Bs,As) GL_ONE_MINUS_DST_COLOR 源因子或目的因子 (1,1,1,1)-(Rd,Gd,Bd,Ad) GL_ONE_MINUS_SRC_COLOR 源因子或目的因子 (1,1,1,1)-(Rs,Gs,Bs,As) GL_SRC_ALPHA 源因子或目的因子 (As,As,As,As) GL_ONE_MINUS_SRC_ALPHA 源因子或目的因子 (1,1,1,1)-(As,As,As,As) GL_DST_ALPHA 源因子或目的因子 (Ad,Ad,Ad,Ad) GL_ONE_MINUS_DST_ALPHA 源因子或目的因子 (1,1,1,1)-(Ad,Ad,Ad,Ad) GL_SRC_ALPHA_SATURATE 源因子或目的因子 (f,f,f,1); f=min(As,1-Ad) 这两个参数可以是多种值比较常用的几种 GL_ZERO:表示使用0.0作为因子,实际上相当于不使用这种颜色参与混合运算。GL_ONE:???表示使用1.0作为因子,实际上相当于完全的使用了这种颜色参与混合运算。 GL_SRC_ALPHA:表示使用源颜色的alpha值来作为因子。 GL_DST_ALPHA:表示使用目标颜色的alpha值来作为因子。GL_ONE_MINUS_SRC_ALPHA:表示用1.0减去源颜色的alpha值来作为因子。GL_ONE_MINUS_DST_ALPHA:表示用1.0减去目标颜色的alpha值来作为因子。除此以外,还有GL_SRC_COLOR(把源颜色的四个分量分别作为因子的四个分量)、GL_ONE_MINUS_SRC_COLOR、GL_DST_COLOR、GL_ONE_MINUS_DST_COLOR等新版本的OpenGL支持新的GL_CONST_COLOR(设定一种常数颜色,将其四个分量分别作为因子的四个分量)、GL_ONE_MINUS_CONST_COLOR、GL_CONST_ALPHA、GL_ONE_MINUS_CONST_ALPHA。另外还有GL_SRC_

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档