geometry

隐式几何 implicit,满足特定关系的 f(x,y,z)。较方便地判断光线和物体的相交。

显式几何 explicit,直接给出坐标,或者给出对应的参数映射。较方便的采样到所有的点。

implicit

constructive solid geometry CSG 构造实体几何,隐式几何之间进行布尔运算,形成复杂形体。

signed distance function 符号距离函数,

level set 水平集,格子的双线性插值,

fractals 分形

explicit

point cloud

polygon mesh

.obj格式:先定义点,然后定义纹理坐标,再定义面的法线信息,最后定义面的组成

curve

贝塞尔曲线

算法de Casteljau algorithm: 给任意点所在时间 t,找位置,递归思想

仿射变换下,贝塞尔曲线点画出来的,和变换后的一样。对于投影变换就不行。

高阶的贝塞尔曲线处理,进行逐段定义。四个点即可形成,也是 PS 里面的钢笔工具原理。共线等距算切线状态,此时大小和方向都一样。

spline 样条

B- spline(Basis splines)

B样条曲线相对于贝塞尔曲线可以更好的进行局部控制 NURBS曲线可以得到一些B样条曲线无法精准描述的圆锥曲线

surface

Bezier Surfaces:贝塞尔曲线到曲面

mesh operation 网格操作

mesh subdivision

提高分辨率,向上采样 upsampling
曲面细分

loop subdivision 发明者姓 loop

针对三角形面细分的方式,引入更多的三角形,并使得其位置发生变化

n 是顶点的度 u 是和顶点的度有关系的数

cc 细分(Catmull-Clark细分),对于一般格网,不同

Pixar 做动画很强的

mesh simplification

降低分辨率,向下采样 downsampling
曲面简化

在什么场合,使用多少精细度的模型。
一种方法,edge collapsing,如何坍缩一条边,或者说坍缩哪一条边能够使得原模型样貌被改变的程度最小,这就是曲面简化的关键所在。因此引入了二次误差度量(点到原有点的二次平方和最小)。
测量哪边的坍缩最小,同时其他受到影响的边的变换也要最小。使用最小堆来实现。

mesh regularization

使得 mesh 的三角形里面不会出现那种很尖的或者很大的或者很小的三角形,而是都比较趋向于相近的正三角形。

shader mapping

draw shadows using rasterization
经典的 shadow mapping 只能处理点光源/方向光源。
出现误差/质量不好的原因:进行数值比较的时候,一方面是数值精度(特别是浮点数)在进行比较的时候的影响,另一方面是 shadow map 的分辨率和整个场景的分辨率之间的差异。

hard shadows & soft shadows

如果出现软阴影,说明不是点光源,光源存在着一定的大小,这样才能看到半影 penumbra

Ray tracing

光栅化无法很好的处理全局的效果。光栅化普遍比较快,但渲染质量比较差。光线追踪相反,所以经常用来处理动画,录成视频给我们看。

基本的光线追踪

光线可逆性,reciprocity
eye ray / camera ray / primary ray
Secondary ray
Shadow ray

whitted- style ray tracing

递归算法
多个点的着色的值都要加到里面

ray surface interaction

求交点
光线和球存在相离相切相交的问题。

隐式表面,通过方程组求。
显式表面,通过光线和三角形求交。

光线和平面相交
求和三角的交点
MT 算法:写成用重心坐标形式表示的平面内的点,和光线上的点,解出 t,b1,b2.然后判断解出来的和不合理。是不是正的时间,是不是点在三角形内(b1,b2 大于 0

加速光线和平面求交的效率(已经知道了光线和三角形求交的 方式,最不济就是和所有的三角形进行一一求交,但是很慢)

bounding volumes

使用包围盒来进行加速。
如果光线碰不到包围盒,那肯定碰不到物体。
最常见的就是长方体,有三个不同的对面构成的交集 3 pairs of slabs
轴对齐包围盒 AABB
判断光线和盒子有没有交点

从二维到三维,
二维下,两个对面的交集,得到了光线实际进入和移出的 tmin和 tmax
光线和盒子有交点,当且仅当进入时间小于出去时间,且出去时间为正。

使用 AABB 来加速光线追踪 acceleration

uniform spatial partitions,grids

格子分辨率的选择,需要平衡;
在部分情况下,格子画了很多,但场景很空,还是得花很长时间才能到达物体所在的格子;

Spatial partitioning examples

oct-Tree,八叉树,在二维的情况下就是四叉树;
KD-Tree,为了让划分和维度没有关系,就是比上面的优化一下,提出的 KD 树;
BSP-Tree,相对 KD 树来说不是横平竖直的砍;在维度高的时候会越来越难计算;

通过和包围盒进行判断有没有交点,一层一层按照树节点的顺序往下进行遍历判断;
kd 树的一个问题是,难以确定一个三角形和划分的 aabb 有交点。另一种划分方法想了出来,就是针对物体进行划分

object partitions

bounding volume hierarchy,BVH
kd 树先划分空间,再考虑和物体的相交情况,BVH 先分物体成两堆,再求包围盒。 这样一个物体只会存在于一个盒子里。
但存在的问题就是,BVH 对空间的划分并不能保证划分开,包围盒最后会有相交的部分。

辐射度量学 basic radiometry

这一块的知识点很像遥感那边的。
精确地度量光照的系统和单位,以及光的空间属性。

Radiant energy and flux(power)
Radiant intensity
radiant flux
intensity, solid angle 立体角,单位立体角,微分立体角

irradiance,垂直投影下单位面积的 power,Lambert cosine law 里的也是这样
radiance

bidirectional reflectance distributuion function(BRDF)

可以告诉我们这么多的能量从不同方向进来,反射到不同方向下的能量是多少。
也可以理解成光线照射过来,被单位面积吸收,这个单位面积又自己发射能量,这样就能用 radiance 和 irradiance 来进行解释和计算。
radiance 除以 irradiance
反射方程 reflection equation
把 irradiance 乘以 BRDF,就变成了出射的 radiance,然后在所有的方向上进行积分。
一个挑战,到达这个物体的光不只是光源到达这个物体之后的反射,也会有其他物体对光源的反射出来的 radiance。所以是一个递归的问题。

render

渲染方程,物体往一个点发射出来的光,是包括了这个物体自己发射产生出去的光,和通过被人的反射过来或者其他光源照亮的入射 后反射的radiance。


面光源,进行积分

多个物体
image-20240207084805768
渲染方程拆分成不同弹射次数,所有不同的光线弹射次数加起来就是全局光照。

global illumination

是直接和间接光照的集合。
光栅化主要做的是自己自发光和光源的部分,也就是零次和一次。
后面就是光线追踪Ray Tracing的部分。

通过概率论来解渲染方程

概率密度函数 PDF

蒙特卡洛路径追踪

Monte Carlo Integration

蒙特卡洛积分,针对复杂的函数,解一个定积分,也就是得到一个数值就行;

是通过随机采样的方式,通过采样近似成矩形,然后进行累加;

主要可以采样,并且知道采样的PDF,就可以进行定积分;

蒙特卡洛积分的要求,在X上采样,就在X上进行积分。

Path Tracing

镜面反射:specular,Mirror Reflection;

Glossy Reflection;

漫反射:diffuse,

whitted-style ray tacing存在着很多问题;

尝试用蒙特卡洛来解渲染方程;

当N过大的时候,会发生指数爆炸;所以令N=1,也就是只有一条光线,这个时候也就是Path Tracing.

此外,用多个方向,选取多束;

同时,递归需要有终止条件,但 现实世界中光线的反射是无限的;这个时候在程序中如何决定终止条件,可以引入Russian Roulette(RR)。

为了提高光线的利用,减少浪费,可以从光源入手,从光源发射出来,把渲染方程改成对光源面积进行积分;

路径追踪可以做到照片级真实感Photo-realistic

一些概念区分和变化:

Materials and Appearance

BRDF定义反射,等于材质;

抛光的金属:Glossy Material;

玻璃和水:Ideal reflective/refractive material;

折射定律:Snell’s Law, Snell’s Window/Circle

BSDF: 散射,BRDF+BTDF

Fresnel Reflection/Term 菲涅耳项。

镜面:Specular

微表面材质:Microfacet Material

物体虽然表面是粗糙的,但从远处来看看成了平的;

各向同性和各项异性材质

相机、透镜和光场

Camera

Field of View(FOV): 视场

可以用传感器大小和焦距来表示;

Exposure 曝光

aperture 光圈,焦距/光圈的直径 是F-Number

shutter speed 快门开放的时间,快门速度

ISO gain 感光度

Lenses

focal point 焦点

focal length 焦距

depth of field 景深

Light Field/lumigraph

the plenoptic function 全光函数

holographic movie 全息电影

颜色和感知

Color and Perception

光谱,谱功率密度SPD。
颜色是人的感知,和实际光的分布无关。
metamers 同色异谱
color space颜色空间

standard RGB (sRGB)
CIE XYZ
HSV
CIELAB
CMYK
人脑会自动互补色,颜色也是相对的,

Gamut 色域
颜色的伽马校正

animation simulation

  1. 关键帧动画
    keyframe,keyframe interpolation
  2. 物理模拟/仿真
    模拟的正常的话,就不会发生穿模的现象。
    流体的模拟,水花的感觉

质点弹簧系统

mass spring system
一系列相互连接的质点和弹簧

particle systems

attraction,repulsion,alignment

运动学

kinematics
forward kinematics
inverse kinematics

rigging

类似木偶操作,对模型添加控制点。

motion capture

将真人的动作,应用到模型上去。

动画模拟补充

single particle simulation
euler’s method