【UE4_运行时虚拟纹理混合】Runtime Virtual Texture Blending (RVT)
UE4纹理Game艺视界原创 15231 1
实名

通过了实名认证的内容创造者

发布于 2022-3-19 22:36:11

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 Game艺视界 于 2022-3-20 16:30 编辑

运行时虚拟纹理
运行时虚拟纹理使用一个运行时虚拟纹理资源,其拥有一个放置在关卡中的体积。其工作原理类似于传统纹理贴图,唯一差别是其会根据需要在运行时使用GPU。运行时虚拟纹理可用于缓存大型区域上的着色数据,使其能良好地进行地形着色。

首先打开虚拟纹理支持,
Edit—Project Settings—Engine(Rendering)—Virtual Textures(✓)
红框位置打勾后会提示重启虚幻引擎,时间可能会有点长重新编译纹理

f224b99e71955a60286c3bb03786822d.png

接下来我们将创建一种纹理:虚拟纹理它实际上将成为我们场景和其他虚拟物体的高度图,还有一张成为我们的景观材料
我们新建文件夹来存放这两种纹理:高度、颜色


06ffb2c0e482bd97a0f17a6256037a51.png

在文件夹内我们右键新建虚拟纹理:命名VT_Hight  VT_Mat(名称自定义)

双击我们新建的高度和基色两张纹理修改下虚拟纹理内容
高度

基色(适当修改纹理大小现在是256)然后保存两张图

创建好贴图是时候指定我们的景观的位置了,我们将获取景观的边界以便虚拟纹理将捕获材料数据。
接下来我们添加虚拟纹理体积选择拖拽到场景中
拖放到场景中会出现这个框框,这个黄框大小要与我们地形边界大小一致。
在细节面板会出现Virtual Texture将我们之前创建好的虚拟纹理高度拖拽进来

接下来我们用Transform From Bounds下吸管工具拾取我们地形Landscape(也可以是很大的静态网格视频9:00演示),也可以在前面向下三角号选择我们地形Landscape,然后点击Set Bounds匹配我们景观大小与高度。

接下来我们复制一个虚拟纹理体积重复上一步骤放入我们的RVT_mat这次拾取的地形纹理颜色(这两步就是在顶视图给我们地形拍个照片)
接下来我们回到地形的材质层,每种地形材质都不同,下图这一部分是用到材质贴图:颜色 法线 还可以添加 AO 粗糙度 因为是做测试就没有添加其他通道。

接下来我们就要告诉虚拟纹理它是这些通道
我们新建运行时虚拟纹理节点,把我们要输出的节点链接起来。
接下来我们运用绝对的世界位置节点通过mask去抓取B通道也就是Z轴来获取地形高度信息连接到世界高度位置
我们把地表贴图的法线从自身切线空间转换为世界空间
回到我们场景中在细节面板找到Virtual Texture添加我们拍照后的虚拟纹理
无论地形还是模型红框这一步是必须要做的。
这两个节点也可以用到
下一步我们进入到模型的材质节点中,我们用了一套案例的模板在这基础上添加我们的节点,这些是模型材质母材质包涵:颜色 金属 粗糙度 法线
接下来我们添加自己节点,首先将虚拟纹理节点添加到我们材料上命名为VT_Height同时在左侧添加我们虚拟纹理的高度
下一步添加世界空间坐标,通过mask的B通道获取Z轴跟我们创建地形时一样,将我们Vt下的高度从绝对世界位置中减去
再次获取对象高度,添加乘法控制混合高度,在添加除法控制混合程度。
整体节点链接这个阶段可以链接到我们材质颜色接口预览效果
接下来我们创建景观材料的虚拟纹理,将我们地表纹理投影到我们模型上。
创建好节点指定我们VT_Mat虚拟纹理
记得修改我们这两张虚拟纹理的设置
最后我们添加一个虚拟纹理开关默认开启打勾就关闭了
做好了母材质创建材质实例就可以替换我们模型任何材质
本文 【不是教程 不是教程】 只是学习过程笔记方便日后使用查找
视频教程在这(↓)


作者专栏:https://www.youtube.com/watch?v=xYuIDFzKaF4

原帖地址:【UE4_运行时虚拟纹理混合】Runtime Virtual Texture Blending (RVT) (qq.com)



本帖被以下画板推荐:

微信公众号:Game艺视界
使用道具 <
qq_哈达_ff2  发表于 2022-3-20 16:37:26  
2#
66666666666666666
回复 收起回复
使用道具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表