GAMES101 Lecture 07 Shading 1 (Illumination, Shading and Graphic Pipeline)
Lecture 07 Shading 1 (Illumination, Shading and Graphic Pipeline)
Illumination & Shading
Shading 着色在图形学上的定义:
在图形学上,对不同物体,应用不同材质的过程(不同的材质与光线的作用有不同方法)
Shading Model 着色模型
所有的计算都是在世界坐标系下完成的
Blinn-Phong Reflectance Model
这是一个简单的经验模型,并不是完全符合物理的
- Ambient lighting 环境光
- Diffuse reflection 漫反射
- Specular highlights 高光
- \(n\)法线
- \(v\)观察方向
- \(l\) 光线方向
- \(Surface\ parameters\)表面参数
- \(shininess\)表示有多亮,不是亮度,而是反光度
- \(color\) 颜色
\(n、v、l\)表示方向,所以是单位向量
获得方法为光源位置或摄像机减去shading point位置并归一化处理
着色不会产生阴影
Diffuse Reflection 漫反射
接收到光线多少能量,与角度有关
- Lambert's cosine law
给定一个Shading Point,就能计算出它接收到多少光
光线传播距离越长,对于任意一个点上,能接受到的能量越少
于是可以计算出有多少光传播到了当前Shading Point
结合前面有多少光会被吸收,就能得到diffuse的表示方法
补充:
以下补充来自于计算机图形学(OPENGL):光源
这里只考虑了真空中光因为距离衰减的强度,而现实中光在介质中传播,往往不是线性衰减
-
常数项永远置为1来确保公式的分母不会大于1即衰减系数不会大于1。
-
线性项让衰减呈线性变化。
-
二次项让衰减在距离较短时影响小于线性项,在距离较远时影响高于线性项。
公式的衰减大致分布
漫反射项只考虑了\(n和l\),没有考虑\(v\),是因为漫反射朝着四面八方反射,与视线方向没有关系
光源在左上角,法线和光源方向点乘越接*1,漫反射越亮
并且可以看到\(k_d\)从小到大的变化
Specular Term 镜面高光
高光接*镜面反射方向,当视线方向接*
-
Blinn-Phong模型为经验模型,没有计算镜面高光被物体吸收了多少
-
在Phong模型中,使用\(镜面反射方向r\)和\(视线方向v\)的点乘计算是否接*,Blinn-Phong模型是一个改进,因为半程向量比反射方向更好算
-
指数\(p\)是减少容忍度,在Blinn-Phong模型中一半为\(100\)到\(200\)
Ambient Term 环境光
- 我们认为环境光为一个固定的颜色
- 这是*似的,若要精确计算,需要用到全局光照(GI)
\(L_\alpha=k_\alpha I_\alpha\)
若一个点凹下去一点,在Blinn-Phong模型中不会更暗,所以这是一个简化模型
Blinn-Phong Reflection Model
将环境光、漫反射和镜面高光加起来
在Blinn-Phong模型中,没有考虑光线到摄像机的能量损失