当前位置: 首页 > 后端技术 > Java

如何优化大场景的实时渲染?HMSCore3DEngine是这样做的

时间:2023-04-01 13:58:38 Java

在此前举办的华为开发者大会2022(HDC)上,华为通过3DDigitalStream展示了自家3D引擎“HMSCore3DEngine”(以下简称3DEngine)的强大能力。3DEngine作为高性能、高品质、高扩展性的3D引擎,不仅可以通过实时光线追踪、水体渲染、体积云雾、多维度等技术还原现实世界的物理表现。维GPU粒子系统,也适用于大规模数字世界。实时渲染,3DEngine也能为开发者提供强大的技术支持。大范围数字世界的需求与挑战如今,如何更好地实现大范围场景的实时渲染成为业界关注的热点,相关技术在众多领域具有广阔的应用前景。我们可以明显感觉到,从3D游戏到虚拟现实,从3DGIS到数字城市,涉及的场景规模呈指数级增长,有些游戏中的世界地图甚至没有边界。可以说,大规模场景的实时交互渲染能力正在成为构建数字世界的基础设施。然而,这并不容易。场景规模扩大的结果是海量的内容和数据。一个城市涉及的物体数量几乎是一百万,补丁的数量甚至可能达到数十亿,但硬件配置总是比较有限,即使再先进的硬件配置也不够用。数据与硬件的矛盾对3D引擎的大场景实时渲染能力提出了挑战:场景预加载方式无法实现;?在传统的3D渲染模式下,GPU的计算能力不足以支持数万物体、数十亿网格的实时渲染;?如果使用流式加载方式,可以边渲染边加载数据,但需要对Scene数据进行预处理。分区分层、模型合并、材质合并、贴图烘焙等预处理往往非常耗时。数以万计的物体需要数小时的等待,并且只支持场景中静止的物体。比如上图的服务器大楼,三角形的数量达到了千万级,模型有近万个。为了实现实时渲染,通常需要通过HLOD将整个场景在Spatial-Coherent级别进行重组。与右图红色圆圈类似,以不同的半径作为空间节点,将圆圈内的模型进行合并,从而减少场景对象的遍历次数,提高绘图性能。而这个预处理操作本身就需要将近一个小时,大大增加了调试和开发的成本。那么,HMSCore3DEngine将如何迎接挑战,构建大场景实时渲染能力呢?Hi-Mesh分层网格渲染加速技术为解决“放不下”、“数不过来”、“等不起”这三大难题,华为2012年FieldsLab自研“Hi-Mesh”基于HMSCore3DEngine。“Mesh”分层网格渲染加速技术优化场景中资产的多维度、多层次结构,保证场景结构在生成、遍历和处理过程中的高效性。例如,对于一个大型场景,其数字内容可以进行多维分区:按照空间结构进行分区。在3D场景中,利用物体固有的隐含空间属性进行快速的位置编码和索引,大大减少了传统树结构耗时的线性遍历。;根据透视空间分层利用透视的局限性来区分或组合不同细节层次的物体,从而减少场景中的数据量;按内容特征分组,利用场景对象的特征,如按网格、材质同源分组,从而使用特定的优化绘图指令,提高其绘图效率;根据拓扑连接分片,将模型网格划分为更细粒度的分片,实现高效的剔除和遮挡操作,优化实时渲染性能。Hi-Mesh架构图基于场景分割原则,以高效的空间/视图结构实现多级数据优化,最终在一块GPU上实现百万物体和数十亿单面数驱动方式。实时渲染世界。一千个对象实时动态更新为了实现上述操作,3DEngine使用了隐式编码树的空间层次结构——“Hi-MeshTree”。不同于传统的基于链表的空间节点树方式,3DEngine采用了常量级性能构造和遍历方式。与现有商业引擎相比,大场景实时渲染性能可提升15%~120%。.此外,还可以大大提高三维空间场景组织结构的生成效率,甚至可以达到毫秒级,大大降低了工作流的时间成本。数据来源:华为内部实验室测试结果同时,3DEngine还采用了GPU驱动的集群渲染(GDCR)渲染技术。业界对GPU驱动已经有了一些探索和应用。理想的目标是用一次DrawCall(DC)绘制整个场景,从而充分利用GPU的并行管线能力,提高渲染性能。下图是育碧在Siggraph15上提出的GPU驱动流水线架构图,其核心思想是将原来基于CPU的可见性检测处理迁移到GPU,利用GPU的并行和可编程能力,提供高-并发、不同粒度的可见性检测能力,大幅提升渲染性能。为了充分发挥GPU驱动的效率,3DEngine对GPU驱动的流水线节点、数据传输、图形资产进行了深度优化耦合,将场景中的所有3D物体在GPU上进行各种维度的表现(边界框、实例和切片),三角面)可见性剔除,结合多层重组(材质,顶点),以最少的绘图指令实现场景的光栅化和着色,同比例场景的渲染性能与传统模式。加倍。对比同等规模场景下的渲染性能,可以预见,在未来的数字世界中,无论是虚拟世界、数字孪生,还是开放世界,丰富多彩、趋于庞大的场景都将是不可或缺的一部分。3DEngine在Hi-Mesh技术的加持下,通过高效的空间层次结构和GPU友好的渲染管线,大幅提升在大型数字场景中的实时渲染能力,让场景中的3D内容“自由自在””和“更好”。快看”和“少等待”,帮助开发者大幅提升生产力。关于HMSCore3DEngine3DEngine是HMSCore面向行业合作伙伴推出的重要图形能力,不仅提供了高性能、高品质、和高度可扩展的实时3D引擎,还配合低代码可视化开发,帮助开发者轻松高效地创造出高质量的3D内容和体验。更多信息,请访问:developer.huawei.com/consumer/cn/hms/3d-engine/?ha_source=hms1更多详情>>访问HUAWEIDevelopers官网获取开发指导文档HuaweiMobileServices开源仓库地址:关注GitHub和Gitee,了解HMS最新技术资料核心~