李懿
医学技术与信息工程学院
浙江中医药大学
从线框到逼真的渲染,赋予物体“真实感”,关键因素是什么?
需要:光、材质、观察点、表面朝向(法向量)
将光、材质、观察点、表面朝向结合在一起,模拟真实世界的光照,需要建立一个光照模型
最经典、应用最广泛的局部光照模型:
其主要思想是,利用几个简单的部分模拟复杂的光照现象,在计算效率和真实感之间取得了平衡
Phong光照模型是由越南裔计算机图形学家裴祥风(Bùi Tường Phong)在1975年提出的
是一种局部光照模型,广泛应用于实时渲染
通过模拟光与物体表面的相互作用,产生真实感的视觉效果
Phong光照模型将光照效果分解为三个独立的分量:
最终的光照效果是这三种光照分量的叠加
Phong模型的计算公式:
$I = I_{ambient}+I_{diffuse}+I_{specular}$
其中:
可通过这四个向量计算得到三种分量
环境光是光源和环境中物体进行多次交互后的结果,是对间接光照的简化模拟
假设来自所有方向的光照强度相等
不考虑光源位置和物体表面朝向
环境光强度和颜色取决于光源的颜色和物体的材质属性
计算公式:
$I_{ambient}=k_{a}I_{a}$
环境光确保了场景中没有完全黑暗的区域,模拟了现实世界中光线的多次散射
虽然不真实,但是能实现简单有效的近似模拟
朗伯面(Lambertian Surface),一种理想的漫反射表面,光线均匀地向各个方向散射
反射光强度与入射光在垂直方向上的强度呈线性关系,即
漫反射模拟光线在粗糙表面上的反射
基于朗伯定律(Lambert's Law):反射光强度与入射光和表面法线夹角的余弦成正比
计算公式:
$I_{diffuse}=k_{d}I_{d}(\vec{n}\cdot\vec{l})$
漫反射适合表现如纸张、布料、墙壁等不光滑表面的光照效果
$$ \vec{r}=2(\vec{l}\cdot\vec{n})\vec{n}-\vec{l} $$
镜面反射模拟光线在光滑表面上的反射
产生高光效果,与观察者位置相关
计算公式:
$I_{specular}=k_{s}I_{s}(\vec{r}\cdot\vec{v})^{\alpha}$
在现实世界中,光照强度会随着距离增加而衰减
其强度衰减与距离平方的倒数相关,因此,衰减因子为
$$att = \frac{1}{k_1+k_2 d+k_3 d^2}$$
其中$d$为光源到表面点的距离,$k_1$、$k_2$、$k_3$分别为常数项、线性项和二次项的衰减系数
将衰减因子应用到漫反射和镜面反射分量中
在Phong模型计算中,对于镜面反射分量的计算,需要计算每个顶点的观察者向量,以及全反射向量,计算量大
Jim Blinn于1977年提出了一种对Phong模型的优化改进,称为Blinn-Phong模型
Blinn-Phong模型引入半路向量(Half Vector)替代全反射向量,提高计算效率
$$ \vec{h}=\frac{(\vec{l}+\vec{v})}{|\vec{l}+\vec{v}|} $$
将Phong模型中$(\vec{v}\cdot\vec{r})^{\alpha}$替代为$(\vec{n}\cdot\vec{h})^\beta$,其中$\beta$的值根据光泽度$\alpha$的值设定,一般$\beta\approx 4\alpha$
如果所有向量均共面,则半路角为$\vec{r}$和$\vec{v}$夹角的一半,即$\psi=\phi/2$
Blinn-Phong模型的优势:
尽管有局限性,Phong模型因其简单高效的特点,仍然在实时渲染中广泛应用
在Phong光照模型中,以下哪个分量与观察者的位置无关?
答案: A. B
解析: 在Phong光照模型中,漫反射分量仅依赖于光线方向与表面法线的夹角,与观察者位置无关。漫反射计算公式为 Idiffuse = kd × Id × (N·L),其中不包含视线向量V。环境光分量也与观察者位置无关。镜面反射分量与观察者位置密切相关,因为它依赖于反射向量和视线向量的夹角。
Blinn-Phong模型相比原始Phong模型的主要优化是什么?
答案: C
解析: Blinn-Phong模型的主要优化是使用半路向量(Half Vector)H替代反射向量R来计算镜面反射。半路向量是光源方向L和视线方向V的归一化平均值:H = (L + V) / |L + V|。这种方法避免了计算反射向量的开销,提高了计算效率,并在某些情况下(如掠射角)产生更好的视觉效果。Blinn-Phong模型的镜面反射计算使用(N·H)α'替代了Phong模型中的(R·V)α。
一个3D场景中有一个红色的塑料球和一个银色的金属球,它们在相同的光照条件下呈现出不同的视觉效果。请结合Phong光照模型的三个分量,解释如何通过调整材质参数来区分这两种不同材质的球体。具体说明哪些参数应该如何设置,以及为什么这些设置能够产生塑料和金属的视觉差异。
答案解析: