赞
踩
快速跳转:
1、矩阵变换原理Transform(旋转、位移、缩放、正交投影、透视投影)
2、光栅化(反走样、傅里叶变换、卷积)
3、着色计算(深度缓存、着色模型、着色频率)
4、纹理映射(重心坐标插值、透视投影矫正、双线性插值MipMap、环境光遮蔽AO)
5、几何(距离函数SDF、点云、贝塞尔曲线、曲面细分、曲面简化)
6、阴影映射(Shadow Mapping)
7、光线追踪原理(线面求交、预处理光追加速)
8、辐射度量学与光线追踪
9、蒙特卡洛路径追踪(Path Tracing)(光源采样)
10、材质(BRDF)(折射、菲涅尔项、微表面模型、各向异性材质)
11、渲染前沿技术介绍(双向路径追踪BDPT、MLT、光子映射、实时辐射度、外观建模)
12、相机(视场、曝光、光圈(F-Stop)、薄棱镜近似、CoC、景深)
13、光场、颜色与感知
14、动画(物理模拟、质点弹簧系统、粒子系统、运动学、动作捕捉、欧拉方法)
光线追踪的很多方法都是使用蒙特卡洛估计解渲染方程,而蒙特卡洛估计分为无偏和有偏
这一章只大概介绍各种新的技术,并不涉及具体实现,有兴趣的可以阅读相关博客文章、论文进行深入学习
之前学的路径追踪,光路是从相机出发,连接光源,形成一条路径。但这种方法对于某些用间接光照亮的场景非常不好用
比如下面这个场景,可以看到大灯是向上照射的,房间中的其他场景几乎都是由光源直接照亮的那一块墙壁反射出去的间接光照亮的。左图尽管每个像素跟踪了32条路径,但是这32条路径最终能成功弹射到光源表面的非常少,甚至是1条都没有,从而出现很多噪点,因为每次弹射都是随机选择1个方向进行下次弹射,光源的角度又比较苛刻,所以成功采样概率小。 右图采用双向路径追踪,对于这种场景就非常适用。
大胆猜测一下BDPT算法的思想:先从光源出发,做一次路径追踪照亮一块场景(这块场景可能是直接光照亮,也可能是弹射1、2次照亮,具体可能要看算法怎么规定)。把这一块场景当做光源,再从摄像机做单向路径追踪,得到渲染结果。合起来就是双向路径追踪
BDPT算法:
这个算法也有缺点,速度很慢
闫老师说:BDPT看似简单,要实现正确是非常难的,如果能实现这个算法,手写一个渲染器都是没问题的。
Metropolis是人名。 他引入马尔可夫链结合蒙特卡洛估计解二重定积分渲染方程。
马尔可夫链蒙特卡洛 (Markov Chain Monte Carlo) (MCMC)
MLT方法的缺点
非常适合渲染焦散(caustics)、Specular-Diffuse-Specular(SDS)路径
光子映射实现方法(很多方法中比较简单的一个):
这种渲染方法,其实就是模糊和噪声之间的平衡
Photon Mapping存在的问题
为什么会有偏差?
渲染中的有偏
VCM算法很复杂,但是想法很简单,就是BDPT结合Photon Mapping,此方法在电影中广泛应用。
有时也叫做many-light approaches
- 动画、电影等等工业界用得最多的还是 path tracing,虽然听上去不高端,但是渲染结果是最可靠的。
- 有的同学可能会问,那这些方法拿来干啥的?其实这些听上去很高端的算法就是学术界的探索、尝试、研究。
外观 = 材质 = BRDF
参与介质:微观散射粒子的集合,也可以叫做散射介质
类似云、雾霾等,显然不是定义在一个表面上的,而是定义在空间中的。
光线(直接or间接)会穿过介质,介质会吸收一定的能量,并且往外随机的朝各个方向散射能量。
定义参与介质以何种方式向外散射的函数叫相位函数Phase Function
参与介质的渲染方式:
其实可以理解成平面材质的渲染,只不过着色点不是击中平面某个点,而是参与介质中随机选择一个点。然后随机选择一个反射方向,随机选择前进多远,再选择某个点,重复进行直到光源,形成一个path。
考虑光线如何跟一根曲线作用
一种比较简单的模型。光线击中细小圆柱,会被反射到一个圆锥形的区域中,同时还会进行镜面反射和漫反射。渲染结果并不真实。
把光线与毛发的作用分为三个部分
他认为人的毛发类似于玻璃圆柱体,而头发最外面是cuticle(表皮),内部有一层cortex(皮质)。
应用
一根毛发不仅要考虑直接光,还要考虑别的毛发反射过来的光线。一条路径可能就要经过几百上千根毛发。所以想要得到很好的渲染结果,计算量要求及其大。
用渲染人的头发的模型去渲染动物的毛发,并不能得到想要的效果,所以需要定义新的方法渲染动物皮毛
人类头发 vs 动物皮毛
某些闫,在Marschner Model 的基础上考虑了髓质,从而提出的模型。
比之前的毛发模型多出了两种作用方式TTs TRTs(加入了髓质对光线的散射作用)
双层圆柱模型因其强大真实的渲染结果,在工业界得到非常广泛的应用
其代表有:猩球崛起、狮子王
计算量非常大,因此并没有广泛应用
次表面散射(Subsurface Scattering):光线从一个点进入材质,在表面的下方(内部)经过多次散射后,从其他一些点射出
BRDF f(ωi, ωo) :入射和出射都是同一个点,BSSRDF :入射和出射是不同的点(SS是次表面散射缩写)
以上计算比较复杂,因此又有一种近似的方法被提出
Dipole Approximation
次表面散模型的渲染结果如下:
看作一个表面,忽略细节进行渲染
看做参与介质进行渲染
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。