UE5 使用RVT制作地形材质融合

UE5的Runtime Virtual Texturing (RVT) 是一种动态虚拟纹理技术,其核心思想是通过运行时生成的虚拟纹理贴图,将不同材质、几何体的表面细节动态混合到一张或多张全局纹理中,从而实现高效的地形融合和材质混合。

之前写过一篇SVT:https://blog.csdn.net/grayrail/article/details/131221408

以UE5.3 第三人称模板为例,删除非地面以外元素开始制作。(因VT是根据XZ俯视角坐标进行采样并生成VT,因此删除非地面元素可方便测试)


VT基础配置

1.在项目设置中找到Enable virtual texture support开启虚拟材质支持

2.右键创建2个Runtime Virtual Texture资源。

3.两个资源分别进行设置,一张存放颜色信息另一张存放高度信息。

4.创建Runtime Virtual Texture Volume

5.点击Bounds可以自动匹配至目标,这里设置为地面静态模型即可,然后赋予对应VT贴图。此处需要创建2个Volume,一张颜色另一张对应高度。

#

VT材质传入&使用

6.打开地面材质球并打开母材质,开始处理VT材质传入操作

7.勾选Use Material Attributes,让最终输出的材质球节点变为Attributes,方便使用。

8.连接GetMaterialAttributes和Runtime Virtual Texture Output,配置当VT需要绘制时的逻辑

9.使用RuntimeVirtual Texture Sample节点进行RVT采样,使用VirtualTextureFeatureSwitch节点分别处理当开启VT和当没有开启VT时的材质操作。

10.需要注意,Runtime Virtual Texture Sample需要设置采样的VT贴图。

11.最后给需要被VT融合的场景物件创建材质球,连接如下节点,通过世界空间高度和地形高度图的高度进行混合即可:


参考:https://youtu.be/GSJFuoerkaw?si=-dd-Q3RuGtoMN7Ge