OpenGL图形编程-颜色.pptxVIP

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

OpenGL编程指南(第7版)第四章颜色颜色/38计算机颜色RGBA和颜色索引模式指定颜色和着色模型颜色/38人类视网膜细胞(3种锥细胞)分别对红光、绿光、蓝光敏感。4.1颜色OpenGL颜色模式RGB(RGBA)模式 在RGB模式下,所有的颜色定义全用R、G、B三个值来表示,有时也加上Alpha值(与透明度有关),即RGBA模式。颜色表模式 在颜色表模式下,每一个象素的颜色是用颜色表中的某个颜色索引值表示,而这个索引值指向了相应的R、G、B值。4.1计算机颜色/38用于存储存储所有像素颜色的内存称为颜色缓冲区R、G、B值的范围从0.0(无)到1.0(完全强度)4.2RGBA/38每个像素都存储颜色数据的数量由帧缓冲区的位平面(bitplane)以及硬件的解释决定的。硬件为R、G、B和A成分保留一定的位平面,并一般采用整数,而不是浮点数存储位平面常常被均匀地划分8位存储可存储0~255,对应的RGBA值=位平面值/255.glGetIntegerv() 函数GL-RED-BITS、GL-GREEN_BITS、GL_BLUE_BITS、GL_ALPHA_BITS 和 GL_INDEX_BITS人 眼 对 颜 色 强 度 的 感 知 并 不 是 线 性 的 。4.2 RGBA/38在RGBA模式中,硬件分配一定数量的位面给R、G、B和A成分(每个成分的数量不一定一样)R、G、B的值通常以整型存储,而不是浮点数,并且它们被扩展成可以方便存储和获取的位数。4.2 RGBA——抖动/38抖动是一种使用混合多种颜色来创造出另一种颜色效果的技术4.3 颜色索引模式/38在颜色索引模式下,OpenGL使用一个颜色表(或查找表),就像用一个调色板来调出场景需要的各种颜色。在RGBA模式中,每个像素的颜色是独立于其它像素的。颜色索引模式中,相同索引值的像素共享相同的颜色表位置。如果颜色表中的内容改变了,那么相同索引值的像素将改变颜色。4.3 颜色索引模式/38用颜色索引模式的情况:假如你正导入一个已经存在的程序,它主要使用颜色索引模式,也许不转为RGBA模式会更容易一些。假如你只有很少的位面可用,RGBA模式对于阴影的过渡将显得非常粗糙。颜色索引模式可以实现一些特殊的技巧,例如颜色映射动画和层次绘图 4.3 颜色索引模式——切换显示模式/38大多数窗口系统不会允许这么容易的切换。解决办法是创建多个窗口,每个使用不同的显示模式。然后你控制窗口的显示与不显示4.4 指定颜色和着色模型/38OpenGL 维 护 一 种 当 前 颜 色 ( 在 RGBA 模 式 下 ) 或 一 个 当 前 颜 色 索 引 ( 在 颜 色 索 引 模 式 下 ) 。set color(RED) . draw_item(A); draw_item(B); set_color(GREEN ) : Set_color(BLUE) ; draw_item(C) ; 项 目 A 和 B 是 用 红 色 绘 制 的 , 项 目 C 是 用 蓝 色 绘 制 的 。4.4 指定颜色和着色模型——RGBA用glColor*()来定义当前颜色,其函数形式为:void glColorxt(red,green,blue,alpha);void glColorxtv(V); 函数名中的x表示参数的数目,当它等于3的时候,三个参数分别代表R、G、B值,alpha值缺省为1.0;当它等于4的时候,还包括了Alpha值,其范围从0.0到1.0。超过范围进行截取。函数名中的t指定参数数据的类型,可以取b、d、f、i、s、ub、ui或us,它们分别代表字节型、双精度型、浮点型、整型、短整型、无符号字节型和无符号短整型。还有一个函数glColor3ub,这个版本使用的颜色分量的取值范围是0到255之间的无符号数。第二个表达式: v 表 示 畚 数 是 否 为 一 个 特 定 數 据 类 型 的 数 组 指 针 。 4.4 指定颜色和着色模型——RGBA用glColor*()来定义当前颜色,其函数形式为:void glColorxt(red,green,blue,alpha);void glColorxtv(V); 函数名中的x表示参数的数目,当它等于3的时候,三个参数分别代表R、G、B值,alpha值缺省为1.0;当它等于4的时候,还包括了Alpha值,其范围从0.0到1.0。超过范围进行截取。glClampColor()可以指定是否截取函数名中的t指定参数数据的类型,可以取b、d、f、i、s、ub、ui或us,它们分别代表字节型、双精度型、浮点型、整型、短整型、无符号字节型和无符号短整型。还有一个函数glColor3ub,这个版本使用的颜色分量的取值范围是0到255之间的无符号数。第二个表达式: v 表 示

文档评论(0)

整理王 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档