一、着色(shading)的概念

着色,顾名思义就是给物体上色。在计算机图形学中,着色就是确定物体上或者图形上的每个像素的颜色。

像素或者物体表面的颜色受光照和材质的影响,光照中光线的颜色一定程度上决定物体表面的颜色。而物体的材质决定物体对光线中不同颜色分量的反射率。反射率越高,相应的颜色分量占比越大。

就拿头发染色来说,如果头发没有进行任何染色,那么头发的材质就不会反射任何光线,所以,看到的颜色就是黑色的。如果对头发进行染色后,头发的材质发生了变换,导致头发会反射阳光中一定的颜色分量,最终合成出来棕黄色的光,那么我们看到的头发颜色就是棕黄色。

再比如金属和木头,金属表面材质较为光滑,就会出现高光效果,而木头表面较为粗糙,就没有高光效果

所以,最终的着色效果是由材质和光照共同决定的

二、Blinn-Phong光照模型

如上图所示,Blinn-Phong光照模型将光线分为三种:高光或者镜面反射光、漫反射光和环境光;而Blinn-Phong光照模型的最终结果就是将这三项进行叠加

2.1、环境光模型

环境光模型较为简单,公式如下

其中,ka为物体表面对环境光的反射率,则Ia为环境光的强度(可以理解为光线中RGB三种分量的大小)。反射率越高,最终人眼接收到的环境光强度La就会越大

如果只有环境光模型,那么最终物体表面的颜色只是个统一的值,没有深度的变化,如下图所示

2.2、漫反射模型

首先先说下平方反比定律:如果将物体和光源之间的距离加倍,它会照亮比以前大四倍的表面区域。

然而,较大的表面积导致光强度与距离的平方成反比,因为相同量的光必须分别分布在较大的表面区域上。因此,我们看到光线衰减,意味着光强度的降低。

因此,任意位置的光强度与到光源的距离的平方成反比 。

漫反射会将光线射向四面八方

因此,为了表示四面八方的漫反射光线强度,用一个一个圆形来表示光线的强度

因此,根据平方反比定律,任意光圈上的光线强度可以表示为

光线的强度或者亮度有了,但是,这些强度或者亮度有多少能被物体表面接收呢,这里可以通过兰伯特定律来计算被接收的光线强度和亮度

如上图所示,当光线垂直射向物体表面,接收到的光线亮度或者强度是100%,当光线和物体表面成角60度时,原来的六根光线只有三根光线被接收到,原因是因为物体表面的法线向量和入射方向的夹角为60,cos60*6就是三根光线。因此,接收到的光线的亮度或者强度与入射光线与平面法线的夹角有关。

所以,接收到的光线强度就可以表示为

负数没有物理意义,所以保证入射光线与平面法线的点积必须大于0

到此,再乘以物体表面的反射率,就可以得到最终物体表面的亮度,所以,物体表面的漫反射亮度为

当kd逐渐变大时,物体表面的亮度变化如下

2.3、高光(镜面反射)模型

人眼看到物体镜面反射亮度的示意图如下

根据入射光线和法线向量,可以得到反射光想的方向,根据反射光线的方向与视角方向的夹角计算人眼接收到光线的强度,这种高光模型称为phong模型

blinn对该模型进行了改进,根据光线方向和视角方向引入了半程向量,如下图所示,半程向量与法线向量的夹角的cos就间接表示了视角和反射光线的夹角的cos

其中,半程向量可以表示为

因此,物体表面的高光亮度可以表示为

之所以要加一个指数项,也是为了符合人们的直觉,可以这样想,比如当我们用镜子去晃别人的眼睛,镜子稍微偏转几度,就可能让被晃的人感觉光线强度变化很大,所以,加了一个指数,就是让角度稍微一变化,光线强度就会由剧烈的波动,cos的指数函数图如下

Blinn-Phong高光模型的ks和p变化时,物体表面的高光强度变化如下

至此,Blinn-Phong光照模型就可以写成环境光、高光和漫反射的和;

如下形式

参考:

GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibili

欢迎大家评论交流,作者水平有限,如有错误,欢迎指出

5、计算机图形学——着色与光照模型相关推荐

  1. 6、计算机图形学——着色频率、插值与插值的矫正

    一.着色频率 通过光照模型可知,最终的光照结果和光照点的法线向量关系很大.所以,根据不同的法线向量,就有不同的着色方法.在图形学中,法线分为:面法线.顶点法线和像素法线.光照和这三种法线相互作用,就有 ...

  2. 【计算机图形学基础】投影矩阵

      最近在重温计算机图形学的基础知识,期望能做到温故知新,加深对其的理解,以便能从容应对工作中各种情况.   小弟水平有限,若有不正确之处,欢迎大家批评指正. 相关文章链接: [计算机图形学基础]线性 ...

  3. 【计算机图形学】着色简介

    文章目录 前言 光照模型 纹理 前言 来源:GAMES101-现代计算机图形学入门-闫令琪 这里简单记录下. 我不知道这个理解对不对.着色(shading)可以分为两部分:光照模型+纹理映射.即:输入 ...

  4. 计算机图形学阴影的的分类,计算机图形学8_光照模型与阴影处理_.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp图形图像 计算机图形学8_光照模型与阴影处理_.pdf5页 本文 ...

  5. 计算机图形学第五次上机——真实感图形绘制(引入光照模型)太阳系动画实现

        计算机图形学       课程实验报告 实验名称    真实感图形绘制     一.实验目的 1.掌握光照模型的编程应用 2.能够编程模拟实现简单的太阳系 1. 用不同的着色和光照参数绘制茶壶 ...

  6. Games101--现代计算机图形学入门 作业3笔记(渲染管线、着色模型、双线性插值)

    一.渲染管线 一.作业要求 在这次编程任务中,我们会进一步模拟现代图形技术.我们在代码中添加了ObjectLoader(用于加载三维模型),VertexShader与FragmentShader,并且 ...

  7. 简单 局部 整体光照模型计算机图形学,计算机图形学北大光照模型.ppt

    计算机图形学北大光照模型 * 当来自光源和周围环境的入射光照射在景物表面上时,将有部分光被反射或透射: 在视线方向的反射或透射光,被观察者眼睛中的视觉细胞接收 人眼中的杆状及锥状细胞接收光线,产生视觉 ...

  8. 计算机图形学(七)——Phong光照模型

    计算机图形学(七)--Phong光照模型 Phong光照反射模型 点光源 环境光 漫反射 镜面反射 Phong光照反射模型 Phong反射模型认为来自一个表面的反射由下面三个线性叠加的分量组成: 反射 ...

  9. 计算机图形学 1 —— 颜色模型图像基本知识,Phong光照模型

    色彩视觉 什么是色彩? 色彩是对不同波长的光的能量的感知: 不同波长的电磁波(electromagnetic waves) 对应不同的色彩: 对于人眼能感知的光(可见光),其波长范围为 380nm到7 ...

最新文章

  1. mongodb 对象唯一索引_什么是MongoDB?简介,架构,功能和示例
  2. 近期发现的一些-20190519
  3. 【收藏】如何查看linux服务器内存使用情况
  4. html5 markdown,Markdown常用语法
  5. python学习实例(7)
  6. Android-Activity中的onNewIntent()方法调用简析
  7. IIS FTP 安装程序无法复制文件的问题
  8. 计算机网络基础(二)
  9. TurboMail邮件系统提醒广大用户小心DXXD勒索邮件
  10. springboot 神通数据库
  11. 是什么限制了你的成功?
  12. 世界为什么是五彩缤纷
  13. wannier拟合能带总是拟合不上_Wannier 90使用教程
  14. 博瑞云音箱云喇叭开发文档API接口文档开发指南(21-12-20)
  15. 【优化】--Squid优化汇总
  16. 分析快、易操作的数据分析工具推荐
  17. 21页报告揭秘华为鸿蒙OS,七年沉淀、称霸5G+IoT时代的野心 | 附下载
  18. php的redis单例模式
  19. 探究计算机的硬件组成 教案,初一信息技术探究计算机的硬件组成教案
  20. Python 相较于Java 而言,有什么优势?

热门文章

  1. C# HashTable的用法总结
  2. 产品思维-产品初期准备
  3. 【引用】Android程序实现完全退出
  4. 深入python3 (Dive Into Python 3) 在线阅读与下载
  5. android touch screen keyboard input移植记录
  6. 办公室影响同事关系的九种行为
  7. scipy.spatial.distance 与 sklearn cosine_similarity
  8. Calc3: Multiple Integrals
  9. Python学习笔记之基本数据结构方法
  10. 动态规划---最长公共子序列