The Visual Engine | Terrain Elements Module
Unity · 特效
🎮 先试后买:游玩 Tropical Island 演示 | 游玩 Island 演示 | 游玩 Mountains 演示 🌄 TerraFormer 包含标准版与 Tessellated(仅 HDRP)两种类型,每种均支持在 1 次绘制中支持多达 8 个地形层,专为 HDRP 与 URP 开发。 该资源包还附带 2 个“Island”与“Mountains”演示场景,可查看最终效果,并在以完全 PBR 渲染和高品质画面为目标的同时,实时调整地形材质参数进行测试。 TerraFormer 可与任何 3D 环境资源开箱即用,包括 NatureManufacture 的资源。那 2 张山脉和树木的截图来自 Mountain Environment - Dynamic Nature,我们只是将其默认的 Unity 地形材质换成了 TerraFormer,效果立竿见影 🌟 TerraFormer 构建于 ShaderGraph 之上,你可以根据需求编辑和自定义任何节点与函数,同时享有 Unity ShaderGraph 系统的强大功能,并保证最佳性能。 快速 Discord 支持 | 讨论帖 | 教程 | 论坛 | 服务 在地形上使用 TerraFormer 材质,你可以发挥创意,导入自己的 PBR 地形纹理,根据项目的美术概念打造各种风格和视觉效果,让后续的关卡设计阶段更加轻松、画面更加精美。 这些着色器的关键特性之一是性能:即使与 Unity 在 URP 中的默认地形着色器相比,我们也获得了更低的毫秒级渲染时间,同时提供数十种精美的渲染特性,呈现前所未有的完全照片级真实感着色,这是 Unity 任何地形着色器中从未有过的。 同样在性能、内存占用和构建/编译时间方面,我们使用了 Static Branching 而非 Shader Keywords,从而实现更快的加载速度和更低的运行时内存占用,而且完全不需要提高项目中的 Shader Keywords 上限。 此外,我们尽力通过实现自定义界面让材质 UI 友好直观,方便用户轻松调整参数并在地形表面上即时获得反馈。 TerraFormer 是一个 3 人团队(含美术与程序员)历时 2 年开发的成果,经历了成千上万的技巧、窍门、提示、bug、故障、错误……才交到你的手中,并且仍在持续改进。 🌟 有任何想法或功能需求,欢迎在我们 1500+ 成员的社区中分享: 特性 ⚡ 性能:TerraFormer 为所有着色器支持 Instanced Drawing,大幅提升地形渲染性能——大部分渲染完全由 GPU 承担,显著降低 drawcall,同时为地形阴影和逐像素法线贴图带来更出色的视觉效果 ⚡ 颜色染色:每个地形层都可以将其颜色染色与其 albedo 纹理混合,以控制表面颜色 ⚡ 曲面细分(HDRP Tessellated 版本可用):GPU 曲面细分,为图层增添另一维度,通过存储在 maskmap 蓝色通道中的深度数据将表面在 3D 中挤出,并为每个地形层分别提供丰富的性能控制 ⚡ 环境光遮蔽:分别控制每个地形层的 AO 强度 ⚡ 雪:完全 PBR 的雪面渲染,由 GPU 根据坡度、高度、法线、曲面细分、光滑度、AO、颜色和程序化噪声分布 ⚡ 水洼:基于 GPU 的照片级真实感水洼,根据地形坡度和高度以及地形层的高度图与法线贴图数据自动散布水洼区域,让你的场景如大自然般闪耀美丽 ⚡ 潮湿:如果天气状态不是干燥,潮湿效果会让地形表面看起来湿润,并附带雨水设置,可在表面添加涟漪及多种控制选项 ⚡ 去平铺:先进的基于六边形的去平铺算法,可去除重复平铺伪影,实现无缝纹理,自动适配图层的高度图与法线贴图数据,即使表面经过 GPU 曲面细分,也能让纹理渲染如此自然 ⚡ 颜色图混合:在给定距离将卫星图像或颜色图与地形层混合,带来真实世界区域的整体观感,融入场景视觉 ⚡ 高度图混合:使用先进技术,通过 3D 形状和存储在 maskmap 蓝色通道中作为高度图的深度数据,使图层的混合与过渡更加自然真实 ⚡ 程序化纹理(Splatmapping):TERRA 团队提供的专有功能,利用 GPU 上的像素空间计算,通过程序化噪声函数以自然的方式散布和混合图层,大幅增强 splatmapping 和图层混合 ⚡ 地形洞:兼容 Unity 地形的洞系统,可在场景中创建隧道和洞穴 ⚡ Unity 地形层资源:TerraFormer 完全 PBR,可通过与其地形层资源直接控制法线贴图强度、金属度、AO、高度与光滑度,以及每个图层的平铺大小与偏移,遵循标准地形创建流程 所有着色器功能都可以在材质上以模块化形式启用/禁用,所有参数都有提示说明其功能。 🌟 导入后请打开资源包中的 ReadMe 文件,获取更多性能技巧和已知限制信息。 演示场景 HDRP 与 URP 版本的 TerraFormer 资源包均附带 2 个“Island”与“Mountains”演示场景,可从 Assets >> TerraFormerShaders >> _scenes 目录加载。 在 HDRP 中,示例场景使用 Unity 的 HDRP 水系统,要在水面上启用反射,必须前往项目设置,在 Graphics => HDRP Global Settings => Frame Settings (Default Values) => Lighting => Screen Space Reflection => 下启用“Transparents”选项。 HDRP 示例场景性能技巧 通过在场景中禁用水面,除了禁用部分后处理特效(如 Volumetric Fog、SSR 和 SSAO)外,还能节省大量性能和构建时间。 此外,开启曲面细分的平行光阴影可能消耗过多性能,因此需要根据目标平台调整阴影设置;如果显卡是 RTX 系列,建议启用 DLSS;如遇到性能问题,可从材质中调整曲面细分设置。 “Tiling Remover”功能可能严重影响性能,尤其是在所有 8 个图层都启用该选项时,因此要么关闭它们,要么尽量在更少的地形层上使用。 已知限制 - HDRP 版本的 TerraFormer 不支持 Forward Rendering 路径 - 在 Unity 完全支持最新 DX12 特性之前,DX12 性能通常低于 DX11 - 这些着色器最适合中高端系统,推荐 GPU 为 URP 版 RTX 2000+ 系列、HDRP 版 RTX 3000+ 系列,目前不支持移动端和 VR 设备 - 建议在材质上启用“Draw Instanced”选项,但如果 GPU 成为瓶颈,低端 GPU 上性能可能会下降 - 当前版本的 TerraFormer 在 URP 中不支持曲面细分