来源:https://blog.youkuaiyun.com/poem_qianmo?t=1
对浅墨提炼总结进行截取,没有提炼也没有总结。
另外第四版已经出了,在优快云可以下载电子版,与第三版的差异:https://www.zhihu.com/question/290566100/answer/471199400
第一章 全书概览
第二章 图形渲染管线
第三章 GPU渲染管线与可编程着色器
第四章 图形渲染与视觉外观
(原书第五章,浅墨省略第四章 变换)
散色与吸收
平滑着色、高洛德着色、冯氏着色
9种抗锯齿技术
第五章 纹理贴图及相关技术
单个纹理的通用纹理管线
投影函数
图4 不同的纹理坐标,上面一行从左到右分别为球形、圆柱、平面,以及自然uv投影:下面一行所示为把不同的投影运用于同一个物体的情形。
映射函数
图7 图像寻址模式,从左到右分别是重复寻址、镜像寻址、夹取寻址、边框颜色寻址
体纹理
立方体贴图
纹理缓存:LRU、MRU、Prefetching、Clipmap
纹理压缩
程序贴图纹理:通常,会使用分形噪声(fractal noise)和湍流扰动函数(turbulence functions)这类“随机性”的函数来生成程序贴图纹理。
Blinn凹凸贴图、移位贴图、法线贴图、视差贴图、浮雕贴图
第六章 高级渲染:BRDF及相关技术
BRDF的精确定义是出射辐射率的微分(differential outgoing radiance)和入射辐照度的微分(differential incoming irradiance)之比:
BRDF的非微分形式
这里的讨论仅限于非区域光源,如点光源或方向光源。在这种情况下,BRDF定义可以用非微分形式表示:
其中:
EL是光源在垂直于光的方向向量L平面测量的辐照度(irradiance)。
Lo(v)是在视图矢量v的方向上产生的出射辐射率(radiance)。
性质:可逆性、能量守恒、线性特征
BRDF的模型可以分为如下几类:
经验模型(Empirical Models):使用基于实验提出的公式对BRDF做快速估计。
数据驱动的模型(Data-driven Models):采集真实材质表面在不同光照角度和观察角将BRDF按照实测数据建立查找表,记录在数据库中,以便于快速的查找和计算。
基于物理的模型(Physical-based Models):根据物体表面材料的几何以及光学属性建立反射方程,从而计算BRDF,实现极具真实感的渲染效果。
关于BRDF的经验模型,有如下几个要点:
经验模型提供简洁的公式以便于反射光线的快速计算。
经验模型不考虑材质特性,仅仅提供一个反射光的粗糙近似。
经验模型不一定满足物理定律,比如Helmholtz可逆性或能量守恒定律。
经验模型因为其简洁和高效性被广泛运用。
常见的BRDF经验模型有:
Lambert漫反射模型
Phong模型
Blinn-Phong模型
快速Phong模型
可逆Phong模型
常见的基于物理的BRDF模型有:
- Cook-Torrance BRDF模型
- Ward BRDF模型
次表面散射
Subsurface Scattering,简称SSS(又简称3S),就是光射入半透明材质后在内部发生散射,最后射出物体并进入视野中产生的现象,是指光从表面进入物体经过内部散射,然后又通过物体表面的其他顶点出射的光线传递过程。
菲涅尔反射(Fresnel Reflectance)
或者菲涅尔效果(Fresnel Effect),即当光入射到折射率不同的两个材质的分界面时,一部分光会被反射,而我们所看到的光线会根据我们的观察角度以不同强度反射的现象。
微平面理论 Microfacet Theory
在微观层面上不规则的表面会造成光的漫反射。例如,模糊的反射是由于光线的散射造成的。而反射的光线并不均匀,因此我们得到的高光反射是模糊的
基于物理的BRDF模型有:
- Cook-Torrance BRDF模型
- Ward BRDF模型
与BRDF类似的函数:
BSSRDF:Bidirectional Surface Scattering Reflectance Distribution,双向表面散反射分布函数
SBRDF(SVBRDF): spatially varying BRDF(spatial BRDF) 空间BRDF
BTDF:Bidirectional Transmittance Distribution Function 双向透射分布函数
BSDF : Bidirectional Scattering Distribution Function,双向散射分布函数
第七章 延迟渲染
延迟渲染,即延迟着色,是将着色计算延迟到深度测试之后进行处理的一种渲染方法。
典型的Deferred Rendering 的渲染流程有两步:
1. 几何处理阶段:渲染所有的几何/颜色数据到G-buffer
2. 光照处理阶段:使用G-buffer计算场景的光照。
Forward Rendering的管线流程如下:
Deferred Rendering的管线流程如下:
6.1 延迟渲染的优点
Deferred Rendering 的最大的优势就是将光源的数目和场景中物体的数目在复杂度层面上完全分开。也就是说场景中不管是一个三角形还是一百万个三角形,最后的复杂度不会随光源数目变化而产生巨大变化。
一些要点:
复杂度仅O(n+m)。
只渲染可见的像素,节省计算量。
用更少的shader。
对后处理支持良好。
在大量光源的场景优势尤其明显。
6.2 延迟渲染的缺点
内存开销较大。
读写G-buffer的内存带宽用量是性能瓶颈。
对透明物体的渲染存在问题。在这点上需要结合正向渲染进行渲染。
对多重采样抗锯齿(MultiSampling Anti-Aliasing, MSAA)的支持不友好,主要因为需开启MRT。
由于Deferred Shading的Deferred阶段是在完全基于G-Buffer的屏幕空间进行,这也导致了物体材质信息的缺失,这样在处理多变的渲染风格时就需要额外的操作。
常见的两种Deferred Rendering的改进是:
- 延迟光照 Light Pre-Pass(即Deferred Lighting)
- 分块延迟渲染 Tile-BasedDeferred Rendering
Environment mapping(环境映射)
又称Reflection Mapping(反射映射),是计算机图形学领域中使用基于图像的光照(Image-Based Lighting,IBL)技术,用预先计算的纹理图像模拟复杂镜面的一种高效方法。由Blinn 和 Newell 在1976首次提出。
由于是事先准备好的数据,这种实现方法比传统的光线跟踪算法效率更高,但是需要注意的是这种方法是实际反射的一种近似,有时甚至是非常粗糙的近似。这种技术的一个典型的缺点是没有考虑自反射,即无法看到物体反射的物体自身的某一部分。