0%

GAMES101——Shading

本文章是关于GAMES101课程的笔记。

课程链接:GAMES101-现代计算机图形学入门-闫令琪

一、Blinn-Phong 反射模型

环境光照输入:

  • 镜面高光
  • 漫反射
  • 环境照明

image-20231212154202690

image-20231212221605433

局部 shading:

  • 观测角度
  • 表面法向量
  • 光照方向
  • 表面材质、颜色等参数

image-20231212154434973

二、漫反射(Diffuse Term)

观测不变性: 表面颜色从任何方向观测都是相同的

image-20231212155032437

Lambert 余弦定律: 物体表面接收到的光照能量与光线方向和法线方向的夹角成正比。

image-20231212155230821

光线衰减模型: 光线能量和距离的平方成反比

image-20231212155425427

Lambertian Shading :

image-20231212155526417

三、高光反射(Specular Term)

反射方向: 高光反射近似镜面反射

image-20231212220942398

计算高光角度: 计算半程向量与法向量的夹角确定

image-20231212221159569

减少高光反射观测位置: 增大指数 $p$

image-20231212221310927

四、环境光照(Ambient Term)

近似性: Blinn-Phong 反射模型将环境光照近似为一个常量

image-20231212221529108

五、着色频率(Shading Frequencies)

Flat shading: 着色三角面片

image-20231212221934432

Gouraud shading: 插值三角面片的顶点

image-20231212222103854

Phong shading: 着色每一个像素

image-20231212222139957

定义顶点的法向量: 顶点相邻面片的法向量加权求和

image-20231212222255605

定义像素的法向量: Barycentric interpolation

image-20231212222445736

六、图形学管线(Graphics Pipeline)

image-20231212222627948

七、纹理映射(Texture Mapping)

纹理: 每个三维物体表面的一个点在二维图像(纹理)中都有所对应。

image-20231212222947212

对应关系: 每个三角点都会在纹理坐标上有所对应

image-20231212223051664

八、重心坐标(Barycentric Coordinates)

三角形内任意点的坐标表示: 三个顶点向量加权值

image-20231213223757931

重心坐标公式:

image-20231213223909194

九、纹理问题(Texture Magnification)

纹理图太小问题: 纹理图太小,多个像素对应同一个纹理坐标。解决办法:插值采样

image-20231213224730080

image-20231213224753836

纹理图太大问题: 纹理图太大,一个像素包含诸多纹理图坐标,但表示能力有限。解决办法:Mipmap

image-20231213225044868

image-20231213225054737

Mipmap: 图像金字塔,缩小分辨率,缩小后的像素颜色用缩小范围内的所有像素的平均值代替。

image-20231213225402470

image-20231213225420910

Anisotropic Filtering: Mipmap 存在过模糊问题(Overblur),这是由于其本质是以正方形进行像素放缩,采用各向异性过滤可以缓解这个问题。

image-20231213225655504

image-20231213225708301

image-20231213225720237

image-20231213225739198

EWA filtering: 在 Anisotropic Filtering 上做进一步改进,可以表示任意方向的差异性。

image-20231213225915834