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

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

3天内不再提示

PowerVR光线追踪混合渲染效果

电子设计 来源:电子设计 作者:电子设计 2022-02-14 14:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:RYS SOMMEFELDT

尽管在理论上实现现代GPU的方法是无限的,但真正有效的方法是切实的了解问题并着手将方案变为现实。制造现代高性能半导体器件以及试图加速当前可编程光栅化技术所面临的问题揭示了GPU硬件行业发展的未来趋势。

例如在现代GPU中SIMD处理和固定功能纹理单元是必不可少的,以至于不使用它们来设计的GPU方案几乎肯定意味着在研究之外不具有商业上的可行性和实用性。即使是过去20年来,任何一个GPU最疯狂的愿景也没有舍弃这些核心原则(安息吧,Larrabee(英特尔公司(GPU 的芯片代号))。

过去15年来实时光线追踪加速一直被默认为是GPU设计中最令人烦心的问题,关于光线追踪应该如何在GPU上实现的主流规范是微软推出的DXR,它要求的执行模型却不能真正融入到GPU的工作模式,这无疑给任何需要支持它的GPU设计者带来一些严重的潜在问题。如果实时光线追踪是它们过去十年时间没有考虑过的事情,那么这个问题会更加明显,而Imagination一直在关注这个问题。

光线追踪面临的关键挑战

如果你遵循DXR规范并考虑需要在GPU中实现些什么从而提供计算加速性能,那么你将很可能快速梳理出不管采用何种设计方案都需要解决的以下几个问题:
首先你需要一种方法来生成和处理一组包含几何体的数据结构,从而能以更有效的方式根据几何体来跟踪光线。其次当追踪光线时,GPU要测试光线是否与之相交,要提供一些用户可定义的编程接口。第三被跟踪的光线可以发出新的光线!DXR规范定义的实现方案还需要考虑其他问题,但是从全局来看这三个因素是最重要的。

PowerVR光线追踪混合渲染效果

生成和使用加速数据结构来有效的表示需要做相交测试的几何体意味着GPU可能要完成一个全新的执行阶段,然后我们需要用全新的接口函数处理这些新的数据结构,测试是否相交,之后在程序员的控制下根据相交测试的结果实现一些功能。GPU是并行的设计,所以同时处理一堆光线意味着什么?这样做是否发现了新挑战,而这些挑战与传统的几何和像素并行处理所带来的挑战却大不相同?

上一个问题的答案是非常肯定的,的确这些差异对如何将光线追踪映射到现有的GPU执行的模型中有着深远的影响。这些GPU存在计算资源和内存资源的不平衡,导致内存访问成为一种宝贵的资源,而浪费这些资源是导致效率和性能低下的最主要原因之一。

哦不——我们做了些什么?

GPU被设计成可以以任何形式充分利用与之连接的DRAM的访问,利用内存访问的空间或时间局部性来作为实现这一目的的方法。值得庆幸的是最常见和最现代化的光栅化渲染有一个很好的特性,即在着色期间(尤其是像素着色通常是任何给定帧的主要工作负载)三角形和像素顶点有可能与它们的近邻共享相关数据。因此,您访问一组像素所需的任何缓存数据,很可能下一个相邻的组将需要使用您已经从DRAM中提取并缓存的部分或全部内存数据。对于当今大多数栅格化渲染工作负载而言,这都是正确的,因此我们都可以松一口气,并围绕该属性设计GPU架构。
当我们使用光线追踪,这些就都失效了。光线追踪使所有空间局部性消失。下面让我们来分析其中的原因。

物体表面的问题

最简单的思考方式就是观察四周,在你坐下来阅读这篇文章时注意光线在你所处环境中的作用。由于光线追踪建模了光线从所有光源传播时的属性,因此它必须处理光线照射在场景中任何表面时发生的情况。也许我们只关心光线照射哪些物体,也许物体的表面以均匀的方向散射光线,但它也可能完全是随机的。也许表面吸收了所有的光,因此不会有次级光线的传播。也许表面有一种材质属性,使它能够部分吸收几乎所有照射来的光线,然后随机散射它不能捕获的少量光线。

只有第一种场景可以映射到GPU的利用内存访问局部性的工作模式,即使如此也只有当所有并行处理的光线都照射到同一类型的三角形时才可以。

正是这种明显分歧的可能性导致了这些问题,如果并行处理的任何光线相互之间可能会有不同的作用,包括撞击不同的加速数据结构或发出新的光线,那么GPU能高效工作的基本前提就会被破坏,而且这通常比在传统的几何图形或像素处理中遇到的发散现象更具有破坏性。

相干性聚集

PowerVR对光线追踪硬件加速的实现所做的是硬件光线追踪和排序,它与当今行业内任何其他硬件光线追踪加速相比都是独一无二的,这对软件方面来说是完全透明的,确保硬件上并行追踪的发射光线具有潜在的相似性。我们称之为相干性聚集。
硬件维护了一个数据结构,用于层次化的存储软件发出的正在被硬件处理的光线,并能够根据它们的方向按它们在加速结构中前进的位置进行选择和分组。这意味着当它们被处理时更可能共享存储器中被访问的加速数据结构中的数据,且额外的优势是能够最大化随后要并行处理的光线-几何体相交计算的数量。

通过分析由硬件调度的光线我们可以确保以GPU友好的方式对它们进行分组,从而更高效的进行后续处理,这些是该系统成功的关键,有助于避免打破GPU行业为高效的光栅化渲染而精心设计的运行模式,这就避免了光线追踪硬件对特殊类型存储系统的需求,因此提供了与GPU的其他部分更容易集成的方案。

相干性聚集机制本身相当的复杂,因为它需要快速的追踪,排序和调度所有的被提交到硬件中处理的光线,从而不会反压前级用于发射光线的调度系统,也不会造成后级以排序好的光线和加速数据结构为输入的硬件的空闲。

如果没有硬件系统来帮助GPU处理光线排序,那么就需要依赖应用程序或游戏开发人员以某种方式在主机上处理光线的相干性问题,或者在GPU上加入一个中间的计算环节来处理光线排序——前提是这种方式被硬件所支持,以上假设的方式中没有一个能在实时的硬件平台上提升效率和性能,然而Imagination是市场上唯一拥有这种硬件光线追踪系统的GPU IP供应商。

紧跟潮流

我们之所以成为行业内唯一针对硬件光线追踪提供解决方案的供应商是因为我们已经致力于解决这个问题很长时间了,与行业中其他正在缓慢的进展相比,光线追踪已经成为当今图形技术广泛采用API之一了。

我们的相干性聚集特性与目前行业的光线追踪相互兼容(如果光线恰好发射出新的光线,堆栈将会被释放也可能发射出新的光线等等),在每个阶段进行相干性聚集处理并确保我们尽可能的实现硬件光线追踪的强大性能。

在现代的硬件光线追踪系统中最重要的是测量光线束、峰值并行测试率或空光线发射和未命中率,这些是描述光线追踪硬件性能的简单方式,但是也并不是非常的有用,毕竟开发人员并不只关心高峰值并行测试率或漏测率。

我们的目标是在整个加速系统中使用全面的光线追踪,这样开发人员就可以用光线束预算要实现哪些有用的功能。我们的相干性聚集系统与我们提供的解决方案共同实现了这个目标,与行业内的其他方案相比都是独一无二的。

原文链接:https://www.imgtec.com/blog/coherency-gathering-in-ray-tracing-the-benef...

来源:电子创新网
审核编辑:何安

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

    关注

    0

    文章

    186

    浏览量

    22162
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    行业洞察篇__数字孪生IOC的“双渲染引擎”架构:端渲染与流渲染如何协同支撑智能运营

    价值的场景(比如应急联动、设备巡检)进行验证,重点考察端流渲染与智能体的协同效果。同时,要密切关注边缘计算和5G的发展。边缘节点的算力下沉能够大幅降低流渲染的网络延迟,让智能体在边缘侧就能完成实时推理
    发表于 06-02 13:02

    渲染与流渲染的分工与融合:数字孪生应用开发套件的技术演进逻辑

    发生根本性变革。行业普遍共识是,单一渲染路径已经走到了尽头,主流技术栈正在转向一种“按需组合”的混合架构。这种架构的逻辑非常朴实:将那些不常变化、需要全局宏观态势展现的静态场景和海量数据,交给服务器端的强力算
    发表于 06-02 12:55

    渲染与流渲染的融合之道:数字孪生应用开发工具的演进逻辑

    ,大致可以分成几类。一类是从端渲染起家的团队,后期为了做大屏效果,在服务端加了一层流化软件;另一类是先啃下超大规模流渲染的硬骨头,然后反过来做轻量化SDK。坦白讲,大多数方案都停留在“双模式”的层面,即一
    发表于 05-28 16:12

    渲染与流渲染的融合之道:数字孪生应用开发套件的工程选型思路

    坐标:渐进式路线与智能体预留 对于决策者而言,未来一到两年内应该优先关注支持端流融合的开发套件和具备智能体扩展能力的IOC平台。我个人的建议是,技术选型上可以先以轻量级场景验证端渲染效果,再逐步引入
    发表于 05-28 16:09

    数字孪生应用的“智能体”融合:端渲染与流渲染的协同逻辑与演进路径

    是,单一渲染技术已经无法承载这种复合型业务需求,真正的技术瓶颈,在于如何将高保真的三维场景与实时、精准的业务分析引擎进行深度融合。 主流技术栈正在转向一种“混合架构”模式。这种架构的核心思路是,不再
    发表于 05-28 15:59

    场景适配论__数字孪生IOC与开发套件的协同:端渲染与流渲染的融合路径

    所有的锁,而是根据场景的交互频次、数据复杂度、终端类型等因素,灵活组合两种渲染模式。这个方向主流技术栈正在转向,我称之为端云协同的混合架构。具体来说,就是让高频交互、低延迟要求的操作(比如数据筛选、空间
    发表于 05-28 15:39

    行业洞察篇__财务数字孪生的渲染选择:端渲染与流渲染的协同演进逻辑

    采用了一种笨拙的妥协:把场景切分成多个独立的小场景,手动切换渲染模式。但用户抱怨操作割裂,数据联动也总是出问题。这让我意识到,财务数字孪生需要的不是二选一,而是一套能按需分配渲染能力的混合架构。 分层
    发表于 05-22 11:02

    渲染与流渲染的分化与融合:数字孪生开发套件的工程选型逻辑

    让开发者按需切换或混合部署。例如,同一个物联网数据面板,在手机端调用端渲染的简化模型进行快速操作,在大屏端调用流渲染的完整模型进行态势总览,而数据逻辑完全复用。我在一个港口项目中尝试过这种方式,
    发表于 05-22 10:39

    技术选型之道|端渲染与流渲染融合:数字孪生应用落地的理性路径

    一个尴尬的现实:单一渲染路线就像只有一把锤子,看什么都像钉子。 我曾经观摩过一个项目招标,某方案声称用纯端渲染实现了全城级别的实时渲染,结果实际演示时,场景加载耗时惊人,一旦开启车辆轨迹追踪
    发表于 05-22 10:23

    技术选型__数字孪生项目交付中端渲染与流渲染的协同策略

    失去了耐心。更麻烦的是,端渲染对终端硬件要求并不低,很多政务内网的机器配置老旧,根本无法驱动复杂的WebGL渲染,最终只能降级显示效果,所谓的数字孪生就变成了一个“能看但不中用”的模型。 流
    发表于 05-22 10:20

    行业洞察篇__数字孪生IOC的“双引擎”时代:当端渲染遇见流渲染

    的平板电脑,去操作一个光线追踪、次表面散射效果全部拉满的超级城市模型,指挥中心的大屏效果确实达到了电影级水准。但等到真正部署进入业务阶段,问题就浮出了水面。我记得有一次在联合应急指挥演
    发表于 05-14 09:50

    技术选型篇__数字孪生应用开发:端渲染与流渲染融合的工程适配与演进

    问题。大约在两年多以前,我开始观察到一种很有意思的技术转向——主流技术栈正在从“纯端渲染”或“纯流渲染”的单一路径,转向一种被业界称为“端流融合”的混合架构。 这种架构的核心逻辑其实很简单:它不再把
    发表于 05-13 13:56

    Visionfive 2 缺少文件img-gpu-powervr-bin-1.17.6210866.tar.gz怎么解决?

    您好,我开始按照 SDK 快速入门指南构建镜像。 我失败了 WGEThttp://sources.buildroot.net/img-gpu-powervr
    发表于 03-11 07:08

    通道渲染:释放渲染的全部潜能!通道渲染的作用、类型、技巧

    电影级别的3D图像中每一个光点、阴影、反射的精准布局,事实上,这些效果很大程度上得益于渲染通道的运用。以下内容将带你深入了解渲染通道的定义、作用以及如何将其高效应
    的头像 发表于 07-15 14:22 975次阅读
    通道<b class='flag-5'>渲染</b>:释放<b class='flag-5'>渲染</b>的全部潜能!通道<b class='flag-5'>渲染</b>的作用、类型、技巧

    【HarmonyOS next】ArkUI-X休闲益智儿童拼图【进阶】

    坐标计算 双端手势行为一致 视觉效果 BlendMode混合模式 图形渲染无平台差异 状态管理 @ObservedV2+Trace数据追踪 状态同步效率提升30% 布局系统 百分比+固
    发表于 06-28 21:41