蒙特卡洛光线追踪 (准)蒙特卡洛积分 基础知识二

2024-04-07 20:48

本文主要是介绍蒙特卡洛光线追踪 (准)蒙特卡洛积分 基础知识二,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

蒙特卡洛光线追踪技术系列 见 蒙特卡洛光线追踪技术

估计方法:

许多问题涉及独立随机变量xi的和,其中变量共享一个公共密度p。这些变量被称为独立同分布(iid)随机变量。当和除以变量数时,我们得到E(x)的估计:

随着N的增加,这个估计的方差减小。我们希望N足够大,我们有信心估计“足够接近”。然而,在蒙特卡罗中并没有确定的东西;我们只是得到统计上的信心,我们的估计是好的。可以肯定的是,我们必须有n=∞。这种信心是用大数定律表示的:

蒙特卡洛积分:

在这一节中,我们概述了定积分的基本蒙特卡罗解方法。然后这些技术直接应用于某些积分问题。本节的所有基本材料也包含在一些经典的蒙特卡罗文本中。这一部分的不同之处在于,它针对的是计算机图形学中出现的各种问题。对蒙特卡罗技术有兴趣的读者应该参考经典的蒙特卡罗文本之一[27,72,26,98]。

如前所述,给定一个函数f:S→R和一个随机变量x∼p,我们可以用和来近似f(x)的期望值:

  方程A

因为期望值可以表示为积分,所以积分也可以用和来近似。上面的方程的形式有点笨拙;我们通常希望近似于单个函数g的积分,而不是乘积fp。我们可以通过将g=fp替换为被积函数来解决这个问题:

 方程B

为了得到一个好的估计,我们需要尽可能多的样本,我们希望g/p有一个低方差(g和p应该有一个相似的形状)。智能地选择p称为重要抽样因为如果p大,而g大,则在重要区域将有更多的样本。方程A也显示了蒙特卡罗积分的基本问题:收益递减。由于估计值的方差与1/N成正比,标准差与1/√N成正比。由于估计值中的误差与标准差的行为类似,我们需要将N乘以4才能将误差减半。

另一种减少方差的方法是将积分域S划分为几个较小的Si域,并将积分作为Si上的积分之和来计算。这叫做分层抽样。通常每个Si中只取一个样本(密度pi),在这种情况下,估计值的方差为:

可以看出,如果所有层的测量值相等,分层抽样的方差永远不会高于非分层抽样的方差

图形学中分层采样的最常见示例是像素采样的抖动。

由这个表,我们可以看出,通过分层采样,我们可以用比较少的采样个数让标准差得到较小的值。

作为区间(0,4)上积分I,设g(x)为x的蒙特卡罗解的一个例子:

函数p的形状对N个样本估计的方差的巨大影响如上表所示。请注意,当p的形状与g的形状相似时,方差会减小。如果p=g/I,方差会降至零,但我们通常不知道,或者我们不必求助于蒙特卡罗。表所示的一个重要原则是,分层抽样往往远远优于重要抽样。虽然这种分层在I上的方差与样本数的立方成反比,但分层下的方差行为没有一般的结果。有些功能是分层不好的。一个例子是白噪声函数,其中所有区域的方差都是常数。另一方面,大多数函数将受益于分层抽样,因为每个子单元的方差通常小于整个域的方差

总之要记住:分层抽样的效果会比较好。

准蒙特卡罗积分

尽管分布光线追踪通常被描述为方程B的应用,但许多研究者用更均匀分布(类星体)的样品(如[13,53])代替了ζi。这种方法可以被证明是正确的,通过分析减少误差的一些差异措施[99,97,53,67]而不是在方差方面。然而,通常使用随机样本的方差分析来制定采样策略,然后在实现中使用非随机、但均匀分布的样本。这种方法几乎可以肯定是正确的,但其理由和含义尚待解释。例如,当对[0,1]上的一维积分求值时,我们可以使用[0,1]上的一组N个均匀随机采样点(x1,x2,···,xN)来获得近似值:

有趣的是,我们可以用一组非随机点(y1,y2,···,yN)替换这些点(x1,x2,···,xN),近似仍然有效。如果这些点太规则,那么我们会产生混叠,但是这些点之间的相关性(例如,使用一维Poisson盘采样)不会使估计无效(仅使用Monte Carlo参数来证明近似值是正确的)。在某种意义上,这种准蒙特卡罗方法可以被认为是使用等分布点来估计 f 的高度。这与大多数数值分析文本中的传统数值积分求积方法(因为这些文本专注于一维问题)不符,但一旦你习惯了这个想法,你的直觉就不会变差。

Monte Carlo相对于QMC(准蒙特卡洛算法)在图形方面的相对优势仍然是一个悬而未决的问题。在某些条件下,QMC确实有更好的收敛性,但这些条件在图形中往往不成立。此外,在实践中很少有足够的样本用于渐近分析。为了使问题进一步复杂化,QMC有时会产生别名。然而,这种混叠有时在视觉上并不令人反感,因为它通常比传统蒙特卡罗方法产生的噪声要好。有关此主题的更多信息,请参阅Alexander Keller最近的工作。

这篇关于蒙特卡洛光线追踪 (准)蒙特卡洛积分 基础知识二的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/883638

相关文章

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

计组基础知识

操作系统的特征 并发共享虚拟异步 操作系统的功能 1、资源分配,资源回收硬件资源 CPU、内存、硬盘、I/O设备。2、为应⽤程序提供服务操作系统将硬件资源的操作封装起来,提供相对统⼀的接⼝(系统调⽤)供开发者调⽤。3、管理应⽤程序即控制进程的⽣命周期:进程开始时的环境配置和资源分配、进程结束后的资源回收、进程调度等。4、操作系统内核的功能(1)进程调度能⼒: 管理进程、线

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

微积分-积分应用5.4(功)

术语“功”在日常语言中用来表示完成一项任务所需的总努力量。在物理学中,它有一个依赖于“力”概念的技术含义。直观上,你可以将力理解为对物体的推或拉——例如,一个书本在桌面上的水平推动,或者地球对球的向下拉力。一般来说,如果一个物体沿着一条直线运动,位置函数为 s ( t ) s(t) s(t),那么物体上的力 F F F(与运动方向相同)由牛顿第二运动定律给出,等于物体的质量 m m m 与其

关于回调函数和钩子函数基础知识的整理

回调函数:Callback Function 什么是回调函数? 首先做一个形象的比喻:   你有一个任务,但是有一部分你不会做,或者说不愿做,所以我来帮你做这部分,你做你其它的任务工作或者等着我的消息,但是当我完成的时候我要通知你我做好了,你可以用了,我怎么通知你呢?你给我一部手机,让我做完后给你打电话,我就打给你了,你拿到我的成果加到你的工作中,继续完成其它的工作.这就叫回叫,手机

有关机械硬盘的基础知识

1,机械硬盘的品牌   目前市场中常见的笔记本电脑的机械硬盘品牌主要有希捷、西部数据、三星等。   2,机械硬盘的容量   硬盘容量,即硬盘所能存储的最大数据量。虽然笔记本电脑硬盘的容量会因单位密度的提升而增加,不过和台式电脑的大容量比起来,笔记本电脑硬盘的容量仍然落后许多。笔记本电脑的硬盘除了对磁盘有体积较小和数量较少的要求之外,对功耗、耐用程度、抗震性及成本等的考虑,也让笔记

OpenGL ES学习总结:基础知识简介

什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。 为桌面版本OpenGL 的一个子集。 OpenGL ES管道(Pipeline) OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工

计算机基础知识复习9.6

点对点链路:两个相邻节点通过一个链路相连,没有第三者 应用:PPP协议,常用于广域网 广播式链路:所有主机共享通信介质 应用:早期的总线以太网,无线局域网,常用于局域网 典型拓扑结构:总线型 星型(逻辑总线型) 介质访问控制  静态划分信道 信道划分介质访问控制 频分多路复用FDM 时分多路复用TDM 波分多路复用WDM 码分多路复用CDM 动态分配信道 轮询访问介质访问控

Gitflow基础知识

0.理想状态 现状 听完后的理想状态 没使用过 git 知道 git 是什么,会用 git 基础流程命令 用过 git,但只通过图形化界面操作 脱离图形化界面操作,通过 git 命令操作 会 git 命令 掌握 gitflow 规范,合理使用 rebase 和解决代码冲突问题 1.Git 的基础流程&命令 1.1 基础概念 工作区:代码生产基地,pycharm