APSchmidt 发表于 2023-2-1 14:32

unreal中运行时如何景观编辑?

在运行时编辑景观的信息是很常见的请求,本文旨在分享在不实施全新系统的情况下实现这一目标所涉及的内容的见解。
景观编辑图层是一种仅限编辑器的功能,是实现景观程序修改的唯一方法。没有运行时挂钩,因为中间数据(所谓的“编辑层”)完全是编辑器专用的,并且大部分代码仅在编辑器中定义。编辑层在 GPU 上的编辑器中折叠/合并到最终的一组高度图/权重图(参见 LandscapeEditLayers.cpp),并且在目标平台上执行此操作本质上没有什么不可能,前提是它们已经实现了更高的功能集比 Shader Model 5.0(现在所有非移动平台和大多数移动平台都是这种情况),但是代码量和景观的分支(导航网格、碰撞、游戏玩法等)使得它需要付出巨大的努力才能转变这变成了启用运行时的功能。
这是一个大纲,希望可以作为一个很好的起点,了解在运行时可修改景观最有可能在技术上需要什么。请注意,您可能会发现除以下内容之外还需要执行其他步骤,这需要代表您进行进一步调查。

[*]将世界位置偏移 (WPO) 添加到从另一个纹理(单个附加层)或纹理数组(多层)读取的材质。这可能或多或少复杂,具体取决于 (a) 整个景观是否可以在运行时加载,并且所需要的只是每个附加层的单个纹理或渲染目标,或者 (b) 景观只能部分加载并且,与当前景观类似,高度图/权重图将需要拆分为多个纹理/渲染目标(很可能每个景观组件一个)。然后两者都置换顶点(仅垂直,如果您希望碰撞保持由高度场表示)并根据其邻居计算法线(请参阅 Engine\Shaders\Private\Landscape\LandscapeLayersHeightmapsPS.usf 中的 FinalizeHeightmap)。
[*]使用景观 MID 而不是 MIC 将这些纹理绑定到材质。为此,需要在景观 actor 上将 bUseDynamicMaterialInstance 设置为 true,然后绑定高度图/权重图纹理。在上面的 (b) 情况下,每个组件都需要接收自己的纹理。
[*]当发生变化时,通过以下方式重新生成碰撞组件:
[*]从 GPU 读回合并后的高度图/权重图。这可以通过复制到暂存纹理、编写 GPU 栅栏并在 GPU 上轮询该栅栏来异步完成。这是 FLandscapeEditLayerReadback 的目的,但也可以搭载 FLandscapeGrassWeightExporteror,因为它也能够导出 WPO(请参阅 ULandscapeComponent::RenderWPOHeightmap)。在这两种情况下,这都会导致至少 2 帧的延迟,因为 GPU 始终落后于 RHI 线程/渲染线程/游戏线程,并且异步回读操作涉及保持刷新率恒定但也不会立即获得结果。要使进程同步,可以调用 FlushRenderingCommands()。
[*]或者,如果您的图层高度图更改源自 CPU,请连接到 ULandscapeHeightfieldCollisionComponent 并在那里重建高度场数据。
[*]如果使用草的程序放置(即材质使用 LandscapeGrassOutput 生成不同类型的草),则有必要使草无效并生成新的草数据(即草的密度贴图)。请参见 LandscapeGrass.cpp。
[*]如果您修改权重贴图,则需要输出适当的物理材质指数。与草类似,这是在编辑器中使用材质中的 LandscapePhysicalMaterialOutput 并运行景观材质的专用版本以正确渲染主要物理材质的索引,然后在 CPU 上异步读回并存储到ULandscapeHeightfieldCollisionComponent。
[*]重新生成 Navmesh。
希望这些信息足以让您开始设计您的项目。无论您选择哪种方法,都不要低估所涉及的工作。如前所述,景观代码非常庞大,是许多其他游戏内系统(物理、渲染等)的源头。它还在内存使用、渲染和流媒体性能方面发挥着不可忽视的作用。在运行时而不是编辑时移动这些可能需要一些工作才能使其达到可接受的状态。
本地配置不够、电脑资源不足,如何解决Unreal渲染速度的问题?

Unreal虚幻引擎电脑配置的要求是比较高,特别是实时渲染,前期的硬件成本是比较高,这里有一个简单的节省硬件成本的方法,使用赞奇超高清云工作站,即使本地普通的电脑也能运行UE5软件,且普通电脑也能享受行业最高端的CPU和GPU,极大提高制作效率和使用体验,且使用方便快捷,全面支持3D应用软件插件运行,随时调用百余款软件插件,高效作业。
赞奇超高清云工作站可以为UNREAL 用户提供云端制作输出方案,提高工作效率。为Unity用户提供灵活、高效、低成本的云端烘焙服务,享受游戏制作的乐趣。用户在全国各地通过赞奇超高清云工作站直接连接服务器,共享一套资产, 可以直接在赞奇超高清云工作站上制作 / 修改工程文件,减少数据传输成本,高性能云办公选赞奇超高清云工作站!
赞奇超高清云工作站支持专业10bit色深、YUV444真彩无损显示。4K60帧的高清显示,让设计师处理高速动态视频时体验依然流畅。动画设计、影视特效等内容云端制作,快人一步。赞奇超高清云工作站行业领先配置、多规格高性能GPU机型,可秒级启动百万核算力资源,万核渲一图。极致稳定的计算性能,满足单集群上万台机器并发渲染,可以满足移动办公、人工智能、工业仿真、三维建模、视觉设计、影视制作、教育培训、动画渲染、娱乐畅玩等多场景应用。
页: [1]
查看完整版本: unreal中运行时如何景观编辑?