OpenGL图形编程-颜色_第1页
OpenGL图形编程-颜色_第2页
OpenGL图形编程-颜色_第3页
OpenGL图形编程-颜色_第4页
OpenGL图形编程-颜色_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、OpenGLOpenGL编程指南(第编程指南(第7 7版)版)1第四第四章颜色章颜色颜色计算机颜色RGBA和颜色索引模式指定颜色和着色模型2/38颜色 人类视网膜细胞(3种锥细胞)分别对红光、绿光、蓝光敏感。3/384.1颜色 OpenGL颜色模式 RGB(RGBA)模式)模式在RGB模式下,所有的颜色定义全用R、G、B三个值来表示,有时也加上Alpha值(与透明度有关),即RGBA模式。 颜色表模式颜色表模式在颜色表模式下,每一个象素的颜色是用颜色表中的某个颜色索引值表示,而这个索引值指向了相应的R、G、B值。4.1计算机颜色 用于存储存储所有像素颜色的内存称为颜色缓冲区 R、G、B值的范围

2、从0.0(无)到1.0(完全强度)5/384.2RGBA每个像素都存储颜色数据的数量由帧缓冲区的位平面(bitplane)以及硬件的解释决定的。 硬件为R、G、B和A成分保留一定的位平面,并一般采用整数,而不是浮点数存储位平面常常被均匀地划分 8位存储可存储0255,对应的RGBA值=位平面值/255. glGetIntegerv() 函数GL-RED-BITS、GL-GREEN_BITS、GL_BLUE_BITS、GL_ALPHA_BITS 和 GL_INDEX_BITS 人 眼 对 颜 色 强 度 的 感 知 并 不 是 线 性 的 。6/384.2 RGBA 在RGBA模式中,硬件分配一

3、定数量的位面给R、G、B和A成分(每个成分的数量不一定一样) R、G、B的值通常以整型存储,而不是浮点数,并且它们被扩展成可以方便存储和获取的位数。7/384.2 RGBA抖动抖动 抖动是一种使用混合多种颜色来创造出另一种颜色效果的技术8/384.3 颜色索引模式 在颜色索引模式下,OpenGL使用一个颜色表(或查找表),就像用一个调色板来调出场景需要的各种颜色。 在RGBA模式中,每个像素的颜色是独立于其它像素的。 颜色索引模式中,相同索引值的像素共享相同的颜色表位置。如果颜色表中的内容改变了,那么相同索引值的像素将改变颜色。9/384.3 颜色索引模式用颜色索引用颜色索引模式的情况:模式的

4、情况: 假如你正导入一个已经存在的程序,它主要使用颜色索引模式,也许不转为RGBA模式会更容易一些。 假如你只有很少的位面可用,RGBA模式对于阴影的过渡将显得非常粗糙。 颜色索引模式可以实现一些特殊的技巧,例如颜色映射动画和层次绘图 10/384.3 颜色索引模式切换显示模式 大多数窗口系统不会允许这么容易的切换。 解决办法是创建多个窗口,每个使用不同的显示模式。然后你控制窗口的显示与不显示11/384.4 指定颜色和着色模型 OpenGL 维 护 一 种 当 前 颜 色 ( 在 RGBA 模 式 下 ) 或 一 个 当 前 颜 色 索 引 ( 在 颜 色 索 引 模 式 下 ) 。set

5、color(RED) draw_item(A); draw_item(B); set_color(GREEN ) : Set_color(BLUE) ; draw_item(C) ; 项 目 A 和 B 是 用 红 色 绘 制 的 , 项 目 C 是 用 蓝 色 绘 制 的 。12/384.4 指定颜色和着色模型RGBARGBA用glColor*()来定义当前颜色,其函数形式为:void glColor(red,green,blue,alpha);void glColorv(V); 函数名中的x表示参数的数目,当它等于3的时候,三个参数分别代表R、G、B值,alpha值缺省为1.0;当它等于4

6、的时候,还包括了Alpha值,其范围从0.0到1.0。超过范围进行截取。 函数名中的t指定参数数据的类型,可以取b、d、f、i、s、ub、ui或us,它们分别代表字节型、双精度型、浮点型、整型、短整型、无符号字节型和无符号短整型。 还有一个函数glColor3ub,这个版本使用的颜色分量的取值范围是0到255之间的无符号数。第二个表达式:第二个表达式: v 表表 示示 畚畚 数数 是是 否否 为为 一一 个个 特特 定定 數數 据据 类类 型型 的的 数数 组组 指指 针针 。 4.4 指定颜色和着色模型RGBARGBA用glColor*()来定义当前颜色,其函数形式为:void glColo

7、r(red,green,blue,alpha);void glColorv(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 表表 示示 畚畚 数数 是是 否否 为为 一一 个个 特特 定定 數數 据据 类类 型型 的的 数数 组组 指指 针针 。 OpenGL颜色模式 颜色表模式在颜色表模式(Color_IndexMode)下,可以调用glIndex*()函数从颜色表中选取当前颜色,其函数形式为:void glIndexsifd (TYPEc);void glIndexsifdv (TYPE*c);参数值c用于设置当前颜色索引值,即调色板号,若值大于颜色位面数时则取模。 4.4 指定颜色和着色模型颜色索引模式4.4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论