- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第17章光传输II.
第17章 光传输II : 体渲染SurfaceIntegrator是场景几何、材质、光源、于光传输方程相关的复杂算法、对场景中辐射亮度的分布的确定等等的交会点,同样地,VolumeIntegrator负责将参与介质的效果加入到这个进程之中,并确定它对辐射亮度的分布的影响。这一章主要介绍描述参与介质沿光线方向改变辐射亮度的传输方程 ,并描述VolumeIntegrator的接口极其一些简单的实现。前一章中关于表面上的光传输算法的许多方法可以被扩展开来,对参与介质做相应的处理。17.1 传输方程传输方程是控制介质对光进行吸收、放射、散射等行为的基本方程。它解释了在第12章中介绍的所有的体散射过程--吸收、放射、内散射、外散射,并给出了描述辐射亮度在环境中分布的方程。光传输方程实际上是传输方程的一个特殊形式,只是缺少了参与介质,并只处理表面散射的情况。传输方程的最基本的形式是一个积分-微 分方程,它描述了沿一条光束上的辐射亮度在空间一个点上的变化情况。它可以变换成一个描述源自光线上无限个点的参与介质效果的纯积分方程。我们可以用很直 接的方式得到该方程,即从沿一个光束增加能量的过程(放射,内散射)的效应减去同一个光束上减少能量的过程(吸收,外散射)的效应即可。回忆一下第12.1.4节的源项,它给出了给定点p在特定方向ω上由放射和内散射引起的辐射亮度变化:源项负责说明所有使光线辐射亮度增加的过程。衰减系数σt(p, ω) 负责说明在某点上所有使光线辐射亮度减少的过程,包括吸收和外散射。描述其效应的微分方程是:我们将这两种效应加在一起,就得到沿光线上点p的总体上的辐射亮度微分变化,从而得到传输方程的积分-微分方程:在适当的边界条件下,我们可以将这个方程转换为一个纯积分方程。例如,如果我们假定场景中没有表面,那么光线就没有阻挡,故有无限的长度,传输积分方程就是:其中p= p + tω。这个方程的意义还是很直观的:它是说从给定方向到达一个点的辐射亮度等于从该点出发的光线上所有点对该点的累加辐射亮度。沿光线上每点上到光线原点的辐射亮度增加值要按从原点到该点的总光束透光率的比例减少。如图:在更一般的情况下,如果场景中有反射或放射表面,光线长度就不是无限的,被光线碰到的表面会对其辐射亮度产生影响,使得该点上出离该表面的辐射亮度增加,并致使交点后面的光线上的点对光线原点的辐射亮度没有什么贡献值。如果光线(p,ω)在距离t处跟表面相交于点p0,那么传输积分方程是(17.1):其中p0= p + tω是表面上的点,而p = p + tω是沿光线上的点,如图:这个方程描述了沿光线的辐射亮度的两个贡献值:第一项是沿光线从表面上反射回来的辐射亮度,由Lo项给出,它包括表面上的放射辐射亮度和反射辐射亮度。这个辐射亮度可以被参与介质所衰减。第二项代表了由于体积散射和放射所产生的增加出来的辐射亮度,但到光线和表面的交点为止,过了这个交点对辐射亮度就没有什么影响了。为了简明起见,这里不再过多地讨论传输方程。然而,就像光传输方程可以写成不同路径的累加和并引入重要性函数,我们也可以对传输方程做如此处理。这里只列出几个VolumeIntegrator的实现,其它诸如路径追踪、双向路径追踪、光子映射等等用于表面积分的算法也可以应用于体积分。17.2 体积分器接口VolumeIntegrator接口继承于Interator,将其中的Preprocess()、RequestSample()和Li()函数包括进来。体积分器的前两个函数的用法跟表面积分器的用法相同。Li()函数跟表面积分器的版本相似,都返回沿给定光线的辐射亮度,而体积分器应该假定光线已经跟场景中几何体相交,如果光线确实跟某个表面相交,Ray::maxt要设置成交点。这样,体积分器应该只计算参数范围[mint,maxt]中的体积散射效果。VolumeIntegrator接口还增加了一个函数,Transmittance(),它负责计算从Ray::mint到Ray::maxt的光线上的光束透光率。Volume Scattering Declarations += classVolumeIntegrator : public Integrator { public:?virtualSpectrum Transmittance(const Scene *scene,?constRay ray, const Sample *sample, ?float*alpha) const = 0; };有了这个背景知识之后,我们就可以完全理解Scene::Li()函数了。它是对方程17.1的一个直接的实现。表面积分器计算在光线交点处的出射辐射亮度Lo,忽略了到光线原点的衰减效应。体积分器的Transmittance()函数计算到表面上点的
您可能关注的文档
最近下载
- 2024-2025学年北京顺义区九年级初三(上)期末数学试卷(含答案).pdf
- T∕CSEM 0024-2024 智慧消防 火灾防控系统建设要求.pdf
- 苏轼《蝶恋花 春景》古诗词PPT.pptx
- 新版人教版高中英语选修三、选修四词汇表(带音标).docx
- 《急诊预检分诊》课件.ppt VIP
- 房屋抵还欠款合同协议书范本模板 .pdf VIP
- 高中语文 2023-2024学年北京市石景山区高一(上)期末语文试卷完整版720979162.pdf VIP
- 全国职业大赛(中职)ZZ036新能源汽车维修赛项赛题库共计10套.pdf
- 【新高考读后续写】系列研讨Continuation Writing 课件(5个).pptx
- 浪潮英信服务器 NF5280M5 用户手册 V1.0.pdf VIP
文档评论(0)