一、着色(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. 排除万难,我终于入了程序员的坑!
  2. Graph Without Long Directed Paths
  3. 先知模型 facebook_使用Facebook先知进行犯罪率预测
  4. 前端学习(3086):vue+element今日头条管理-请求提交
  5. 前端学习(742):arguments使用
  6. CSV 导入mysql 数据库
  7. maven项目pom中scope类型
  8. Windows Server 2008 启用公共文件夹共享
  9. 海洋工作室——网站建设专家:只有十句话,看了十分钟(完整版)[不应该只看十分钟!!!]...
  10. mysql 重置表索引_第19期:索引设计(哈希索引数据分布与使用场景)
  11. envi自定义坐标系
  12. 31 个惊艳的数据可视化作品,让你感受 数据之美!
  13. redission限流RedisException问题排查
  14. 大数据是啥?大数据特点 大数据概念
  15. 2021年大数据工程师面试内容包括哪些?
  16. exit()和_exit()
  17. 电信保温杯笔记——《统计学习方法(第二版)——李航》第16章 主成分分析
  18. Pruning Filters for Efficient ConvNets详解
  19. 传输线的物理基础(一):地、信号和均匀传输线
  20. CSDN高校俱乐部“名师高校行”——贵州遵义站

热门文章

  1. 组合使用Laravel和vfsStream测试文件上传
  2. Nginx禁止特定用户代理(User Agents)访问(转)
  3. android 版本控制
  4. 梅尔频率倒谱系数(MFCC)资源
  5. CF643E Bear and Destroying Subtrees
  6. MySQL之定时备份及还原
  7. python输入与输出165
  8. 关于时间差查询的一个小技巧
  9. 使用 Apache Commons CSV 读写 CSV 文件
  10. python学习笔记 -- reduce合并减少