GAMES202 8 Real-time Global Illumination 2 (screen space)
Lecture 8 Real-time Global Illumination 2 (screen space)Light Propagation Volumes (LPV)Key Problem 主要问题
要实现任何一个Shading Point的间接光照,要先知道这一个点的Radiance
Key Idea 主要思路
在一个直线上传播的Radiance(单位立体角单位面积接收到的能量)是一个不变的量。
Key Solution 主要方法
用一个3D网格,作为传播介质,来传播从物体表面到任何其他地方的直接照射的radiance。
Step 步骤
首先生成一系列点,就是被直接光照照射到的点
用RSM就足够了,但是还是存在计算量的问题
将这些虚拟光源的点集合“注入”到格子(Radiance Volumn)里面
先将场景预处理分成一个个的格子
对每一个格子,计算相邻的source light
将直接光照的分布加起来
把得到的次级光照分布使用前两阶(4terms)SH进行压缩
用Volumn Radiance 进行光线传播计算
对于每个格子,收集6个方向的radianc ...
GAMES202 7 Real-time Global Illumination (in 3D)
Wavelet 小波 2D Harr Wavelet也是一套基函数。不同函数的定义域也有所不同。小波的压缩方式和SH等其他不同,他的基函数系数有的很接近0,就可以直接当作0作为展开方式,并且可以保留全频率。这时候用的多是Cube Map。
优点:小波变换可以保留高频信息,属于全频滤波,比起只保留低频信号的SH更清晰,看起来效果很好。
缺点:不易进行旋转变换
Global Illumination 实时渲染中的全局光照直接光照好做,间接光照麻烦。每个直接光照的点,都应该作为间接光照的次级光源。
Reflective Shadow Map (RSM)
把每一个像素都作为一个次级光源
把Rendering Equation的 $d\omega$ 变换为 $dA$
(看不懂了,明天再看吧)
相比于SM存Depth,多存了世界坐标、法线、Flux。适合用于在手电筒的场景下
优点
易实现
缺点
运算量和直接光源呈现线性增长
不会判断间接光照的可见性,会有所不真实
有许多数学上的约等或者说假设
采样率和质量上的Trade off
GAMES202 6 Real-time Enviroment Mapping 2
Background Knowledges 一些理解:Product-integral=滤波=卷积=加权平均:
卷积 $\int_{\Omega}f(x)g(x)dx$
滤波 考虑傅里叶变换,先乘积再积分和频域上的滤波结果相同
加权平均,把 $f(x)$ 看成权重函数, $g(x)$ 看成被积函数
Fourier Transfer 傅里叶变换:
低频信号:分布在频域图中间,表示的是模糊
高频信号:分布在周围,表示的更多是图像的边界
Basis Function 基函数:
可以类比于线性空间的标准正交基。傅里叶级数的每个项都是标准正交基
可以用一套基函数的线性组合来表达该函数空间中的任何函数,比如说三角函数代表的傅里叶展开,以及幂级数代表的泰勒展开。
Real Time Environment Lighting (& global illumination)Spherical Harmonics 球面谐波函数(SH)What 是什么:
一系列 定义在球面上的 二维 函数 $B_i(\omega)$
另外一个理解:一维情况下的傅里叶函数
长得和电子云波函数一样卧槽,每 ...
GAMES202 5 Real-time Enviroment Mapping
Distance Field Soft Shadow (DFSS)先复习了一下GAMES101的Distance Function在几何1里面讲的
sdf有向距离场
Distance Field的运用
Ray marching (sphere tracing) to perform ray-SDF intersection
通过sdf给出的“安全距离”,
Use SDF to determine the (approx.) percentage of occlusion
a “safe” angle seen from the eye 从安全距离得到安全角度(最小的那个)
安全角度越小,阴影就越黑
怎么算安全角:
不用 $arcsin(\frac{SDF(p)}{|p-o|})$ 而是用 $min{\frac{k\cdot SDF(p)}{|p-o|},1.0}$
优点:
快(但是生成也需要时间)
高质量
缺点:
需要预计算
需要存储
会有artifact
Shading from Environment Lighting 环境光照技术:Image-B ...
GAMES202 4 Real-Time Shadows 2
A deeper look at pcffilter/convolution:
$[\omega*f](p)=\sum_{q\in \mathcal{N}}^{}\omega(p,q)f(q)$
in PCSS: 实际上也是一个卷积运算来求得Visibility函数
$V(x)=\sum_{q\in \mathcal{N} (p)}^{}\omega(p,q)\cdot \chi^+[D_{SM}(q)-D_{sence}(x)]$
PCF是在图像(模型几何结构的二维投影)层面处理,而非是先shadow map之后再在shadow map上面做模糊。
Revisiting PCSSPCSS的完整算法
Step 1 Blocker Search 遮挡物搜索,在一个确切距离中得到平均遮挡深度。
Step 2 Penumbra Estimate 半影估计,用平均遮挡深度来决定filter size
Step 3 Percentage Closer Filter 用产生的Adaptive filter size进行PCF
哪一步更慢?
第一步和第三步,每次都要看遮挡物,PCF也会比较 ...
GAMES202 3 Real-Time Shadows 1
Shadow Mapping 生成硬阴影2 pass Algorithm 渲染两边的算法
第一遍,从光源出发,生成sm(Shadow Map)
第二遍,从相机出发,使用sm检测其是否在阴影里
一个完全在图像中的算法:
优点:一旦图像已经生成,不需要知道图像的几何场景
缺点:会产生自遮挡现象,以及锯齿
自遮挡(self occlusion):Shadow Map中的像素会把一个平面采样分成一块一块的阶梯状深度,但是在从相机出发而言,就会认为,地板之间会发生相互遮挡
处理:添加一个可变的Bias,如果不超出这个bias,就忽略遮挡的影响。(但也相应引入detached shadow不接触的阴影)
另一种方法:second-depth shadow mapping,记录次小深度,用中点深度进行遮挡比较。但是没人用,因为模型不能是全平面,
锯齿(Alias)
实时渲染不相信复杂度(哈哈哈哈)(只相信时间,RTR中常数也十分重要)
Approximation in RTR实时渲染中的一个重要的约等于,主要是把积分中的两个函数拆开来:
$\int_{\Omega}f(x)g(x) ...
GAMES202 1&2 Overview & Recap of CG Basis
Lecture 1&2 Overview & Recap of CG BasisContents
Shadows
Global Illum
Physically-based Shading
Real-time Ray Tracing
Graphics Pipeline 渲染管线 复习OpenGL:
一系列通过CPU调用GPU的API
语言不重要
跨平台
替代品:DirectX,Vulkan
缺点:
版本比较碎片化
C style, 使用不是很简单
(之前)不好Debug
如何理解:
和101里面的光栅化一一对应
放置/摆放物体,视图变换啥的,GL有矩阵相乘的API
VBO 存储模型的向量、坐标、纹理坐标
之前的obj文件
使用一个画架easel(GL里面的framebuffer)可以渲染多张图
还有一种是直接渲染到屏幕(垂直同步),但是容易造成画面撕裂。使用双/三重缓冲避免
目前只需要用到vertex shader和fragment shader
大致渲染过程,每一次pass
指定物体、相机、MVP等等
指定framebuffer、输入输出text ...
GAMES101 19,20,21,22 (完结)
19 Cameras, Lenses and Light Fields 相机棱镜和光场Camera Structure
shutter 快门
sensor 传感器,感知Irradiance
针孔相机 Pinhole Image Formation没有模糊
Feild of view (FOV) 视场取决于Lens和Sensor(宽度是h)的距离(f)。 $Fov=2 arctan(\frac{h}{2f})$
Exposure 曝光
$ H=T\times E$
exposure=time*irradiance
Aperture size 光圈(E)f数(F-Number F-STop)直径分之一,越大光圈越小。光圈大远景模糊,浅景深(景深是光像清晰的一段范围)
Shutter speed 快门曝光时间(T)Motion Blur 运动模糊
ISO Gain 感光度。太大放大噪声
F-Stop和Shutter时间要Trade off
Gauss Ray Tracing Construction / Thin lens equation$\frac{1}{f}=\frac{1}{z_ ...
GAMES101 18 Advanced Topics in Rendering
18 Advanced Topics in RenderingAdvanced Light TransportUnbiased light transport methodsBidirectional Path Tracing (BDPT)生成两个子路径,分别从光源和摄像机出发光线,并将两者断电连接起来。
Metropolis Light Transport (MLT)
用马尔可夫链生成样本,给一条路径,生成一系列相似的路径。被积函数和pdf形状一致的时候variance最小。(马尔可夫链可以用任何函数生成样本)
适用于局部取样、复杂光路、焦散、SDS(Specular-Diffuse-Specular)
缺点是收敛速度问题不清楚、有些像素收敛快,有的慢
Biased light transport methodPhoton Mapping
caustics(焦散),
Step 1 Photon Tracing 光子一直跑,知道遇到diffuse的地方
Step 2 photon collecting 从视角跑,直到遇到diffuse的地方
Step 3 Calculation - ...
GAMES101 17 Material and Appearance
17 Material and AppearanceMaterial = BRDF
Diffuse / Lambertain Material
albedo (color): $f_r=\rho/\pi,albedo\ is\ \rho $
Glossy MaterialIdeal Reflective / Refractive Material 反射和折射材料Snell’s Law
Law of Refraction 斯涅尔定律(折射定律)
Snell’s Circle (水中的全反射,一个锥形)
Fresnel Reflection / Term 菲涅尔项
Reflectance depends on incident angle (and polarization of light)
不同角度反射和折射的量不同。也取决于光的偏振方向。但是太不好算了
菲涅尔项的approximation: schlick’s approximation
Microfacet Theory 微表面模型 基于物理
对于细节很多的材质。远处看是材质,近处看是几何
表面法线分布集中——Glossy, ...