虚幻UE 材质-进阶边界混合之WAT世界对齐纹理

边界混合前篇:虚幻UE 材质-边界混合之PDO像素深度偏移量

上一篇主要讲材质相似或者不同的两个物体之间的边界混合

这一篇主要讲自建材质且相同的两个物体之间的边界混合

文章目录


一、世界对齐纹理

世界对齐纹理(WAT,World Aligned Texture)是一种特殊的纹理处理方式,用于将纹理贴图与实际物体表面对齐,使得纹理在渲染时能够正确地贴在物体表面上,实现更加真实和逼真的虚拟场景。
不依赖于物体UV坐标,直接使用世界坐标

方便做"背景"混合

其实现原理为:将贴图生成在一个统一的世界立方体之中,然后映射或者投影在物体表面。

举一个例子:

雪地里的井盖,按常理来说井盖被雪覆盖了薄薄的一层,且应该在指定位置有脚印。

通过这样描述,我们可以对井盖和地面使用同一样的材质,然后设置世界对齐纹理,这样井盖和地面的贴图生成在统一的世界立方体中,最后整体朝某个方向映射到物体表面。

最终效果简版效果:

移动井盖后:(井盖的材质没有固定,而是跟随环境的变化而变化)

二、世界对齐纹理实验

1、制作材质

首先我们指定我们需要做一个与背景地面相关的材质,所以我们创建一个材质:

材质文件创建好了,我们得对井盖进行分析,需要设置为背景雪地一样的材质,所以基础颜色需要设置为雪地纹理,且进行世界对其。

并把它赋给雪地和井盖,赋给雪地的原因是程序需要知道是哪些物体进行世界对其

但是发现贴图大小不对,调整贴图大小

这里有几个参数可以讲解一下:

bash 复制代码
输入1:
Texture Object:这里之所以使用这个节点是因为把贴图转化成一个对象传入,
相当于一个容器,输入的是一个贴图对象,
而不仅仅是Texture Sample里面的颜色,
并且世界对其贴图的节点也是希望你传一个贴图对象。

输入2:
Texture Size:这里是用一个矢量RGB来作为对应X、Y、Z轴,
默认矢量RGB为1、1、1,单位向量,这样控制起来很方便。

输出:
XY / Z / XYZ Texture:这里是说明世界对齐的轴向选择,
如果为XY Texture:
下图展示,从z轴投影就是错误的贴图。

纹理大小调整后效果:


三、进一步优化

做到这里我们还可以对其进行优化,我们现在只是对基础颜色进行了世界对齐

我们还可以对粗糙度、法线进行世界对其,这样效果更加好了

注意:法线对应的是世界对齐法线节点

由于雪地贴图没有粗糙度纹理,所以这里可以不用连接,

这里只是举例如果有粗糙度纹理的情况下的做法

最后效果:

相关推荐
HAPPY酷1 小时前
UE5性能分析:追踪目录与分析目录的区别
ue5
mxwin3 小时前
Unity Shader 顶点动画:在顶点着色器中实现风吹草动、河流波动、布料模拟
unity·游戏引擎·shader·着色器
Tancenter3 小时前
CARLA Unreal Engine 4 (UE4) 在运行时遇到的 崩溃,与 Vulkan 图形 API 相关
ue4·carla
w-白兰地5 小时前
配置Unity中的ADB环境变量
unity·adb·游戏引擎
UTwelve5 小时前
【UE】如何正确旋转法线贴图
性能优化·ue5·材质·贴图·着色器
mxwin5 小时前
Unity Shader 几何着色器:动态生成图元与顶点拓扑修改
unity·游戏引擎·着色器
呆呆敲代码的小Y7 小时前
【Unity-AI开发篇】| 游戏中接入DeepSeek实现AI对话,完整详细步骤
人工智能·游戏·unity·ai·游戏引擎·u3d·deepseek
伪善者1 天前
UE5 插件打包成DLL
ue5·打包
相信神话20211 天前
第四章:Godot 4.6 核心概念与开发环境搭建
游戏引擎·godot·2d游戏编程·godot4·2d游戏开发
代数狂人1 天前
在Godot中应用面向对象原则:C#脚本实践
c#·游戏引擎·godot