0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

递归性质和大数目追踪光线解决方案

Dbwd_Imgtec 来源:互联网 作者:佚名 2018-04-13 09:10 次阅读

问题:

1、性能

算法的递归性质和大数目的追踪光线,渲染过程可能持续数小时。80-90%的渲染时间花费在计算光线和物体交点上。

2、走样

3、尖锐的阴影

基本的光线追踪算法只能得到尖锐的阴影(因为模拟的是点光源)。

4、局部光照和着色

算法只追踪少数目的光线,只有四种类型的光线被考虑在内,物体之间的漫反射光没有被考虑在内,即算法并不包括全局光照。

解决方案:

1、性能

  1. 使用更多或者更好的硬件

  2. 大规模并行计算。每一个光线都相互独立。将图像分割,分配在多核上或者分布式网络上;或者分配在多个线程上。

  3. 限制交点检测的数目。使用包围盒的层次关系。快速判断光线是否和一组物体相交。物体被分组在封闭的包围盒中。利用空间细分技术:octree,BSP,grid.

  4. 优化交点检测

  5. 限制追踪光线的数目,确定最大的递归层数。根据光线对当前像素点贡献值大小来限制递归深度。一个阈值用来确定后续光线由于对像素点贡献太小而不会被追踪。

2、走样

使用超采样(super sampling)、抗锯齿(antialiasing)、jittering

  1. 追踪额外的主光线并取平均值。即超采样,相对于每一个像素点取一条光线,你可以取特定数目的光线。每一个像素被分为亚像素,对每一个亚像素发射一条光线。当所有的亚像素点都处理完毕,对亚像素点的颜色值取平均值,并将其赋值给该像素点。这种方法大大增加了渲染时间。

  2. 自适应抗锯齿。在颜色剧烈变化的地方使用追踪的主光线,颜色变化不大的地方使用最少的主光线。

  3. 随机抗锯齿。随机取样代替常规取样。

3、尖锐的阴影

原因:使用点光源、每个交点仅仅对应一条阴影光线。

  1. 区域光(area light)。使用一系列点光源来模拟区域光源。对于每一个交点,需要和点光源数目一样多的追踪光线。

  2. Monte Carlo光线追踪法。使用随机超采样,光源建模成球形光源,阴影光线指向代表光源的球上面的点。阴影光线颜色的平均值决定该交点最终的颜色值。

4、全局光照

依旧可以使用Monte Carlo法。使用Radiosity算法。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 大数据
    +关注

    关注

    64

    文章

    8628

    浏览量

    136567
  • 光线追踪
    +关注

    关注

    0

    文章

    175

    浏览量

    21352

原文标题:举例几个光线追踪的问题和解决方案

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MediaTek携手望尘科技共同推进移动端光线追踪技术在手游中的应用落地

    MediaTek 与望尘科技(GALA Sports)携手合作,共同推进移动端光线追踪技术在手游中的应用落地,将该技术成功导入了望尘科技旗下的钓鱼和篮球体育在线类游戏,为玩家带来更具沉浸感的逼真游戏画面。
    的头像 发表于 04-18 10:04 28次阅读
    MediaTek携手望尘科技共同推进移动端<b class='flag-5'>光线</b><b class='flag-5'>追踪</b>技术在手游中的应用落地

    微软:SSD固态硬盘可降低显存占用,提高光线追踪性能

    其专利说明如下:由于光线追踪加速结构常需占用其他数据存储空间(如几何图形和纹理数据),导致系统需大增内存负担,且所需带宽大。本文方法旨在缓解这一问题。
    的头像 发表于 03-25 15:46 140次阅读

    关于C语言中的递归

    递归指的是在函数的定义中使用函数自身的方法。
    发表于 02-26 10:34 121次阅读
    关于C语言中的<b class='flag-5'>递归</b>

    追踪器arduino原理

    追踪器 (LDR) 是一种基于光敏电阻的光测量器件,常用于测量光强度和控制感应器。在 Arduino 上使用 LDR,可以实现对光线进行检测、测量和控制的功能。本文将详细介绍 LDR
    的头像 发表于 12-08 10:22 577次阅读

    曙光生态环境大数解决方案助力我国生态环境“大数据”建设

    相通、数据不规范等难题。通过构建智慧高效的生态环境大数据体系成为推动我国生态环境保护的重要支撑。 为全面提升生态环境系统化、科学化、精细化管理水平,曙光推出生态环境大数解决方案。综合利用物联网、云计算、
    的头像 发表于 10-11 15:51 338次阅读

    光线追踪:计算机模拟自然光的奥秘

    在计算机图形学领域,有一种技术能够模拟光线在三维场景中的物理行为,从而生成高度逼真的图像,这就是光线追踪光线追踪的原理是从观察者的眼睛或者
    的头像 发表于 10-10 10:08 574次阅读
    <b class='flag-5'>光线</b><b class='flag-5'>追踪</b>:计算机模拟自然光的奥秘

    Hyperon—大数据应用的硬件加速解决方案

    电子发烧友网站提供《Hyperon—大数据应用的硬件加速解决方案.pdf》资料免费下载
    发表于 09-13 10:12 0次下载
    Hyperon—<b class='flag-5'>大数</b>据应用的硬件加速<b class='flag-5'>解决方案</b>

    Codasip携手西门子共同为定制处理器提供追踪解决方案

    RISC-V定制计算领域的领导者Codasip®宣布:公司现在可为其定制RISC-V处理器内核提供Tessent™ Enhanced Trace Encoder增强型追踪编码器解决方案,该方案
    的头像 发表于 09-12 09:03 421次阅读

    Codasip向客户提供Tessent Enhanced Trace Encoder增强型追踪编码器解决方案

    追踪编码器解决方案,该解决方案即使在最复杂的异构和定制化设计中也能显著提高生产效率。Tessent Embedded Analytics是西门子EDA嵌入式分析产品线的成员产品。通过这一联合
    的头像 发表于 09-07 15:38 425次阅读

    智慧电力解决方案

    智慧电力解决方案是依托智能传感器群组、高速数据采集终端、云平台以及大数据、智能算法等设备和系统进行运行,利用智能设备、物联网及云计算、大数据、人工智能等技术,使传统电力系统更加可靠、智能、高效,实现
    的头像 发表于 09-07 15:00 510次阅读
    智慧电力<b class='flag-5'>解决方案</b>

    SIGGRAPH 2023 | 通过 NVIDIA OptiX 8 实现灵活且强大的光线追踪功能

    实现逼真的视觉效果一直是计算机图形领域人士所追求的目标。 NVIDIA OptiX 是一款强大且灵活的光线追踪技术框架,能让用户充分挖掘光线追踪的潜力。NVIDIA OptiX 是一款
    的头像 发表于 08-14 17:25 348次阅读
    SIGGRAPH 2023 | 通过 NVIDIA OptiX 8 实现灵活且强大的<b class='flag-5'>光线</b><b class='flag-5'>追踪</b>功能

    SIGGRAPH 2023 | 由 RTX 赋能的空间框架通过 USD 实现全光线追踪 XR 流程

    新的可执行程序的速度。 NVIDIA Omniverse 中的全新空间框架通过通用场景描述(即 OpenUSD)和由 NVIDIA RTX 驱动的光线追踪技术帮助解决了这些难题。全球首个全光线
    的头像 发表于 08-11 20:10 210次阅读

    物流货物到哪儿了?纵行科技ZETag云标签大票零担物流货物追踪方案为你解难

    为解决大票零担物流货物追踪难题,纵行科技推出了“芯片追踪+路网签到+ZETA TMS”的软硬一体化解决方案,全方位、立体化解决零担物流货物追踪难题。除了ZETag云标签和路网以外,纵行
    的头像 发表于 06-12 16:44 353次阅读
    物流货物到哪儿了?纵行科技ZETag云标签大票零担物流货物<b class='flag-5'>追踪</b><b class='flag-5'>方案</b>为你解难

    递归函数计算斐波那契数列中的第n项值

    编写一个递归函数,用于计算斐波那契数列中的第n项值,并在主函数中调用该函数输出斐波那契数列的前15项。
    的头像 发表于 06-07 11:30 1814次阅读

    C语言,你真的懂递归了吗?

    要说到递归如果不说栈的话,我觉得有点不合适,递归特点就是不断的调用同一个函数,如果这个函数没有一个递归界限,那么就是死循环了,所以讨论递归,就必须要讨论
    的头像 发表于 06-06 15:24 745次阅读
    C语言,你真的懂<b class='flag-5'>递归</b>了吗?