虚幻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轴投影就是错误的贴图。

纹理大小调整后效果:


三、进一步优化

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

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

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

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

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

最后效果:

相关推荐
龙智DevSecOps解决方案19 分钟前
Perforce《2025游戏技术现状报告》Part 3:不同行业挑战以及Unreal、Godot、自研游戏引擎的应用趋势
游戏引擎·godot·游戏开发·perforce
联系QQ192263821 分钟前
完整的PID和LQR四旋翼无人机simulink,matlab仿真,两个slx文件一个m文件...
ue5
jtymyxmz13 小时前
《Unity Shader》12.2调整屏幕的亮度、饱和度和对比度
unity·游戏引擎
melodymint14 小时前
第六届材料物理与化学国际研讨会(ICMPC 2026)
科技·材质·物理·国际学术会议·物理化学
吴梓穆21 小时前
UE5 插件没有自动打包所需的dll
ue5
AllBlue21 小时前
unity嵌入安卓界面,如何显示状态
android·unity·游戏引擎
丫丫7237341 天前
Three.js 材质系统总结笔记
javascript·笔记·材质
tealcwu1 天前
【Unity技巧】实现在Play时自动保存当前场景
java·unity·游戏引擎
tealcwu1 天前
【Unity基础】实现Scroll View跟随动态内容滚动
java·unity·游戏引擎
zhangzhangkeji1 天前
UE5 蓝图-游老师-10-蓝图中的选择分支与循环:br , for loop, while loop
ue5