天天看点

GAMES101学习笔记(Lecture7~9 初学shading)

Specular highlights

镜面高光

Diffuse reflection

漫反射

Ambient lighting

环境照明

物体表面的漫反射所呈现出的效果

GAMES101学习笔记(Lecture7~9 初学shading)
GAMES101学习笔记(Lecture7~9 初学shading)

光通量看作不变的时候, 物体表面接收到的光线数量与角度有关

GAMES101学习笔记(Lecture7~9 初学shading)

并且有能量守恒(远处能量衰减)

GAMES101学习笔记(Lecture7~9 初学shading)

得出与视点方向无关的着色方式(n,l均为单位向量)

GAMES101学习笔记(Lecture7~9 初学shading)

Kd为与漫反射有关的系数

GAMES101学习笔记(Lecture7~9 初学shading)
GAMES101学习笔记(Lecture7~9 初学shading)

布林冯模型-经验模型,保证高光被看到

利用半程向量,有方便计算的作用

GAMES101学习笔记(Lecture7~9 初学shading)

指数p,降低容忍度,更精确

求顶点法线的方法:

将顶点相邻的面法线加权求一个平均

GAMES101学习笔记(Lecture7~9 初学shading)

各个三角形的顶点对应一个u,v坐标 (约定俗成, 0≤u,v≤1)

对插值的理解

插值:三角形各顶点具有不同属性,如何使三角形内部的属性更加平滑得体现

若是想插值三维中的属性,需使用三维情况下的重心坐标,

(★注意:投影后,需要进行插值的点,其重心坐标基本都会改变)

双线性插值:所查询到的纹理坐标为非整数的情况

GAMES101学习笔记(Lecture7~9 初学shading)

x可以看作是相似程度

效果对比

GAMES101学习笔记(Lecture7~9 初学shading)

三线性插值:在维度上类似线性插值到双线性插值, 为了使过渡更自然, 利用Mipmap各层,实现非整数层的插值

GAMES101学习笔记(Lecture7~9 初学shading)

Mipmap:快,不准确,且适用于方形区域的范围查询

GAMES101学习笔记(Lecture7~9 初学shading)
GAMES101学习笔记(Lecture7~9 初学shading)
GAMES101学习笔记(Lecture7~9 初学shading)

不同层级👇,这是三线性插值的方法中的关键

GAMES101学习笔记(Lecture7~9 初学shading)
GAMES101学习笔记(Lecture7~9 初学shading)

近处出现明显锯齿, 远处则是摩尔纹

纹理大所引发的问题:由于视图关系, 最终着色后呈现在我们屏幕上的图像中, 表示远处图像的一像素所代表的实际纹理是很多的,

而我们一味的利用周围像素当做插值的基本,会损失信息

GAMES101学习笔记(Lecture7~9 初学shading)

当然, 我们也可以把一个像素细分为更多个小的采样点, 即超采样,但计算量会很大

GAMES101学习笔记(Lecture7~9 初学shading)

Mipmap的性质使其不适合用于不规则(非方形)的着色

GAMES101学习笔记(Lecture7~9 初学shading)
GAMES101学习笔记(Lecture7~9 初学shading)

于是引用了各向异性的着色方法

GAMES101学习笔记(Lecture7~9 初学shading)

效果更佳

GAMES101学习笔记(Lecture7~9 初学shading)

继续阅读