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 ...
GAMES101 09 Texture Mapping
Texture Mapping 纹理映射Interpolation Across Triangles: Barycentric Coordinates 重心坐标
A coordinate system for triangles ( $\alpha ,\beta ,\gamma$ )
$(x,y)=\alpha A+\beta B+\gamma C, where \alpha ,\beta ,\gamma>0 and \alpha ,\beta ,\gamma+1=0$
How to Calculate them? Use the triangle area:$$ \alpha = \frac{A_A}{A_A+A_B+A_C}, \ \beta = \frac{A_B}{A_A+A_B+A_C}, \ \gamma = \frac{A_C}{A_A+A_B+A_C}$$
重心坐标不具有投影变换不变性,所以先三维插值,再投影到二维面上去
Texture Magnification: What if the texture is too small?)
A pixel o ...
GAMES101 08 SHADING 2
08 Shading 着色Blinn-Phong Reflection Model
Specular highlights Term 高光
Intensity depends on view direction
Bright near mirror reflection direction
V close to mirror direction <–> half vector near normal(h)
Measure “near” by dot productof unit vectors
Formula: $L_s = k_s(I/r^2)max(0,<n,h>)^p$
What is the p in $max(0,<n,h>)^p$ for? Make it real:
If $\alpha $ is too big, $<n,h>^p$ is small.
Ambient Term 环境光照
Assumption: Shading that does not depend on anything
Add ...
GAMES101 07 SHADING
07 Shading 着色解决遮挡(Visibility)与着色的问题———Z-bufferingBlinn-Phong Reflection Model现在只针对于一个点的着色1.Painter’s Algorithm
遮挡和覆盖overwrite
但是对于物体,填充顺序是个问题
nlog(n)
2.Z-Buffer 深度缓存,n triangle
idea :存储min.z-value, for every pixel
Frame buffer
Depth buffer
Algorithm 维护当前看到的最浅深度的信息
initialize depth buffer to infinity
zbuffer[x,y] denotes the screen’s pixel buffer
framebuffer[x,y] denotes the information(r,g,b) of the pixel
for(every triangle)
for(every sample(x,y,z)in Triangle)
if(z<zbuffer[x,y])
framebuffe ...