An Efficient Representation for Irradiance Environment Maps论文阅读笔记

本文主要是介绍An Efficient Representation for Irradiance Environment Maps论文阅读笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

An Efficient Representation for Irradiance Environment Maps

看这篇文章是因为用到了颜色相似度比较的技术,但是这个方法太过复杂,还是考虑其他方法吧。

摘要:在这里插入图片描述

  • 我们考虑在远距离照明下的漫射物体的渲染,如环境图所指定的。 利用照明球谐系数对辐照度的解析表达式,我们发现只需要计算和使用9个系数,对应于照明的最低频率模式,才能达到平均误差仅为1%。 换句话说,辐照度对照明中的高频不敏感,并且只使用9个参数很好地近似。 事实上,我们证明了在表面法线的笛卡尔分量中,辐照度可以简单地表示为二次多项式,并给出了显式公式。 这些观察导致了一种简单而有效的过程渲染算法,适合于硬件实现,一种比以前的技术快三个数量级的预滤波方法,以及照明设计和基于图像的渲染的新表示。

引言

  • 大多数真实场景中的照明是复杂的,来自各种来源,包括区域灯和大型连续照明分布,如天窗。 但目前的图形硬件只支持点光源或方向光源。 一个原因是缺乏一般照明分布的简单程序公式。 相反,必须对每个像素进行上半球的集成。
  • 使用一般照明分布的一种方法是环境图的方法。 环境图是一个点的入射光照的表示。 布林和纽厄尔[3]利用它们有效地找到遥远物体的反射。 米勒和霍夫曼[14],格林[8]预先过滤的环境地图,预先计算单独的反射地图的扩散和镜面成分的BRDF。 Cabral等人。 [5]通过使用一组2D预渲染图像来处理一般的BRDF。 预过滤通常是一个离线的,计算昂贵的过程。 在预滤波之后,渲染通常可以使用纹理映射的图形硬件以交互速率进行。
  • 本文重点研究了BRDF的朗伯天分量。 我们使用术语辐照度环境图来表示由表面法线索引的漫反射图,因为每个像素只存储表面特定方向的辐照度。 对于像游戏这样的应用,辐照度图通常直接存储在表面,而不是作为法向量的函数,被称为光地图。辐照环境图也可以通过计算辐照度体积扩展到空间变化的光照,如Greger等人所做的那样。 [9]。 许多相同的想法可以应用于加速全局照明算法。 辐照度性质的缓慢变化导致了Ward和Heckbert[18]提出了使用辐照度梯度的插值,而Wilkie等人提出了将辐照度作为表面取向函数存储在取向光图中的想法。 [19]。
  • 我们的方法的关键是快速计算对辐照度环境图的解析近似。 对于渲染,我们演示了一种简单的过程算法,它以交互式帧速率运行,并且易于硬件实现。 在某些应用中,过程方法优于纹理映射。 由于辐照度随取向变化缓慢,因此只需计算每顶点,并在三角形之间插值。 此外,我们只需要一个单一的纹理通行证来渲染纹理物体与辐照度环境地图,因为辐照度是程序计算。 另一方面,标准方法需要单独的辐照度纹理,需要多纹理支持或多纹理传递。 在其他应用中,当每幅纹理映射相对便宜时,我们的方法可以非常有效地计算辐照度环境映射纹理。 我们的新表示也提出了照明设计和基于图像的渲染的新方法。

背景

  • 从经验上讲,众所周知,漫射表面的反射强度随表面取向的变化而缓慢变化。 这种定性观测被用来证明在低分辨率[14]下表示辐照度环境图是合理的,并有效地计算层次[11,12]的阴影。 我们的目标是使用辐照度的解析定量公式来形式化这些观测,并允许有原则的近似。
  • 设L表示远处照明分布。 与环境映射算法一样,我们忽略了投影和近场光照的影响。 辐照度E是表面法线n的函数,由上半球Ω(N)上的积分给出)。
  • 在这里插入图片描述
  • 注意n和ω是单位方向向量,所以E和L可以通过单位球面上的方向(θ,φ)参数化。 我们必须通过表面反照率ρ来缩放E,它可能依赖于位置p,并且用纹理来描述,以找到辐射度B,它直接对应于图像强度。
    在这里插入图片描述
  • 我们主要关心的是近似E。我们[16]能够导出辐照度的解析式。 Basri和Jacobs[2]在同时进行人脸识别方面的工作中独立地获得了类似的结果。 我们最初的动机是研究一个反向渲染问题-从朗伯天表面的观测中估计照明,即从辐照度来看。 在本文中,我们将把公式应用于一个正向渲染问题-用环境映射渲染扩散对象。 我们的公式是球谐[4,13,17]系数。 球面谐波Ylm,其中l≥0,−l≤m,l是球面上与傅立叶基在直线或圆上的模拟。 前9次球面谐波(l≤2)是笛卡尔分量(x,y,z)的常数(l=0)、线性(l,1)和二次(l=2)多项式)。 并由数值给出:
    在这里插入图片描述
  • 请注意,这些基函数与Arvo[1]在其辐照度张量公式中使用的球面多项式密切相关。 E(θ,φ)和L(θ,φ)可以用它们的球面谐波展开中的系数Elm和Llm来表示。
    在这里插入图片描述
  • 我们还用系数Al定义了A=(n·ω。 由于A没有方位依赖关系,m=0,我们只使用l指数。
    在这里插入图片描述
    在这里插入图片描述
  • 近似:对于渲染,关键的观察是Aˆl衰减如此之快,我们只需要考虑低频照明系数,阶为l≤2。 等效地,辐照度只被9个参数很好地近似-1对于l=0,m=0,3对于l=1,−1≤m1,5对于l=2,−2≤m2。 通过在频率空间中的工作,我们利用A=(n·ω)的低频特性,使用几个系数代替全半球积分。 方程3给出了前9次球面谐波的简单形式,使实现变得简单明了。

3算法和结果

  • 在本节中,我们将讨论这个结果的三个应用。 首先,我们展示了如何快速预滤光分布,计算系数Llm。 接下来,我们开发了一个简单的实时过程着色器,用于渲染,以这些系数作为输入。 最后,我们讨论了我们的表示的其他应用。

3.1 Prefiltering

  • 对于给定的环境图,我们首先通过对球面谐波基函数的积分,找到了l≤2的9个照明系数Llm。 每个颜色通道被单独处理,因此系数可以被认为是RGB值。
    在这里插入图片描述
  • 方程3中给出了Ylm的表达式。 积分只是环境映射L中像素的简单和,由函数Ylm加权。 积分也可以看作是照明的时刻,也可以看作是函数L和Ylm的内部产物。
  • 由于我们计算9个数字,预滤波步骤需要O(9S)时间,其中S是环境映射的大小(像素总数。 通过比较,计算辐照度环境图纹理的标准方法需要O(T·S)时间,其中T是辐照度环境图中的纹理数。 因此,我们的方法将大约快T/9倍。 即使传统的辐照度环境图以非常低的分辨率计算,即64×64,对应于T=4096,我们的方法也会快近500倍。
  • 我们已经实现了预滤波作为给定环境映射的预处理步骤。 图2列出了几个光探针的Llm值。 一个300x300环境图的计算时间小于一秒。 这表明,我们的方法可能能够处理场景与动态照明在未来。 相比之下,对每个像素执行半球积分来计算辐照度环境图的标准方法大约需要两个小时。 实际上,如果需要明确表示辐照度环境图纹理,我们相信计算它的最好方法是首先使用我们的方法计算9个系数Llm,然后使用下面描述的渲染方法快速生成辐照度环境图。
  • 重要的是要知道我们的9个参数近似会产生什么误差。 任何像素的最大误差,作为照明总强度的一部分,为9%,对应于A(θ)的2阶近似下的最大误差)。 此外,对于任何物理输入照明分布[2],所有表面取向的平均误差都可以显示在3%以下。 对于我们示例中使用的环境映射,对应于复杂的自然光照,结果比最坏情况下的界限要好一些-平均误差在1%以下,最大像素误差在5%以下%。 最后,图3提供了我们的结果质量与标准预滤波的视觉比较,表明我们的方法产生了一个感知准确的答案。

3.2 Rendering

  • 对于渲染,我们可以使用方程7找到辐照度。 由于我们只考虑l≤2,所以辐照度只是(归一化)表面法线坐标的二次多项式。 因此,使用NT=(xyz1),我们可以编写

总结

  • 我们描述了一种用于呈现扩散对象的环境映射的新的解析表示,并给出了实现的显式公式。 我们的方法允许我们对BRDF的漫射组件使用任意的照明分布,而不是当前图形硬件对点或方向源的限制。 我们简单地指定或计算照明的前9个时刻。 即使需要更传统的纹理映射方法,我们的方法也允许我们非常有效地计算辐照度环境映射纹理。 在未来,我们希望为镜面BRDF组件开发类似的频率空间方法,以及更一般的非兰伯BRDF。 我们还想进一步探索在照明设计和基于图像的渲染上面讨论的应用。

这篇关于An Efficient Representation for Irradiance Environment Maps论文阅读笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓