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) ...
Stochastic Process 1 Markov Property (马尔可夫性)
离散时间马尔可夫链 (Markov Chain)一般来讲,为了化简一些过程,需要对对象进行一些假设,使其简单(无记忆性)、被大量随机过程满足、应用广泛。一个较好的假设,是现在的结果只依赖于最近一次的结果。
定义:设具有可数样本空间E的随机序列 ${X_m}_{m=0}^\infty$ 满足:
$\forall k, \forall m_1<\cdots <m_{k+1},$
$\mathbb{P}(X_{m_{k+1}}=n_{k+1}|X_{m_{k+1}}=n_{k+1},\cdots ,X_{m_1}=n_1)=\mathbb{P}(X_{m_{k+1}}=n_{k+1}|X_{m_{k+1}}=n_{k+1})$;
则称 ${X_m}_{m=0}^\infty$ 为离散时间Markov链。化简条件后:
$\forall k,\ \ \mathbb{P}(X_{m_{k+1}}=n_{k+1}|X_{m_{k+1}}=n_{k+1},\cdots ,X_{m_1} ...
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等等
指定framebuffe ...
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$\fr ...
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 微表面模型 基于物理
对于细节很多的材质。远 ...
GAMES101 16 Ray Tracing 4 Path Tracing
Ray Tracing 4 Path TracingMonte Carlo Integration
Definite intergral: $\int_{a}^{b}{f(x)dx}$
Random variable: $X_i\sim pdf(x)$ , pdf is the Probability Distribution Function
Monte Carlo estimator: $F_N=\frac{1}{N}\sum_{i=1}^{N}{\frac{f(x_i)}{pdf(x_i)}}$
我自己证明一下:中心极限定理,当 $ N\rightarrow \infty $
$\frac{1}{N}\sum_{i=1}^{N}{\frac{f(x_i)}{pdf(x_i)}}\rightarrow E(\frac{f(x_i)}{pdf(x_i)})$
$= \int_{a}^{b}{pdf(x_i)\times \frac{f(x_i)}{pdf(x_i)}}dx$
$=\int_{a}^{b}{f(x_i)}dx$
$& ...
GAMES101 15 Ray Tracing 3 BRDF
15 Ray Tracing 3 BRDFBasic Radiometry 辐射度量学基础Irradiance
Definition: Power pur unit area.
$ E(x) \equiv \frac{d\Phi_{\perp}(x)}{dA}=\frac{\Phi}{A}cos\theta $
单位面积上接收到的能量
Radiance
Definition: Power pur unit solid angle pur unit area
$L(p,\omega)\equiv \frac{d^2\Phi(p,\omega)}{d\omega dAcos\theta}$
单位立体角单位面积上接收到的能量
Radiance 对单位立体角积分,就是Irradiance:
$E_i(\omega_i)=L_i(\omega_i)cos\theta_i d\omega_i$
Bidirectional Reflectance Distribution Function (BRDF)Reflection at a Point 光在一个点的反射
可以理解成, ...
GAMES101 14 Ray Tracing 2 Accelerate
14 Ray Tracing 2 AccelerateAcceleration: Bounding Volumes
Ray-Intersection With a Box
Understanding : box is the intersection of 3 pairs of slabs.
Axis-Aligned Bounding Box: AABB 轴对齐包围盒
光线进入所有包围面,进入盒子。出去其中一个包围面,出去包围盒。
$t_{enter}=max{t_{min}}, t_{exit}=min{t_{max}}$
If $t_{enter}<t_{exit}$, ray stay a while in the box.
$t_{enter}<t_{exit} and t_{exit}>=0$, ray and AABB intersection.
Grid Solution: 在bounding box 里面再弄一堆格子
Spatial Partitioning Examples
Oct-Tree
KD-Tree
BSP- ...
GAMES101 13 Ray Tracing 1 Whitted-Style
13 Ray Tracing 1 Whitted-StyleShadow Mapping before we move onTBD
Whitted-Style Ray TracingTBD
Why Ray Tracing?
Rasterization couldn’t handle global effects well
Soft shadow
Light bounces more than once
Ray Tracing is accurate, but is very slow
Rasterization: real-time, ray tracing: offline
~10k CPU core hours to render one frame in production.
Definition:
Light Rays:
Light travels in straight lines 直线传播
Light rays do not collide with each other if they cross 不相互影响
Light rays travel from th ...