网易首页 > 网易号 > 正文 申请入驻

《Time Ghost》的制作:如何使用 DOTS ECS 制作更为复杂的大型环境

0
分享至

基于 Unity 6 引擎制作的 demo 《Time Ghost》

开始《Time Ghost》项目时的目标之一是提升在 Unity 中构建大型户外环境的构建标准。为了实现这一目标,我们要有处理更为复杂的场景的能力、有足够的工具支持,同时它对引擎的核心图形、光照、后处理、渲染和性能也提出了更高的要求。虽然我们能够预见到 Unity 6 的图形改进能满足大部分需求,但工具方面仍面临挑战。

随着游戏世界变得越来越复杂,高效的工具对于管理自然资产的放置和渲染变得至关重要。我们需要一个智能系统来确保环境资产的真实分布与多样性。同时,由于计划使用大量的植被,因此渲染方面的技术解决方案,既要具备扩展性,也要在运行时保持较高的性能

本文将分享构建《Time Ghost》场景环境中的一些做法,并解析我们所用的工作流程和工具。

生成散布数据

第一步,我们将构成环境基础的网格导入 DCC 软件(本例中是 Houdini)。这些网格可以是激光雷达(LiDAR)扫描、无人机扫描或在 Unity 中手动雕刻的地形。对于 Houdini,我们开发了散布分析工具。 这些工具可以根据地形属性自动放置资产,帮助我们设计和生成细节丰富、多种多样的连贯的逼真环境。

此外,通过采用SpeedTree 和标准摄影测量工作流程,我们还创建了高质量的植被预制件并将其散布在网格上。 散布系统允许对随机性和密度进行微调,确保植被的自然分布和多样性。

接下来,我们将散布数据从 Houdini 导出为点缓存/点云,使用的是 Unity 在 GitHub 上提供的VFX Toolbox 中的 Point Cache Exporter HDA 稍加改动的版本。这个工具可以保存每个散布实例的位置,同时保存其缩放、方向、颜色、年龄和健康属性,并为散布数据中的每种模型生成一个点缓存。

Unity 集成

利用DOTS(面向数据技术栈)ECS(实体组件系统),我们可以创建包含成千上万个实体的场景,同时保持性能稳定。这是通过实体实例化和资源分配的精细管理实现的。

每个从 Houdini 导出的点云资产实际上只是由位置、方向、缩放等信息组成的集合,可能还包括一些额外的数据(例如年龄、健康状况、颜色等)。我们将所有 Houdini 导出的点云汇集到一个名为PointCloudFromHoudiniAsset的资源中。这个资源读取原始点云,根据命名规则找到要与每个点云搭配的预制件,并创建数据的内部表示形式。这些数据被存储在 PointCloudFromHoudiniAsset 中,随后在烘焙过程中被划分为多个空间分区,以便更快速地进行数据流式加载

下一步是在 ECS 子场景中添加一个创作组件(authoring component),名为ScatterPointCloudAuthoring。该组件将 PointCloudFromHoudiniAsset 和一些参数作为输入数据,这些参数可用于控制何时加载和卸载数据,以及如何对点云数据进行细分。

为了高效地流式传输数据,我们将点云数据细分为场景区块(scene sections),这些区块可以单独加载和卸载。这样,我们就可以根据距离视角的远近来加载和卸载不同的区块。区块的大小由创作组件中的 ScatterSceneSectionSize 属性控制。

然而,这些场景区块相对较大,如果一次性实例化所有数据,将导致 CPU 负载骤增。每个场景区块可能包含数十万个点,因此,这些区块会进一步细分为更小的图块(tile),称为“散布图块”(由创作组件中的 ScatterTileSize 属性控制)。实例化逻辑会根据重要性规则,选择接下来需要实例化的散布图块以及需要卸载的图块。

图块替身

即便可以高效地流式加载和卸载实例,我们依然面临需要渲染大量实例的问题。许多实例的体积较小,如草丛,在远处移动时仅覆盖屏幕的小块区域。因此,我们将部分散布实例烘焙为图块替身(tile impostor)。图块替身覆盖特定区域,并模仿该区域散布实例的外观。

数据直接从点云资产中获取,因为我们希望控制图块包含的植被类型。在本例中,我们仅关注草地资产,忽略同一区域内的树木。

图块替身(tile impostor)生成器从上方渲染属于该图块的所有实例,生成包含每个图块的近似颜色、法线和深度信息的低分辨率纹理。此外,一些最重要的植物类型被选中并从侧面和上方渲染到图集上。这个图集被所有图块共享,并用于为每个图块的低分辨率纹理数据生成细节。生成器还创建了一个由多个四角面组成的网格,代表图块并让四角面朝向视角。

在运行时,我们将每个图块的低分辨率纹理信息与更详细但通用的植被纹理集条目,投射到图块替身网格上,从而生成图块的近似外观。

随着摄像机逐渐远离某个区域,单个实例首先会切换到较低的细节级别(LOD),最终被图块替身所取代。图块替身也有多个细节级别,随着摄像机进一步远离,四角面的分布会变得更为稀疏。

提升大型场景性能的替身系统

对于场景中非常远的对象,我们使用八面体替身(octahedral imposters)。这种方法可以显示距离摄像机较远物体的简化版本,从而在视觉效果与性能之间取得平衡。我们开发了一个简单的工具,可以直接在 Unity 中生成并集成这些替身。这个工具简化了工作流程,提供了优化性能的同时保持高视觉标准的高效方法。

植被控制系统

我们的植被控制系统提供了复杂的配置设置,可以调整风速、风的变化和频率等环境效果,确保环境中动画元素的真实感和性能。

植被着色器接收健康和年龄属性,用以实现自然的颜色变化和更真实的风相应效果。比如,一株干燥的植物会更僵硬,摆动幅度小于绿色的植物。

场景中的实体也经过设计,可与角色进行逼真的交互。例如,植被会对角色的存在和移动做出动态响应。这个系统采用基于 GPU 的方法来处理与植被的交互(如碰撞),并通过简化的弹簧物理(spring physics)来计算和模拟角色与环境元素交互的效果。

高质量的环境光照

自适应探针体积(APV)

为了获得高质量的光照效果,场景通常需要在不同区域使用不同的光照设置。对于光线会在各种不规则表面上反弹的狭小空间,和光照相对均匀的开阔平原上,往往需要采用不同的处理方法。

Unity 6 引入了新的“自适应探针体积”功能,它会自动在最需要光照探针的地方放置探针

(注:通过可视化工具展示光照探针的位置时,可以明显看出壕沟里的探针比平原上的更密集,可以捕捉到更为细致的光照变化。)

场景混合

场景混合(Scenario Blending)让我们可以烘焙不同的光照设置状态,并在这些状态之间进行平滑过渡。

这样就可以为同一环境的不同时间创建不同的光照场景。太阳角度和环境色的变化可以通过实时光照来实现,而烘焙的光照场景让间接光照也能够相匹配。

接下来的计划

在当今先进的数字环境创建中,实现大量自然资源的自然连续分布和光照处理(无论是细致的近景还是宽广的远景,)都是至关重要的。基于ECS的处理方法不仅提升了画面质量,还在数据处理和解读方面提供了极大的灵活性,同时考虑了大型实时3D项目的性能需求。

我们已经在Unity Asset Store中发布了《Time Ghost》demo 的两个 Unity 项目——一个是环境场景,另一个是角色。 如果你想亲自体验上述流程的效果,可以下载《Time Ghost: Environment》项目,其中包含我们用 Unity 6 为《Time Ghost》创建的一个环境场景。

示例旨在展示我们使用的技术和方法,帮助你评估是否可以将类似的思路应用到自己的项目中。

Unity 6 现已发布,点击回顾。欢迎下载体验 Unity 6 众多新工具和功能,体验更快的渲染速度与更先进的光照选项。

Unity 官方微信

第一时间了解Unity引擎动向,学习进阶开发技能

每一个“在看”,都是我们前进的动力

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
为啥我们五次申请CPTPP都失败?原因在于第四条

为啥我们五次申请CPTPP都失败?原因在于第四条

老籣说体育
2026-02-21 12:00:33
杨丽萍在云南喝茶被偶遇,人很瘦,脸上皱纹很深,戴墨镜遮鱼尾纹

杨丽萍在云南喝茶被偶遇,人很瘦,脸上皱纹很深,戴墨镜遮鱼尾纹

举头月已燕归来
2026-02-24 04:14:11
川大导师威胁,敢管就报复,卖房带经费回日,校方:已启动调查

川大导师威胁,敢管就报复,卖房带经费回日,校方:已启动调查

梦录的西方史话
2026-02-23 17:53:25
24岁离异女与男网友车震,事后索要一千块补偿,结果惨遭杀害

24岁离异女与男网友车震,事后索要一千块补偿,结果惨遭杀害

胖胖侃咖
2024-08-24 08:00:08
重锤!武汉又一小区要拆迁!

重锤!武汉又一小区要拆迁!

越乔
2026-02-23 12:00:06
意天空:洛夫图斯-奇克接受面部手术后或只能长期靠吸管进食

意天空:洛夫图斯-奇克接受面部手术后或只能长期靠吸管进食

懂球帝
2026-02-23 09:13:43
被年轻人“抛弃”的8个家居产物,时代要淘汰你,连招呼都不会打

被年轻人“抛弃”的8个家居产物,时代要淘汰你,连招呼都不会打

室内设计师有料儿
2026-02-18 21:17:06
怒斥国外记者荒谬!谷爱凌再次回击:你说说,究竟是夺金还是丢银

怒斥国外记者荒谬!谷爱凌再次回击:你说说,究竟是夺金还是丢银

风过乡
2026-02-23 13:14:06
前几年冲动买房的人都怎么样了?网友:我付完定金就开始后悔了

前几年冲动买房的人都怎么样了?网友:我付完定金就开始后悔了

带你感受人间冷暖
2026-02-21 17:05:39
天津西站发生盗窃事件

天津西站发生盗窃事件

天津族
2026-02-23 07:32:50
林子祥叶倩文越南过年,满头白发超时髦,紧牵无血缘孙女太好磕

林子祥叶倩文越南过年,满头白发超时髦,紧牵无血缘孙女太好磕

一窥究竟
2026-02-23 05:37:45
四连鞭终结比赛!赵心童2杆破百击退希金斯,10-7夺排名赛第5冠

四连鞭终结比赛!赵心童2杆破百击退希金斯,10-7夺排名赛第5冠

全景体育V
2026-02-23 06:28:38
徐冬冬街头惊艳:丰腴之美,完美胸型自信如光?

徐冬冬街头惊艳:丰腴之美,完美胸型自信如光?

娱乐领航家
2026-01-17 00:00:03
3:1,立陶宛要与中国对抗到底!

3:1,立陶宛要与中国对抗到底!

达文西看世界
2026-02-23 20:08:02
米兰媒体爆苏提达真状态,脸部拉胯显老气,站角落接电话一脸凝重

米兰媒体爆苏提达真状态,脸部拉胯显老气,站角落接电话一脸凝重

东方不败然多多
2026-02-23 19:14:52
又揪出一个巨贪,金额高达9.7亿!但意外的是菲律宾竟帮了大忙!

又揪出一个巨贪,金额高达9.7亿!但意外的是菲律宾竟帮了大忙!

青青子衿
2025-12-19 07:51:53
人民日报副总编辑公开表达不满:我困惑很久,不吐不快!

人民日报副总编辑公开表达不满:我困惑很久,不吐不快!

霹雳炮
2025-12-08 22:03:16
特朗普刚吹完牛就被打脸,莫迪连夜脚底抹油!

特朗普刚吹完牛就被打脸,莫迪连夜脚底抹油!

李荣茂
2026-02-23 23:58:30
买房前如何快速判断一个小区住户的素质?评论区万千共鸣

买房前如何快速判断一个小区住户的素质?评论区万千共鸣

另子维爱读史
2026-02-21 21:31:31
十二年春晚后,他终于端上自家那碗热腾腾的拉条子

十二年春晚后,他终于端上自家那碗热腾腾的拉条子

乡野小珥
2026-02-23 23:23:28
2026-02-24 05:15:00
Unity incentive-icons
Unity
Unity中国官方帐户
2443文章数 6729关注度
往期回顾 全部

科技要闻

智谱、MiniMax合计蒸发近千亿市值,为何?

头条要闻

墨西哥最大毒枭被击毙:喜欢杀人灭门 几乎没人看见过他

头条要闻

墨西哥最大毒枭被击毙:喜欢杀人灭门 几乎没人看见过他

体育要闻

哈登版骑士首败:雷霆的冠军课

娱乐要闻

那艺娜账号被禁止关注,视频已清空!

财经要闻

美国海关将停止征收被裁定违法的关税

汽车要闻

续航1810km!smart精灵#6 EHD超级电混2026年上市

态度原创

旅游
房产
教育
手机
数码

旅游要闻

年轻人挤破头!为啥都往北京环球跑?看完懂了

房产要闻

窗前即地标!独占三亚湾C位 自贸港总裁行宫亮相

教育要闻

如何用好奇心与同龄人拉开差距?

手机要闻

iPhone 18 Pro进入量产测试阶段 今年秋季发布

数码要闻

PC鲜辣报:显卡显存回归8GB配置,微星推芙丽莲联名显卡

无障碍浏览 进入关怀版