图形学数学基础之基本蒙特卡罗尔积分(Monte Carlo Integration)

2023-10-31

作者:i_dovelemon
日期:2017/07/29
来源:CSDN
主题:Monte Carlo Integration

引言

好久没有写博客了,最近一直在忙于工作,同时GLB库中关于PBR的渲染算法,一直卡住,无法实现下去。不过在这段时间,阅读了大量关于PBR的论文,有了一点心得,所以今天在这里和大家分享下,在准备实现PBR中,所需要准备的一些数学基础知识。

今天要和大家分享的是在解渲染方程中,最常使用的一种数学积分方法-基本蒙特卡罗尔积分,后面会陆陆续续补充一些基于此方法的优化手段。

蒙特卡罗尔积分

假设我们有一个函数 f(x) ,我们无法通过分析的方法直接求出如下的积分:

π0f(x)dx
,那么当我们需要知道该积分的值的时候,又该怎么办了?

聪明的科学家们,想出了一些近似的方法来求出该积分,其中在图形学里面被经常用到的就是蒙特卡罗尔积分。

我们假设,下图就是函数 f(x) [0,π] 上的曲线:

函数f(x)的函数曲线

求这个函数在 [0,π] 上的积分,实际上就是求曲线与x轴在 [0,π] 所围图形的面积,如下图所示:

函数f(x)与x轴围成的面积

由于这个图形是一个不规则的图形,想要简单的求出面积基本不可能。但是我们知道,对于该面积,当我们将
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图形学数学基础之基本蒙特卡罗尔积分(Monte Carlo Integration) 的相关文章

  • 《数字图像处理》学习总结及感悟:第二章数字图像基础(5)数学工具

    前往老猿Python博文目录 https blog csdn net LaoYuanPython 一 引言 本系列文章记录老猿自学冈萨雷斯 数字图像处理 的感悟和总结 不过估计更新会比较慢 白天要工作 都是晚上抽空学习 学习完一章再回头总结
  • 概率-什么是一阶矩,二阶矩?

    根据S M 罗斯的概率论教程 一阶矩指E X 即数列X的均值称为一阶矩 以此类推 E Xn n 1 称为X的 n阶矩 也就是二阶矩 三阶矩 参考 1 图灵数学 统计学丛书08 概率论基础教程 第7版 美S M 罗斯 郑忠国 译 人民邮电出版
  • Unity的C#编程教程_62_语言集成查询 LINQ 详解及应用练习

    文章目录 LINQ Querys 1 Any 2 Contains 3 Distinct 4 Where Challenge Hands on with LINQ LINQ Order by Descending Challenge Fil
  • diffusion models笔记

    ELBO of VDM Understanding 1 中讲 variational diffusion models VDM 的 evidence lower bound ELBO 推导时 53 式有一个容易引起误会的记号
  • Unity的C#编程教程_52_类 Class 详解及应用练习(一)

    文章目录 C Classes for Behaviours Custom Classes 1 Custom Classes 2 Serialized Custom Class RPG Item Database Example 3 When
  • Python 设计真实反弹球算法及原理分析 (使用物理定律)

    文章简单地使用物理定律 编写程序模拟真实世界中的碰撞 在开始正式讲解之前 先看这两个代码 把球掉头 ball speed 0 ball speed 0 ball speed 1 ball speed 1 可以看到 这个代码直接把球的速度反了
  • unity中通过touch旋转、放大和缩小物体以及滑动方向的判断

    unity中通过touch旋转 放大和缩小物体以及滑动方向的判断这个需求在游戏开发中也是非常频繁 话不多说直接上代码 using System Collections using System Collections Generic usi
  • 2的31次方和3的21次方哪个大,123组成最大的数是多少?

    123这三个数字组成最大的数是什么数 面试官告诉小孙 123这三个数字组成最大的数是什么数 我希望你能够在5分钟之内回答出来 小孙当时连想都没有想 123组成的最大数字 当然就是123了 当小孙把这个答案告诉面试官的时候 面试官摇摇头 然后
  • 18. 线性代数 - 线性变换

    文章目录 线性空间 线性变换 线性变换的几何意义 特征值与特征向量 NumPy的矩阵操作 Hi 你好 我是茶桁 经历了几节线性代数课程之后 终于咱们到了最后一节课了 本节课的内容说多不多 说少也不少 我们先是要理解一下线性空间和线性变换 并
  • 防止sigmoid和tanh激活函数溢出的C++实现

    引言 上一期 我们介绍了softmax函数的C 实现 但是考虑到sigmoid和tanh函数也是带 e e e的次幂 所以现在我们来考虑该函数的防止溢出实现 sigmoid函数 原理 该函数的公式为 1 1
  • 【Unity Shader】Shadow Caster、RenderType和_CameraDepthTexture

    当我们制作某些屏幕特效时 需要取到屏幕的深度图或法线图 比如ssao 景深等 另外像是制作软粒子shader 体积雾等也需要取到深度图 以计算深度差等 unity提供了两个内置的纹理 CameraDepthTexture和 CameraDe
  • Phase Sensitive Filter

    复数转换 如下图复数 由于 所以 这个就是复数的三角形式 这里 是模 是辅角 在讨论音频频域 即stft变换后的复数时 分别称为幅值和相位 根据欧拉公式 其中i是虚数符号 可得 这个公式可以方便地把幅值和相位还原回复数 进而做istft 将
  • 【华为OD机试真题 python】数字加减游戏【2022 Q4

    题目描述 数字加减游戏 小明在玩一个数字加减游戏 只使用加法或者减法 将一个数字s变成数字t 在每个回合中 小明可以用当前的数字加上或减去一个数字 现在有两种数字可以用来加减 分别为a b a b 其中b没有使用次数限制 请问小明最少可以用
  • 什么是矩阵的范数

    原文地址 在介绍主题之前 先来谈一个非常重要的数学思维方法 几何方法 在大学之前 我们学习过一次函数 二次函数 三角函数 指数函数 对数函数等 方程则是求函数的零点 到了大学 我们学微积分 复变函数 实变函数 泛函等 我们一直都在学习和研究
  • Matrix calculus(矩阵微积分)(前四节)

    原文地址 https en wikipedia org wiki Matrix calculus 注 不要把它和几何运算或者是向量运算混淆 前言 在数学中 矩阵微积分是进行多变量微积分的一种特殊符号 特别是在矩阵的空间上 它将关于许多变量的
  • openGL之API学习(六十九)水平同步 垂直同步

    垂直和水平是CRT中两个基本的同步信号 水平同步信号决定了CRT画出一条横越屏幕线的时间 垂直同步信号决定了CRT从屏幕顶部画到底部 再返回原始位置的时间 而恰恰是垂直同步代表着CRT显示器的刷新率水平 垂直同步打开 那么在游戏中 或许强劲
  • Game101现代计算机图形学作业1

    Game101现代计算机图形学作业1 一 作业描述 二 解决方法 一 模型变换 二 投影变换 绕任意轴旋转 三 总结 四 参考和引用 一 作业描述 给定三维下三个点 v 0 2 0 0
  • GBA编程和汉化常用软件汇总

    内容来自GBA吧中的痴狂小黑 本人只是做个汇总和搬运 1 简易图片导入导出套装 PicSimpleImEx AutoPicRock Ver1 0 这两个软件是用C 写的 想要用 先装dotNetFx40 Full x86 x64 exe 然
  • Unity 键盘控制人物移动——之输入方式代码的编写

    键盘输入 控制人物移动 在我们制作游戏中最常见的需求之一就是使用键盘移动游戏角色 那么我们首先需要获取键盘输入 以下提供两种方法获取键盘 这里尽量通过截图解释让大家理解代码的含义 GetInput void FixedUpdate Move
  • 高中数学:因式分解(初接高)

    一 乘法公式 二 十字相乘法 例题 三 增添项法 主要解决整式中含高次项的因式分解题 补充 由于数学笔记 用键盘敲实在是麻烦 这里就把我的笔记截图上来了 大家将就看 有看不清楚的地方 可评论 定回复

随机推荐

  • 网络流(最大流)基础入门

    好不容易大概搞懂了网络流 写个博客巩固一下 盗了点图 请图主原谅 定义 网络流与最大流 网络流是指给定一个有向图 和两个点 源点S和汇点T 点之间有连边 每条边有一个容量限制 可以看作水管 网络流就是指由S点流到T点的一个可行流 最大流就是
  • 金蝶生成凭证模板_【干货】金蝶云ERP教你凭证模版的引入引出

    概述 K 3Cloud凭证模版一直反馈比较多的就是希望可以增加模版引入引出的功能 因为在项目实施过程中 上线前的在测试环境配置过的凭证模板 希望通过凭证模版引入功能轻松移植到正式环境 这样可以快速满足客户要求 缩短实施周期 目前K 3Clo
  • 正则表达式匹配邮箱账号

    现在许多网站都采用了通过邮箱账号来注册用户名的方式 一来可以避免重复 而来安全性也得到保证 一举两得 很不错 而最近HCI的官网也要重构了 部门一女生在写注册信息的表单验证的时候遇到了许多问题 其中一个就是邮箱的验证 老实说 一开始俺就觉得
  • 迷宫游戏,测试你适合做的工作

    迷宫的道路是联通的 从起点出发的向各个方向均能到达不同的出口 按照箭头起始方向从起点开始进入迷宫 当遇到岔路口时 按照自己的直觉选择前进的方向 最终抵达迷宫出口 各出口相对应的字母将解释你的性格特点和适合从事的工作 注意了 这里的字母是按照
  • 线程及线程的同步互斥

    目录 1 线程的简单介绍 2 同步互斥的概念 3 为什么要进行线程的同步互斥 4 信号量 5 互斥量 6 条件变量 1 线程的简单介绍 1 进程 在讲到线程之前 我们应该先了解一下进程的概念 进程 Process 是指计算机中已运行的程序
  • FRP内网穿透(linux->windows)

    使用背景 由于内网环境所在的电脑无法通过公网暴露访问 而使用类似于向日葵等其他代理工具 又存在一定的延迟卡顿 因此 决定待用Frp的内网穿透的功能 来实现借由公网服务器代理访问内网所在的电脑 原理 frp 主要由 客户端 frpc 和 服务
  • u盘魔术师给服务器装系统,U盘魔术师怎么装系统 U盘魔术师USM制作PE启动盘方法...

    U盘魔术师是一个很好用的装系统的工具 并且可以利用USM制作PE启动盘 很多用户都不太了解具体的方法 其实也非常的简单 下面小编就来给大家介绍一下U盘魔术师怎么装系统 赶紧来看看吧 U盘魔术师怎么装系统 U盘魔术师体积较大1G多如果是小水管
  • MyBatis学习笔记

    MyBatis MyBatis Mapper代理开发 MyBatis是一款优秀的持久层框架 用于简化JDBC MyBatis 持久层 负责把数据保存到数据库的那一层 JavaEE三层架构 表现层 页面展示 业务层 逻辑处理 持久层 对数据持
  • 在外SSH远程连接macOS服务器【cpolar内网穿透】

    文章目录 前言 1 macOS打开远程登录 2 局域网内测试ssh远程 3 公网ssh远程连接macOS 3 1 macOS安装配置cpolar 3 2 获取ssh隧道公网地址 3 3 测试公网ssh远程连接macOS 4 配置公网固定TC
  • 状态机的置位与复位

    1 状态机的异步置位与复位 异步置位与复位是与时钟无关的 当异步置位与复位到来时它们立即分别置触发器的输出为1或0 不需要等到时钟沿到来才置位或复位 把它们列入always块的事件控制括号内就能触发always块的执行 因此 当它们到来时就
  • Linux设置所有用户环境变量

    Linux中每个用户都要指定各自的环境变量 这样会比较麻烦 那么如何配置一个环境变量 所有的用户都可以使用呢 比如说我想把Linux默认语言由en US UTF 8修改为zh CN UTF 8 那么我需要设置环境变量 LANG 百度很多方法
  • Conda 配置 Python 环境

    文章目录 前言 一 Conda 是什么 二 如何获取 三 使用 Conda 命令配置多环境 1 创建新环境 2 激活新环境 3 配置新环境 4 退出新环境 5 检查所有环境 6 检查所有安装的包 7 删除某环境 8 重命名某环境 四 使用
  • Crontab配置任务定时执行

    一 每奇数周的周一执行 16 0 1 date W 2 eq 1 gt dev null sh data1 test sh 具体地 1 分钟字段 Minute field 16 2 小时字段 Hour field 0 3 日期字段 Day
  • 亚马逊首席技术官Werner Vogels:2023年及未来五大技术趋势预测

    近年来 随着我们经历的数次全球危机 如何借助技术解决人类棘手问题至关重要 如今 我们获取数据的来源比以往任何时候都多 包括可穿戴设备 医疗设备 环境传感器 视频捕获和其他联网设备 当这些数据与计算机视觉 机器学习和模拟仿真等云技术相结合时
  • OpenWrt目录之target

    target目录下主要是和平台有关的代码 最主要的是linux文件夹 linux文件夹的ramips中 ramips应该指的是对应cpu的架构 ramips文件夹下的就是不同系列的cpu对应的芯片的型号 进行试验一下 首先在根目录下运行ma
  • IDEA工具实用开发快捷键

    选中new ArrayList lt gt 或者光标放在new前面 按ctrl alt v 选中new ArrayList lt gt 或者光标放在new后边面 按ctrl alt 空格 ideal 工具没识别maven项目的话 右键pom
  • uni-app开发微信小程序,button通过数组的length判断disabled无效(数组length === 0写法无效)

    错误写法
  • caffe特征提取/C++数据格式转换

    Caffe生成的数据分为2种格式 Lmdb 和 Leveldb 它们都是键 值对 Key Value Pair 嵌入式数据库管理系统编程库 虽然lmdb的内存消耗是leveldb的1 1倍 但是lmdb的速度比leveldb快10 至15
  • 国产操作系统进入被彻底抛弃的时代

    当倪光南正在不断呼喊支持国产操作系统的时候 国产操作系统却迎来了噩梦 国产操作系统接连倒闭 国产操作系统进入一个被国家彻底抛弃的时代 红旗linux梦断国产操作系统 今年2月中科红旗linux因为缺钱倒闭解散了 一直以来做得最好的国产操作系
  • 图形学数学基础之基本蒙特卡罗尔积分(Monte Carlo Integration)

    作者 i dovelemon 日期 2017 07 29 来源 CSDN 主题 Monte Carlo Integration 引言 好久没有写博客了 最近一直在忙于工作 同时GLB库中关于PBR的渲染算法 一直卡住 无法实现下去 不过在这