在先前举办的华为开发者大会2022(HDC)上,华为通过3D数字溪村展示了自有3D引擎“HMS Core 3D Engine”(以下简称3D Engine)的强大能力。作为一款高性能、高画质、高扩展性的3D引擎,3D Engine不仅能通过实时光追、水体渲染、体积云雾、多维GPU粒子系统等技术还原真实世界的物理表现,对于大规模数字世界的实时渲染,3D Engine同样也能为开发者提供有力的技术支持。

大规模数字世界的需求与挑战

今天,如何更好地实现大场景下的实时渲染,已经成为行业的热门话题,相关技术在众多领域都有着广阔的应用前景。我们可以明显感受到,从3D游戏到虚拟现实,从三维GIS到数字城市,涉及场景的规模都在呈指数级增长,部分游戏中的世界地图甚至没有边界。可以说,大规模场景的实时交互渲染能力正在成为构筑数字世界的基础设施

然而,这并非易事。

场景规模的扩大带来的结果就是海量的内容和数据。一个城市涉及的物件数差不多是百万级,面片数更是可能达到亿级,而硬件配置却始终是相对有限的,即使再高级的硬件配置也有力不从心的时候。

数据和硬件之间的矛盾,对3D引擎的大场景实时渲染能力提出了挑战:

• 由于物件、网格、材质等内容数量太多,受限于显存容量,传统的全场景预先加载方式无法实现;

• 在传统3D绘制模式下,GPU的算力不足以支撑万级规模物件数和亿级规模面片的实时渲染;

• 如果使用流式加载场景的方式,可以实现一边渲染一边加载数据,但需要预处理场景数据,诸如分区分层、模型合并、材质合并、纹理烘焙等预处理往往极为耗时,几万个物件就需要小时级的等待,且仅支持场景中静止不动的物件。

譬如上图这个服务器大楼,三角面片数达到了千万级,并且有将近万件的模型。为了实现实时渲染,通常需要通过HLOD的方式将整个场景进行Spatial-Coherent的层次重组。

类似于右图红圈所示,以不同半径为一个空间节点,将圈圈内的模型进行合并处理,从而降低场景物件的遍历数量,提高绘制性能。而这个预处理操作本身就需要耗费近一个小时,大大增加了调试和开发成本。

那么,HMS Core 3D Engine将如何应对挑战,构建大规模场景的实时渲染能力?

Hi-Mesh层级网格渲染加速技术

为了解决这三个“放不下”、“算不了”、“等不起”的问题,华为2012菲尔兹实验室基于HMS Core3D Engine自研了“Hi-Mesh”层级网格渲染加速技术,针对场景中的资产进行多维度、多层级的结构优化,确保场景结构在生成、遍历、处理过程中的高效。譬如针对一个大规模场景,可将其数字内容进行多维分区:

  1. 按空间结构分区

3D场景中利用物件原生隐含的空间属性,进行快速位置编码和索引,大幅降低传统树形结构的线性遍历耗时;

  1. 按视角空间分层

利用视角的局限性,对场景中的物件进行不同细节层次的区分或合并处理,从而降低场景的数据量;

  1. 按内容特征分组

利用场景物件的特征,如按网格、材质的同源性进行分组,从而使用特定优化的绘制指令来强化它们的绘制效率;

  1. 按拓扑连接分片

将模型网格进行更精细粒度的分片,实现高效率的剔除和遮挡操作,优化实时渲染的性能。

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=hms1

了解更多详情>>

访问华为开发者联盟官网

获取开发指导文档

华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

如何优化大场景实时渲染?HMS Core 3D Engine这么做的更多相关文章

  1. HMS Core AR Engine 2D图片/3D物体跟踪技术 助力打造更智能AR交互体验

    AR技术已经被广泛应用于营销.教育.游戏.展览等场景.通过2D图像跟踪技术和3D物体跟踪技术,用户只需使用一台手机进行拍摄,即可实现海报.卡牌等平面物体以及文物.手办等立体物体的AR效果.尽管近年来2 ...

  2. 华为开发者大会2022:HMS Core 3D建模服务再升级,万物皆可驱动

    11月4日,HDC2022华为开发者大会在东莞松山湖举办.在本次大会的HMS Core创新图形能力分论坛中,HMS Core重点介绍了其在3D技术领域的创新应用方向,其中3D建模服务展示了创新的自动骨 ...

  3. 华为HMS Core携手超图为三维GIS注入新动能

    6月30日,在2022(第五届)GIS软件技术大会GIS基础软件新技术板块论坛上,华为联合超图推出了基于HMS Core 3D Engine开发的高保真三维GIS插件,通过3D渲染技术助力三维GIS实 ...

  4. HMS Core图形图像技术展现最新功能和应用场景,加速构建数智生活

    [2022年7月15日,杭州]HUAWEI Developer Day(华为开发者日,简称HDD)杭州站拉开帷幕.在数字经济不断发展的今天,开发者对图形图像的开发需求更加深入和多样化,从虚拟环境重构到 ...

  5. HMS Core挑战赛故事:鞋、街景、手办、玩具,原来这些都可以3D建模

    HMS Core线上Codelabs挑战赛第3期中,开发者通过学习和运用HMS Core开发的3D建模服务,生成3D建模应用demo,再使用demo为自己身边的一个实物完成建模.在提交的作品中,小编发 ...

  6. HMS Core在MWC2022展示最新开放能力,助力开发者构建精品应用

    [2022年2月28日,巴塞罗那]世界移动通信大会MWC2022在巴塞罗那开幕.HMS Core设立了3个展台(Fira Gran Via,Hall 1),向全球开发者展示HMS Core 6的全新开 ...

  7. HMS Core携手厦门大学打造AR增强现实技术

    HMS Core AR Engine团队联手厦门大学信息学院,与专业学生面对面深度交流行业发展与前沿成果.双方共同编写行业知识教材,引导学生开发AR游戏实践,为未来AR.VR人才培养培育可复制的教学模 ...

  8. HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界

    从单声道.立体声.环绕声发展到三维声,音频回放技术的迭代演进是为了还原真实世界的声音.其中,三维声技术使用信号处理的方法对到达两耳的声音信号进行模拟,将声场还原为三维空间,更接近真实世界.凭借这个技术 ...

  9. HMS Core音频编辑服务3D音频技术,助力打造沉浸式听觉盛宴

    2022年6月28日,HDD·HMS Core.Sparkle影音娱乐沙龙在线上与开发者们见面.HMS Core音频编辑服务(Audio Editor Kit)专家为大家详细分享了基于分离的3D音乐创 ...

  10. 华为HMS Core图形引擎服务携手三七游戏打造移动端实时DDGI技术

    在2021年HDC大会的主题演讲中提到,华为HMS Core图形引擎服务(Scene Kit)正协同三七游戏一起打造实时DDGI(动态漫反射全局光照:Dynamic Diffuse Global Il ...

随机推荐

  1. PAT (Basic Level) Practice 1031 查验身份证 分数 15

    一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...

  2. PAT (Basic Level) Practice 1021 个位数统计 分数 15

    给定一个 k 位整数 N=dk−1​10k−1+⋯+d1​101+d0​ (0≤di​≤9, i=0,⋯,k−1, dk−1​>0),请编写程序统计每种不同的个位数字出现的次数.例如:给定 N= ...

  3. nsis新插件:Aero.dll

    可以使安装界面在 win7 Aero特效下非客户区透明并美化BrandingText定义的字串 下载:http://nsis.sourceforge.net/Aero_plug-in nsis交流群: ...

  4. img通过修改css等比例缩小图片

    css中加上:object-fit:cover 例子: img{ width: 200px; height: 400px; object-fit: cover; }

  5. 从 Paxos 到 ZooKeeper

    分布式一致性 分布式文件系统.缓存系统和数据库等大型分布式存储系统中,分布式一致性都是一个重要的问题. 什么是分布式一致性?分布式一致性分为哪些类型?分布式系统达到一致性后将会是一个什么样的状态? 如 ...

  6. Java学习之路:流程控制

    2022-10-11 10:58:41 前言 本文开始流程控制方面的学习,主要包括用户交互和流程控制语句,适合新手学习. 1 用户交互Scanner 1.1 Scanner对象 Java提供了一个可以 ...

  7. ExceptionHandler配合RestControllerAdvice全局处理异常

    Java全局处理异常 引言 对于controller中的代码,为了保证其稳定性,我们总会对每一个controller中的代码进行try-catch,但是由于接口太多,try-catch会显得太冗杂,s ...

  8. 微信小程序专题(一)-----微信后台的相关开发

    本人最近在做微信小程序后端的相关开发工作 接触到微信小程序目前来讲需要两个条件 1.前端通过后台服务器去调用微信平台接口,来获取openid: 2.前端必须调用https 跟域名的形式 不得出现ip加 ...

  9. 认识 Redis client-output-buffer-limit 参数与源码分析

    概述 Redis 的 client-output-buffer-limit 可以用来强制断开无法足够快从 redis 服务器端读取数据的客户端.保护机制规则如下: [hard limit] 大小限制, ...

  10. 生成随机数的几种方法、Math.random()随机数的生成、Random()的使用

    第一种方法使用:System.currentTimeMillis(); final long l = System.currentTimeMillis(); final int rs = (int) ...