当前位置:   article > 正文

GAMES101 蒙特卡洛光线追踪

games101

前言

本篇博客作为Games101关于Ray Tracing部分的复习总结。

蒙特卡洛积分

在此之前先复习一下概率密度函数(PDF, Probability Density Functions),可以理解为取某一随机变量x的概率是多少的函数 p ( x ) p(x) p(x)

image-20220723181332180

PDF具有如下特点

  • $ p(x) >= 0 \ and \int{p(x)}=1$
  • E [ X ] = ∫ x p ( x ) d x E[X]=\int{xp(x)}dx E[X]=xp(x)dx

对于复杂函数 f ( x ) f(x) f(x)求定积分,用牛顿莱布尼茨公式十分困难,这时候需要用到另一种积分方法,也就是下面的蒙特卡洛积分(Monte Carlo Integration)
∫ f ( x ) d x = 1 N ∑ i = 1 N f ( X i ) p ( X i )         X i ∼ p ( x ) \int{f(x)}dx = \frac{1}{N}\sum_{i=1}^{N}{\frac{f(X_i)}{p(X_i)}}\ \ \ \ \ \ \ X_i \sim p(x) f(x)dx=N1i=1Np(Xi)f(Xi)       Xip(x)

这里的做法可以理解为按 p ( x ) p(x) p(x)的概率取随机变量 X i X_i Xi,在图形学里也就是随机采样函数值再累加做平均。

一些需要注意的地方:

  • 采样点N越多,方差越小
  • 在x上采样,也是在x上求积分

路径追踪

路径追踪(Path Tracing)根据渲染方程实现全局光照,或者说基于物理的渲染。个人理解叫追踪的原因是因为光线本来是打到物体上再多次弹射到人眼所以人才能看见东西,追踪就是逆着这个路径,从眼睛“射出”光线,“所见即所得”。

Whitted-Style光线追踪的局限性

Whitted-style ray tracing是一种理想化模型,存在一些问题,光线只有反射或折射,在漫反射材质停止弹射,没有漫反射,因此Whitted-style ray tracing渲染出来的效果只有光源和直接光照,如下图左侧所示。我们理应看到的效果是下图右侧这种,就像是照片拍出来的一样,需要实现这样真实的效果就需要用到路径追踪。

image-20220723180412833

渲染方程

根据辐射度量学,我们一通操作最终求得渲染方程,即在物理意义上得出的正确的能够描述我们现实生活所见的方程。
L o ( p , ω o ) = L e ( p , ω o ) + ∫ Ω L i ( p , ω i ) f r ( p , ω i , ω o ) , ( n ⋅ ω i ) d ω i L_o(p,\omega_o)=L_e(p,\omega_o)+\int_{\Omega}L_i(p,\omega_i)f_r(p,\omega_i,\omega_o),(n\cdot\omega_i)d\omega_i Lo(p,ωo)=Le(p,ωo)+ΩLi(p,ωi)fr(p,ωi,ωo),(nωi)dωi

某着色点到相机的radiance由其本身发光产生的部分,和从所有立体角接受到的radiance并反射到相机这个一定角度的部分组成。

为了方便计算和统一,这里将着色点本身产生的 L e ( p , ω o ) L_e(p,\omega_o) Le

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号