zoukankan      html  css  js  c++  java
  • 渲染方程和蒙特卡罗方法(二)

    渲染方程和蒙特卡洛方法(二)

    上一节里,我们大概了解了渲染方程,简而言之,渲染方程就是描述从该点发出的光线的radiance应该是多少,所以有了渲染方程,我们就可以利用它渲染出场景的每一个颜色,且由于渲染方程是基于物理得到的正确的方程,所以我们所得到的图片也是非常真实的。

    但问题是,我们该如何求解渲染方程呢?现在常用的方法就是蒙特卡洛方法

    蒙特卡洛方法,也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。与它对应的是确定性算法。蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。(摘自百度百科)

    这里还涉及到一些概率论的知识,例如概率密度函数,随即变量,样本,期望这里就不再赘述了。我们在这里需要知道的是以某种分布(pdf)通过对函数进行采样,我们就可以估计出积分的值。要时刻记得对谁积分对谁采样

    值得一提的是蒙特卡洛方法是一种无偏的估计方法,也就是E(FN)=E(1Ni=1Nf(Xi)p(Xi))=abf(x)dx,有兴趣的读者不妨自己试着证明一下。

    计算机能实现的最简单的抽样方法自然是均匀抽样(Uniform sampling),所以我们将采取均匀抽样的方法来实现path tracing,这里留一个小坑(思考:我们是否可以不用均匀抽样而使用更加有效的抽样方法?我们在知道抽样方法的pdf后,该如何使用计算机去进行实现?)

    总而言之,我们现在有了渲染方程,有了求解渲染方程的工具,我们是否就可以着手去实现更加真实的光线追踪了呢?答案当然是肯定的。当然具体的实现中,还有这不少的妥协和trick,我们就放到下次的文章再见啦!

    ps:好像这张文章也没有讲什么啊喂!其实实在是个人水平有限,以免误导读者,具体的更加细节的东西和方法,还是希望各位读者能够自己去发掘啦。

  • 相关阅读:
    删DS.Store
    switch 多重选择
    PrintWrite写入文件
    读取文件
    notepad++如何把文件保存为java文件
    让notepad++成为轻量级JAVA的IDE
    Jenkins构建Python项目提示:'python' 不是内部或外部命令,也不是可运行的程序
    相关服务账号
    Jenkins安装与启动
    jmeter安装
  • 原文地址:https://www.cnblogs.com/haiyi/p/12825849.html
Copyright © 2011-2022 走看看