【GAMES101】Lecture 07 着色(shading)

目录

着色

Blinn-Phong反射模型

漫反射

光衰减


着色

这个着色(shading)就是将不同的材质应用到不同的物体上,像一个物体,它可以是木头的、金属的、塑料的……

Blinn-Phong反射模型

我们来看一个简单的着色模型,叫Blinn-Phong反射模型

我们可以看到下面这个茶杯在右上方光源的照射下可以分成三个不同的地方,一个是这个Specular highlights,叫镜面高光,就是对着光源比较光滑的地方反射的光比较多,一个是这个Diffuse reflection,叫漫反射部分,物理中指的是投射在粗糙表面上的光向各个方向反射的现象,还有一个Ambient lighting,叫做环境光,也叫间接光照,这个光是来着周围环境的反射光

着色是局部的,是对于一个点着色,对于这一个点,它是在物体的表面的对吧,这是我们能够看得到,这个表面可能是曲面,但是对于某个点来说,它所在的面可以当作是一个平面,我们定义三个方向单位向量,n是这个平面的法向量,然后我们观测方向这个v向量指向我们的摄像机,l(L)向量是光源方向,指向光源,还有这个着色点的颜色color,还有着色点的光泽shininess,注意这个shininess不是亮度

还有就是着色不会产生这个阴影,就是shading不会产生shadow,这个着色是局部的,而这个阴影则是在光源下点和其他点的作用

漫反射

我们说这个漫反射是光线照射到一个不光滑的地方然后反射出四面八方的光线的现象

但是为什么同样是漫反射有些地方亮有些地方暗呢,大家都知道这是因为光线照射的角度不一样是不是,我们这里把光给离散化,那如果光是垂直照射到这个平面上自然接受到的光最多,如果是斜的话这个接受到的光能量就会减少,这个就涉及到Lambert余弦定理,就是说我们接收到的光的能量和光源方向与平面法方向之间的夹角的余弦值成正比

这个其实可以解释为什么会有春夏秋冬,并不是因为冬天太阳离地球远了,毕竟是同一颗地球,北半球冬天的时候南半球是夏天是不是,而是因为太阳照射光线的角度随着地球公转发生了变化,冬天是斜着照,接受的光能量比较小,所以比较冷

光衰减

考虑一个点光源散发出来的能量,假设每时每刻散发出来的能量是固定的,那么这些能够可以想象成一个球膜,并且这个球膜越来越大,就是这个球膜的表面积越来越大,但是根据能量守恒,这个球膜的总能量是不变的,假设距离光源距离为1的点的光的强度为I,那么可以算出距离为r的点的光的强度为I/r²

然后最后就是怎么计算这个漫反射出来的光,这个n·l是Lambert余弦定理计算出来的余弦值,然后和0取个最大值,因为余弦值为负的没有意义,然后乘以光在着色点的强度,这个kd是漫反射的反射率系数,取值0到1,表示可以反射多少光

这个着色还没完,还需要两节课才能讲完这个着色,还有就是刚刚过程中的物理模型并不完全准确,要等到路径追踪才讲

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/412465.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大文件的断点续传如何实现

断点续传 断点续传是一种数据恢复技术,主要用于在读取或发送数据时,因为网络问题、磁盘问题等原因导致数据传输中断。断点续传技术允许你在已经传输的数据基础上继续传输,从而节省数据传输时间。 断点续传通常用于文件传输过程中,…

C语言基本概念——正确理解C,不要被错误的题目误导

在进行C语言训练或做题时,我们可能会遇到一些看似简单但实则错误的题目。这些题目可能会误导我们对C语言基本概念的认识。因此,正确理解C语言并辨别题目中的错误至关重要。下面,举例说明题目错在哪。 1. 写出下列程序的运行结果。 #include…

vue3自定义按钮点击变颜色(切换)

实现效果图&#xff1a; 默认选中第一个按钮&#xff0c;未选中按钮为粉色&#xff0c;点击时颜色变为红色 利用动态类名&#xff0c;当定义isChange数值和下标index相同时&#xff0c;赋予act类名&#xff0c;实现变色效果 <template><view class"page"&g…

Find -name详解

Linux find命令的基本语法如下&#xff1a; find [path] [expression] path&#xff1a;要查找的目录路径。 expression&#xff1a;查找表达式&#xff0c;指定要查找的文件类型、名称、大小等条件 例子&#xff1a;find /etc -name passwd 这个表达式&#xff0c;指定条件为…

进阶Docker4:网桥模式、主机模式与自定义网络

目录 网络相关 子网掩码 网关 规则 docke网络配置 bridge模式 host模式 创建自定义网络(自定义IP) 网络相关 IP 子网掩码 网关 DNS 端口号 子网掩码 互联网是由许多小型网络构成的&#xff0c;每个网络上都有许多主机&#xff0c;这样便构成了一个有层次的结构。 IP 地…

【踩坑日志】SpringBoot读取nacos配置信息并提取信息中的IP地址(配置属性解析异常+排错记录)

缘起 &#xff1a;项目需读取nacos中动态的TDengine数据库连接信息并提取IP&#xff0c;一个并不复杂的操作&#xff0c;但作为一个nacos知识浅薄的菜鸡&#xff0c;我愣是捯饬了几个小时……惭愧惭愧…… 异常代码 Data Component public class TaosLink { // Value("…

ICC2:channel power plan/power switch的添加方法

更多学习内容请关注「拾陆楼」知识星球 拾陆楼知识星球入口 往期文章链接: low power与pg strategy (lib cell pin connect) low power与pg strategy(pg mesh) low power与pg

深度解析Pytest插件pytest-html

在软件开发中&#xff0c;测试报告是开发者获取测试结果和问题定位的关键工具之一。然而&#xff0c;标准的控制台输出有时难以满足我们对测试报告的需求。幸运的是&#xff0c;Pytest插件 pytest-html 提供了一种简单而强大的方式&#xff0c;可以生成漂亮、可视化的HTML格式测…

Opencv小项目——手势数字刷TIKTOK

​ 写在前面&#xff1a; 很久没更新了&#xff0c;之前的实习的记录也算是烂尾了&#xff0c;但是好在自己的实习记录还是有的&#xff0c;最近也忙碌了很多&#xff0c;终于放假了&#xff0c;今天下午正好没事&#xff0c;闲来无事就随便做个小玩意吧。 思来想去&#xff…

VLAN区域间路由详解

LAN局域网 WAN 广域网 WLAN无线局域网 VLAN:虚拟局域网 交换机和路由器&#xff0c;协同工作后&#xff0c;将原来的一个广播域&#xff0c;切分为多个&#xff0c;节省硬件成本&#xff1b; 配置思路&#xff1a; 交换机上创建vlan交换机上的各个接口划分到对应的vlan中 T…

canvas绘制不同样式的五角星(图文示例)

查看专栏目录 canvas实例应用100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

web蓝桥杯真题--9、水果拼盘

介绍 目前 CSS3 中新增的 Flex 弹性布局已经成为前端页面布局的首选方案&#xff0c;本题可以使用 Flex 属性快速完成布局。 准备 开始答题前&#xff0c;需要先打开本题的项目代码文件夹&#xff0c;目录结构如下&#xff1a; ├── css │ └── style.css ├── im…