计算机图形学---颜色视觉知识点

本文整理自西安交通大学软件学院祝继华老师的计算机图形学课件,请勿转载

颜色视觉

要产生具有高度真实感的图像,颜色是最重要的因素。

颜色是外来的光刺激作用于人的视觉器官而产生的主观感觉,影响的因素有:

  • 物体本身;
  • 光源;
  • 周围环境;
  • 观察者的视觉系统

基本概念

光源

  • 点光源,如果光源大小比场景中的物体小得多,可以假定光线是从一个点向四周均匀发散的,最简单的模型。
  • 线光源,可以看作是多个点光源在一维空间上的合成,例如模拟荧光灯管这类长条形的光源。
  • 面光源,即可以看作线光源在高一维空间的合成,也可看作点光源在二维空间的合成。它可以用来模拟发光的块状物体

颜色

颜色可分为两大类

  • 非彩色:黑色、白色和各种不同深浅的灰色;
  • 彩色:指黑白系列以外的各种颜色

颜色的属性

  • 非彩色只有一个属性—明度(图);
  • 彩色具有三属性(常称颜色的心理三属性)

颜色的三个视觉特性(心理学属性)

  • 色调(Hue) ;
  • 饱和度(Saturation) ;
  • 亮度(Value)

颜色的物理特性

  • 主波长(Dominant Wavelength):产生颜色光的波长,对应于视觉感知的色调;
  • 纯度(Purity):对应于饱和度;
  • 明度(Luminance):对应于光的亮度

色调

一种颜色区别于其他颜色的因素

  • 单色光:对应着它的波长;
  • 复色光:比例最大的单色光的波长(主波长);
  • 人眼可分辨的光谱色有100多种,谱外色30多种,共计130多种。

色调环

  • 同类色:相距15°以内;
  • 邻近色:相距15°~45°以内;
  • 对比色:位于100°~197°之间;
  • 互补色:相距180°

image-20220216185529602

辨认阈限

人的视觉在辨认波长的微小变化方面的能力

在可见光谱的两端,人眼对波长变化的反应能力近乎迟钝,特别是在波长大于655nm及小于430nm的区域,人眼几乎无法分辨颜色上的差别

image-20220216185554474

亮度

人眼所能感受到色彩的明暗程度,是与人的心理、生理有关的一个属性。

  • 单色光:光线越强,其色彩越明亮;
  • 物体表面的光辐射率越高,亮度越高;发光体的明度越高,亮度越高。
  • 白颜料是反射率极高的物质:如果在其它颜料中加入白色,可以提高混合色的亮度;加入黑色,可以降低混合色的亮度

饱和度

颜色的纯度

  • 单色光的饱和度最高;
  • 复色光的波长范围越窄,光色越饱和;
  • 色料中含灰分的比例低,则其饱和度高;
  • 物体色饱和度取决于表面反射光谱色的选择性。

颜色三属性的相互关系

  • 色调:色刺激的光谱组成及光谱功率分布峰值的位置;
  • 亮度:色刺激的光强;
  • 饱和度:最强波长的功率对其它波长占优势的程度;
  • 三者相互独立的但并不单独存在,其变化是相互联系、影响的
  • 两者只有在适当亮度下才能充分表现出来

颜色视觉理论

颜色视觉是真实感图形学的生理基础,颜色科学中最基本、最重要的理论。

  • 恒常性:根据物体固有的颜色来感知它们,不受外界条件变化的影响。
  • 混合性:太阳光通过棱镜后分散成光谱上的颜色光带,证明白光由很多颜色光混合而成

颜色视觉理论:

  • 三色学说;
  • 四色学说(对立颜色学说);
  • 现代阶段学说

三色学说

把三种原色按照不同的比例混合就能准确的复现其他任何波长的光;三原色等量混合产生白光

三色原理:用三种原色能够产生各种颜色

  • 当今颜色科学中最重要的原理和学说;
  • RGB颜色模型提出的理论基础。

视网膜上含有三种不同类型的锥体细胞,分别含有感红、绿和蓝三种视色素,具有各自的光谱吸收率

三种色素按各自的吸收特性吸收外界光辐射后,产生光化学反应,刺激视神经,通过神经中枢传递给大脑产生综合颜色感觉

四色学说

  • 四种心理原色:红、绿、黄、蓝
  • 其它色由这四色混合而成,这四色中的任何一个都不能由其它色混合得到
  • 三对独立视色素:红-绿、黄-蓝、黑-白
    • 它们的代谢作用包括建设(同化)和破坏(异化)两种对立的过程

现代阶段学说

将颜色视觉的形成分为两个阶段

  • 网膜阶段:在视网膜中存在三种感色的锥体细胞,每种具有不同的光谱敏感特性和单独产生黑白反应
  • 视神经传输阶段:在视觉信息由锥体细胞向大脑的传导过程中,红、绿、蓝反应变成三对独立的神经反应:黑-白、红-绿、黄-蓝,即四色机制

image-20220216190333800

色光混合定律

色光混合定律:1854年H.Grassman总结出颜色混合的基本规律,格拉斯曼定律

  • 人的视觉只能分辨颜色的三种变化:明度、色调、饱和度;
  • 在由两个成份组成的混合色中,如果一个成份连续变化,混合色的外貌也连续变化。导出补色律和中间色律

颜色混合三定律:补色律、中间色律、代替律统称为颜色混合三定律

  • 补色律:只要一种色光与另一种色光混合能产生白光,这两种色光就是互补色。
  • 中间色律:任何两个非互补色混合,便产生中间色,其色调靠近比例较大的色光
  • 代替律:两个相同的颜色与另外两个相同的颜色相加混合后,颜色仍然相同

image-20220216190524284

加色法混合

混合色的光谱能量分布是每个组成色的光谱能量分布的简单相加,故称为色光相加混合

三原色光:红光、绿光、蓝光

image-20220216190744412

三原色说明

成为三原色条件:

  • 任何一种颜色可以用三种颜色混合而成;
  • 三种颜色中任意一种不能有其余两种颜色混合而成。

除了用RGB外,还有CMY

减色法混合

色料:涂染后能够使无色的物体呈色、有色物体改变颜色的物质;

色料三原色:青、品红、黄

混合色为光源光谱成份减去被色料吸收的光谱成份后所剩余的光谱成份引起的颜色视觉

image-20220216190941153

加色法和减色法的对比

image-20220216190959546

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用OpenGL绘制国旗可以通过以下步骤实现: 1. 创建OpenGL上下文和窗口。 2. 设置绘制区域和视口。 3. 设置绘制颜色和深度缓冲区。 4. 绘制国旗的红色背景。 5. 绘制五颗黄色的五角星。可以使用OpenGL的绘制多边形功能来绘制五角星,也可以使用纹理映射来贴上五角星的图案。 6. 交换前后缓冲区,显示绘制结果。 以下是一个简单的OpenGL绘制国旗的示例代码: ``` #include <GL/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glColor3f(1.0, 0.0, 0.0); // 设置绘制颜色为红色 glBegin(GL_QUADS); glVertex2f(-1.0, 1.0); glVertex2f(-1.0, -1.0); glVertex2f(1.0, -1.0); glVertex2f(1.0, 1.0); // 绘制国旗的红色背景 glEnd(); glColor3f(1.0, 1.0, 0.0); // 设置绘制颜色为黄色 glBegin(GL_POLYGON); glVertex2f(-0.5, 0.5); glVertex2f(-0.25, 0.25); glVertex2f(0.0, 0.5); glVertex2f(0.25, 0.25); glVertex2f(0.5, 0.5); glVertex2f(0.375, 0.25); glVertex2f(0.5, 0.0); glVertex2f(0.375, -0.25); glVertex2f(0.5, -0.5); glVertex2f(0.25, -0.375); glVertex2f(0.0, -0.5); glVertex2f(-0.25, -0.375); glVertex2f(-0.5, -0.5); glVertex2f(-0.375, -0.25); glVertex2f(-0.5, 0.0); glVertex2f(-0.375, 0.25); // 绘制五角星 glEnd(); glutSwapBuffers(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(800, 600); glutInitWindowPosition(100, 100); glutCreateWindow("OpenGL Flag"); glutDisplayFunc(display); glutMainLoop(); return 0; } ``` 该示例代码使用了OpenGL的基本绘图功能,通过绘制红色背景和黄色五角星实现了绘制国旗的效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hydrion-Qlz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值