GAMES101 Lecture 07 Shading 1 (Illumination, Shading and Graphic Pipeline)
1.GAMES101 Lecture 03 & Lecture 04 Transform2.GAMES101 Lecture 05 Rasterization 1(Triangles)3.GAMES101 Lecture 06 Rasterization 2 (Antialiasing and Z-Buffering)
4.GAMES101 Lecture 07 Shading 1 (Illumination, Shading and Graphic Pipeline)
5.GAMES101 Lecture 08 Shading 2 (Shading, Pipeline and Texture Mapping)6.GAMES101 Lecture 09 Shading 3 (Texture Mapping cont7.GAMES101 Lecture 10 Geometry 1 (Introduction)8.GAMES101 Lecture 11 Geometry 2 (Curves and Surfaces)Lecture 07 Shading 1 (Illumination, Shading and Graphic Pipeline)
Illumination & Shading
Shading 着色在图形学上的定义:
在图形学上,对不同物体,应用不同材质的过程(不同的材质与光线的作用有不同方法)
Shading Model 着色模型
所有的计算都是在世界坐标系下完成的
Blinn-Phong Reflectance Model
这是一个简单的经验模型,并不是完全符合物理的
- Ambient lighting 环境光
- Diffuse reflection 漫反射
- Specular highlights 高光
法线 观察方向 光线方向 表面参数 表示有多亮,不是亮度,而是反光度 颜色
获得方法为光源位置或摄像机减去shading point位置并归一化处理
着色不会产生阴影
Diffuse Reflection 漫反射
接收到光线多少能量,与角度有关
- Lambert's cosine law
给定一个Shading Point,就能计算出它接收到多少光
光线传播距离越长,对于任意一个点上,能接受到的能量越少
于是可以计算出有多少光传播到了当前Shading Point
结合前面有多少光会被吸收,就能得到diffuse的表示方法
补充:
以下补充来自于计算机图形学(OPENGL):光源
这里只考虑了真空中光因为距离衰减的强度,而现实中光在介质中传播,往往不是线性衰减
-
常数项永远置为1来确保公式的分母不会大于1即衰减系数不会大于1。
-
线性项让衰减呈线性变化。
-
二次项让衰减在距离较短时影响小于线性项,在距离较远时影响高于线性项。
公式的衰减大致分布
漫反射项只考虑了
光源在左上角,法线和光源方向点乘越接*1,漫反射越亮
并且可以看到
Specular Term 镜面高光
高光接*镜面反射方向,当视线方向接*
-
Blinn-Phong模型为经验模型,没有计算镜面高光被物体吸收了多少
-
在Phong模型中,使用
和 的点乘计算是否接*,Blinn-Phong模型是一个改进,因为半程向量比反射方向更好算 -
指数
是减少容忍度,在Blinn-Phong模型中一半为 到
Ambient Term 环境光
- 我们认为环境光为一个固定的颜色
- 这是*似的,若要精确计算,需要用到全局光照(GI)
若一个点凹下去一点,在Blinn-Phong模型中不会更暗,所以这是一个简化模型
Blinn-Phong Reflection Model
将环境光、漫反射和镜面高光加起来
在Blinn-Phong模型中,没有考虑光线到摄像机的能量损失
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!