关于hms-core:如何优化大场景实时渲染HMS-Core-3D-Engine这么做
在先前举办的华为开发者大会2022(HDC)上,华为通过3D数字溪村展现了自有3D引擎“HMS Core 3D Engine”(以下简称3D Engine)的弱小能力。作为一款高性能、高画质、高扩展性的3D引擎,3D Engine不仅能通过实时光追、水体渲染、体积云雾、多维GPU粒子系统等技术还原真实世界的物理体现,对于大规模数字世界的实时渲染,3D Engine同样也能为开发者提供无力的技术支持。 大规模数字世界的需要与挑战 明天,如何更好地实现大场景下的实时渲染,曾经成为行业的热门话题,相干技术在泛滥畛域都有着广大的利用前景。咱们能够显著感触到,从3D游戏到虚拟现实,从三维GIS到数字城市,波及场景的规模都在呈指数级增长,局部游戏中的世界地图甚至没有边界。能够说,大规模场景的实时交互渲染能力正在成为构筑数字世界的基础设施。 然而,这并非易事。 场景规模的扩充带来的后果就是海量的内容和数据。一个城市波及的物件数差不多是百万级,面片数更是可能达到亿级,而硬件配置却始终是绝对无限的,即便再高级的硬件配置也有力不从心的时候。 数据和硬件之间的矛盾,对3D引擎的大场景实时渲染能力提出了挑战: 1、因为物件、网格、材质等内容数量太多,受限于显存容量,传统的全场景事后加载形式无奈实现; 2、在传统3D绘制模式下,GPU的算力不足以撑持万级规模物件数和亿级规模面片的实时渲染; 3、如果应用流式加载场景的形式,能够实现一边渲染一边加载数据,但须要预处理场景数据,诸如分区分层、模型合并、材质合并、纹理烘焙等预处理往往极为耗时,几万个物件就须要小时级的期待,且仅反对场景中静止不动的物件。 譬如上图这个服务器大楼,三角面片数达到了千万级,并且有将近万件的模型。为了实现实时渲染,通常须要通过HLOD的形式将整个场景进行Spatial-Coherent的档次重组。 相似于右图红圈所示,以不同半径为一个空间节点,将圈圈内的模型进行合并解决,从而升高场景物件的遍历数量,进步绘制性能。而这个预处理操作自身就须要消耗近一个小时,大大增加了调试和开发成本。 那么,HMS Core 3D Engine将如何应答挑战,构建大规模场景的实时渲染能力? Hi-Mesh层级网格渲染减速技术 为了解决这三个“放不下”、“算不了”、“等不起”的问题,华为2012菲尔兹实验室基于HMS Core 3D Engine自研了“Hi-Mesh”层级网格渲染减速技术,针对场景中的资产进行多维度、多层级的构造优化,确保场景构造在生成、遍历、处理过程中的高效。譬如针对一个大规模场景,可将其数字内容进行多维分区: 1.按空间结构分区 3D场景中利用物件原生隐含的空间属性,进行疾速地位编码和索引,大幅升高传统树形构造的线性遍历耗时; 2.按视角空间分层 利用视角的局限性,对场景中的物件进行不同细节档次的辨别或合并解决,从而升高场景的数据量; 3.按内容特色分组 利用场景物件的特色,如按网格、材质的同源性进行分组,从而应用特定优化的绘制指令来强化它们的绘制效率; 4.按拓扑连贯分片 将模型网格进行更精密粒度的分片,实现高效率的剔除和遮挡操作,优化实时渲染的性能。 Hi-Mesh架构图 Hi-Mesh架构图 基于将场景化整为散的准则,以高效率的空间/视角构造来实现多层级的数据优化,并以GPU驱动的形式,最终实现百万级物件、亿级全面的数字世界的实时渲染。 一千个物件实时动静更新 为了实现上述的操作,3D Engine应用了一种隐式编码树的空间层次结构——“Hi-Mesh Tree”。不同于传统基于链表模式的空间结点树的形式,3D Engine通过一种常量级性能的结构和遍历办法,相较现有的商业引擎,大规模场景的实时渲染性能可晋升15%~120%。此外,还能够大幅晋升三维空间场景组织构造的生成效率,甚至达到毫秒级,大大降低了工作流的工夫老本。 数据起源: 华为外部实验室测试后果 同时,3D Engine还应用了基于GPU驱动的Cluster Rendering (GDCR)绘制技术。 GPU驱动在业界已有一些摸索和利用,其现实指标是用一个Draw Call(DC)来绘制整个场景,以充分发挥GPU的并行流水线能力,实现渲染性能的进步。下图是Ubisoft 在Siggraph 15上提出的GPU驱动管线的架构图,其核心思想就是将本来基于CPU的可视性检测解决迁徙到GPU上,利用GPU的并行和可编程能力,提供高并发、不同粒度的可视性检测能力,从而大幅提高渲染性能。 3D Engine为了更充沛的实现GPU驱动的效率,对GPU驱动的管线节点、数据传输、图形资产进行深度优化和耦合,将场景下的所有3D物件在GPU上进行各个维度(突围盒、实例、片区、三角面)的可视性剔除,配合多层的重组(材质、顶点),从而实现以最大量的绘制指令来实现场景的光栅化和着色,等同规模场景下相比传统模式的渲染性能实现了翻倍。 等同规模场景下渲染性能比照 能够预感,将来的数字世界无论是元宇宙、数字孪生、还是凋谢大世界,趋于宏大的丰富多彩场景都将会是不可或缺的组成部分。在Hi-Mesh技术的加持下,3D Engine得以通过高效的空间层级构造和GPU敌对的绘制管线,大幅提高大规模数字场景下的实时渲染能力,使场景中的3D内容“纵情放”、“更快看”、“少期待”,帮忙开发者大大晋升生产力。 对于HMS Core 3D Engine 3D Engine是HMS Core面向行业搭档推出的重要图形能力,不仅提供高性能、高画质、高扩展性的实时3D引擎,配合低代码的可视化开发,可能帮忙开发者便捷高效地发明出高品质的3D内容和体验。如需进一步理解更多信息,请拜访: developer.huawei.com/consumer/cn/hms/3d-engine/?ha_source=hmswm ...