Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >渲染方程(2):VRE

渲染方程(2):VRE

作者头像
Peter Lu
发布于 2021-10-18 10:07:28
发布于 2021-10-18 10:07:28
1.1K0
举报
文章被收录于专栏:LETLET

在光线传输中,光子的碰撞导致了光线能量的变化,这主要有两种情况,情况a:传输过程中光子和粒子的碰撞;情况b:光子和物体表面的碰撞。前一篇我们讲了如何通过radiance描述一条光线携带的能量,本篇主要解释这些碰撞引起的光线状态变化,以及如何计算radiance在这个过程中的变化。

BRDF

我们假设真空环境,因此只需要考虑情况b。光线和物体表面碰撞时,会有漫反射,镜面反射(不考虑折射),同时一部分能量也会转换为热能。如上图,在这个过程中,我们可以理解为来自方向

的光线(radiance),打到物体表面的某一个微表面

,能量被该表面吸收后又以方向

发射出一条光线(radiance)。这里,这个微表面

接收到来自

方向的光线的能量,对应radiance和irradiance的转换:

而从该微表面

方向射出的光线的能量,则记为

(相对于

)。

这里会引入一个函数BRDF,用来定义微表面

接收到的来自

的irradiance和发射到

的radiance之间的比例:

RE

BRDF决定了物体和光之间的相互作用,最终对应的就是我们常说的材质模型BRDFs。通过BRDF,既然我们能够计算从一个角度

的入射光对反射光的贡献

,我们也可以计算从任意角度的入射光对反射光的贡献,如上图,对

做一个半球积分:

这里,

是入射光的radiance,红色为其相对于

点微表面的irradiance,经过

转为反射光的radiance,对这个过程做一个半球积分,则可以得到反射光

的radiance。假如该点可以自发光,我们考虑其emission在

方向的贡献

,这就是大名鼎鼎的rendering equation(RE):

需要额外考虑两点:第一点,

没有本质区别,都是空间中的一条射线,相对于p点的反射光就是下一光路的入射光,区别仅仅是方向。因此,从线性代数上,如上的积分存在这样的线性关系:

这里,揭示了光路贡献的来源:红色的自发光(从光源直接打到相机,光路长度1),绿色是直接光照(光源打到物体表面然后直接打到相机,光路长度2),橙色则是间接光照(经过2+反弹后打到相机,光路长度3+)。

通常,rasterization渲染管线能够高效且简单的考虑前两部分的贡献,而光线追踪可以做到考虑所有光路的贡献:global illumination = direct illumination + indirect illumination。下图可以看到direct和indirect各自的贡献(从光源出发或从相机出发的光路贡献的不同)。

VRE

接着,我们在考虑情况a,非真空下,光线传输过程中的碰撞。在这个过程中,主要有四种情况:

  • Absorption:光子和粒子碰撞后能量转化为粒子的内部能量,能量减少,我们定义

,描述该光子被吸收的概率

  • Scattering:光子碰撞后方向发生变化,分为out和in两种情况,前者导致能量的减少,后者导致能量增强,我们定义

,描述该光子发生scattering的概率

  • Emission:遇到会发光的粒子,能量增强

因此,最终radiance的变化等于上述三种情况之和,我们称其为radiative transfer equation(RTE):

这里,

,是absorption和out-scattering之和,称为extinction。

这个是积分微分方程,如上图,在

的光路中,每一个点都有一定概率发生如上的碰撞,我们取

,公式1左边是指radiance在

方向的变化,对两边求积分。这里,我们记Transmittance:

表示

之间的变化距离,等式1两边乘以

已知:

(2)式代入(3)式:

对于红色部分,我们可得:

这样,红色和蓝色部分抵消后,我们计算

,也就是从

的距离:

是,

,这样,我们通过RTE获取了volume rendering equation(VRE),公式(5)可得:

这里,

表示来自物体表面

的radiance,我们将其用rendering equation来表示,得到渲染方程的一般形式:

至此,我们推导出了渲染方程的一般解,基于这个公式,我们就可以获取任意场景下物理正确的渲染解。我愿称其为我心中的最美方程。但我想我还是不会纹在身上,我怕疼,公式太长了,忍不了。不清楚为何word的公式上传到微信公众号为何压缩的这么模糊,记得第一次时没有这个问题的。

参考资料

P14~P15 Games101

Path tracing in Production Siggraph 2019

light transport, Advanced Graphics, GMT, Utrecht University

PBR book

Production Volume Rendering SIGGRAPH 2017

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 LET 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【GAMES101】Lecture 18 高级外观建模
参与介质或者说散射介质,是指光线穿过这个介质时会被吸收和被散射,像这个云、雾、烟……
叶茂林
2024/02/08
1560
【GAMES101】Lecture 18 高级外观建模
【GAMES101】Lecture 15 全局光照
本节继承上一节的难度并继续加深,讲这个BRDF,然后理解反射方程和渲染方程,最终实现全局光照,以下内容很抽象……如果想要深入理解建议到隔壁基于物理着色:BRDF - 知乎 (zhihu.com)或者多看几遍视频,我也是回头看了第二次才透彻,比较重要的是上一节的物理概念要搞明白
叶茂林
2024/02/05
1820
【GAMES101】Lecture 15 全局光照
【笔记】《计算机图形学》(18)——光
辐射学, 描述和研究辐射现象运作的学科, 图形学需要用到其描述光线传播的部分. 下面是需要用到的光的一些属性:
ZifengHuang
2021/12/08
1.1K0
【笔记】《计算机图形学》(18)——光
渲染方程(1):Radiometry
光线的反射,实质是光子在传输过程中的能量转换,传统的Blinn-Phong模型仅仅模拟了这个过程,渲染方程则通过数学模型量化这个反射过程,从而获取基于物理正确的渲染结果。要想理解该方程,则需要具备辐射度量学(Radiometry)的基本知识。
Peter Lu
2021/10/18
8100
渲染方程(1):Radiometry
深入理解渲染方程
在图形学入门(三):基础着色中,我们讨论了 Phong 反射模型,当时我们提到过 Phong 反射模型不是一个物理模型,而是一个经验模型,这意味着这个模型对光照效果的模拟是不准确的。即便在简单情况下它能近似出一些不错的效果,但随着场景的复杂度提升(例如复杂的光照、复杂的材质等),要想继续用 Phong 反射模型达到很强的真实感就变得越来越困难。例如下面的这幅图1中,士兵和长官的铠甲上都投影出了电梯里非常复杂的灯光,在后面的长官的铠甲上还能看到前面两个士兵的投影:
zhiruili
2021/08/10
2.1K0
深入理解渲染方程
light transport小结
,今天我们把重点放在这个积分上,也就是整个光路(light transport)。
Peter Lu
2020/12/17
9140
light transport小结
激光三角测距原理概述
激光三角测距法作为低成本的激光雷达设计方案,可获得高精度、高性价比的应用效果,并成为室内服务机器人导航的首选方案,本文将对激光雷达核心组件进行介绍并重点阐述基于激光三角测距法的激光雷达原理。
全栈程序员站长
2022/08/22
1.1K0
激光三角测距原理概述
什么是真实感渲染(二):真实感渲染技术
上一篇从渲染史的角度,通过栅格化和光线追踪两个渲染技术,给出了真实感渲染的三个标准:照片级别,物理正确和高性能。本篇是系列二,从技术角度介绍当前真实感渲染。
Peter Lu
2022/05/17
1.9K0
什么是真实感渲染(二):真实感渲染技术
Unity通用渲染管线(URP)系列(三)——方向光(Direct Illumination)
如果要创建一个更加真实的场景,我们就需要模拟光和物体表面的交互。这比我们之前制作的不受光的着色器要复杂的多。
放牛的星星
2020/12/11
5.9K0
Unity通用渲染管线(URP)系列(三)——方向光(Direct Illumination)
UMCM 2002-A(车灯光源投影区域的绘制)
安装在汽车头部的车灯的形状为一旋转抛物面,车灯的对称轴水平地指向正前方,其开口半径为36mm,深度为21.6mm。经过车灯的焦点,在与对称轴相垂直的水平方向,对称地放置一定长度的均匀分布的线光源。要求在某一设计规范标准下确定线光源的长度。
云深无际
2020/09/03
7500
UMCM 2002-A(车灯光源投影区域的绘制)
【笔记】《计算机图形学》(13)——更多光线追踪
本章是前面第四章光线追踪内容的扩展内容,内容比较少,字数4.4k,补充了一些实现光线追踪中常用的更进一步的技术,包括对透明物体的渲染,实例化技术在光线追踪中的应用,如何在光线追踪中渲染构造实体几何(CSG)和利用分布式光线追踪可以达到的很多华丽的效果。
ZifengHuang
2021/02/04
2.1K0
ISUX译文 | The PBR Guide 基于物理的渲染指引(上)
腾讯ISUX isux.tencent.com 社交用户体验设计 《The PBR Guide》是由Substance by Adobe,Demo Artist Team负责人Wes McDermott主笔,并由3D领域各路专家共同编制的PBR指引手册。本书分为“物理现象浅析”及“材质制作指南”两大部分,从理论到实践,深度解析PBR工作流。 近日在研究3D-TO-H5工作流及学习PBR的过程中,发现Substance官方新版的《The PBR Guide》尚未有完整的中文翻译,所以把心一横,
腾讯ISUX
2020/01/13
1.8K0
ISUX译文 | The PBR Guide 基于物理的渲染指引(上)
计算机图形学整理
光在每个波长上的能量有多大,就得到了上图中的一条曲线,这个曲线就是谱分布。我们可以用这条曲线来刻画一些特有的光。
算法之名
2023/03/31
7540
计算机图形学整理
只要算法够厉害,白墙能当镜子用:我初中物理都白学了 | Nature新论文
一篇新论文登上了Nature,论文中显示,仅仅用一台普通的数码相机,仅仅凭借墙上模糊不清的光影,就能还原最初的画面。
量子位
2019/04/24
6080
只要算法够厉害,白墙能当镜子用:我初中物理都白学了 | Nature新论文
六问Nerf | 简单易懂的神经辐射场入门介绍
最近零散时间,翻了一批讲Nerf原理的CSDN/知乎/B站文章和视频,有些讲的还是不错的,但是有些实在是让人感觉,作者本身就没搞懂啥是神经辐射场。所以本文使用自问自答的方式,尝试直击要害的讲清楚Nerf是干什么的。
一点人工一点智能
2023/01/15
5.5K0
六问Nerf | 简单易懂的神经辐射场入门介绍
WebGL简易教程(十):光照
在上一篇教程《WebGL简易教程(九):综合实例:地形的绘制》中,实现了对一个地形场景的渲染。在这篇教程中,就给这个地形场景加上光照,让其更加真实,立体感更强。
charlee44
2019/10/15
1.3K2
WebGL简易教程(十):光照
光线追踪介绍
摘要 图像渲染就是一个这样的过程,输入一组物体,输出一个像素矩阵。把这个像素矩阵输送给显卡,显示器上就可以显示出来图像。本篇介绍下这个过程用到的算法,就是光线追踪。
一只小虾米
2022/10/25
1.1K0
光线追踪介绍
图形学入门(三):基础着色
在掌握了上一篇文章的知识之后,我们现在可以通过逐个绘制三角形面组合出一个模型了。但是我们现在绘制出来的结果看起来是一个色块,效果不太自然。在现实中,我们看到物体是因为这个物体反射了光线,而在这个过程中,根据物体形状以及与光线的相对位置关系,物体的表面总会呈现不同的明暗效果。这种明暗的变化使我们感觉这个物体是「立体的」。也就是说,我们更希望看到下图1中右侧的渲染效果而非左侧的渲染效果:
zhiruili
2021/08/10
1.6K0
图形学入门(三):基础着色
Photometric Stereo 光度立体法三维重建
光度立体法,即Photometric Stereo, 最早是由当时在MIT的人工智能实验室的Robert J. Woodham教授在1978年左右提出。他在1979年的论文《Photometric stereo: A reflectance map technique for determining surface orientation from image intensity》,以及1980年的论文《Photometric Method for Determining Surface Orientation from Multiple Images》中比较系统的阐述了整套理论框架。
为为为什么
2022/08/09
3.1K0
Photometric Stereo 光度立体法三维重建
相关推荐
【GAMES101】Lecture 18 高级外观建模
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档