OpenGL学习笔记——颜色

每个像素的颜色信息存储方式:

  • RGBA模式:有些图形硬件可以使用抖动来增加可以显示的颜色数量(抖动在默认情况下是开启的)。
  • 颜色索引:可用颜色数量受限于颜色映射表的大小以及可用的位平面的数量。

在程序执行早期,设置颜色显示模式,当颜色显示模式初始化之后就无法进行更改了,在程序执行期间根据顶点颜色确定每个几何图元的颜色。如果启用了光照,它的颜色取决于变换矩阵与表面法线以及其他材料属性的交互效果。在执行光照计算后,程序所选择的着色模式(单调着色或平滑着色)随之生效。接着图元被光栅化(转换为二维图像),光栅化决定了图元将占据窗口坐标中得哪些整型栅格方块,并为每个方格分配颜色和其他值。一个具有颜色、深度和纹理坐标的栅格方块称为片断。像素是帧缓冲区的基本元素。片断来自于图元,它与对应的像素组合,形成一个新的像素。在创建了片断之后,OpenGL会对片断应用纹理、雾和抗锯齿处理。之后,OpenGL使用片断以及已经存储在帧缓冲区中的像素,执行所有指定的alpha混合、抖动和位逻辑操作。最后,片断的颜色(RGBA值或颜色索引值)写入到像素,根据窗口的颜色显示模式在窗口中显示。

无论是RGBA还是颜色索引模式,每个像素都存储了一定数量的颜色数据,这个数量是由帧缓冲区的位平面数量决定的。在每个像素中,1个位平面表示1位数据。

颜色索引模式可以实现一些特殊的技巧,例如颜色映射动画和层次绘图,一般而言,应尽可能使用RGBA模式,RGBA模式可以在纹理贴图中使用,并且在使用光照、着色、雾和抗锯齿功能时更加灵活。

把颜色值转为浮点值:

后缀数据类型最小值最小值映射到最大值最大值映射到
b1字节整数-128-1.01271.0
s2字节整数-32768-1.0327671.0
i4字节整数-2147483648-1.021474836481.0
ub1字节无符号整数00.02551.0
us2字节无符号整数00.0655351.0
ui4字节无符号整数00.042949672951.0

直线或填充多边形可以用一种颜色进行绘制(单调着色),也可以用多种颜色进行绘制(平滑着色)。可以用glShadeModel()函数指定所需的着色模型。

haha

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值