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

纹理大小调整后效果:


三、进一步优化

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

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

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

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

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

最后效果:

相关推荐
90后小陈老师1 天前
Unity教学 项目2 2D闯关游戏
游戏·unity·游戏引擎
噗噗夹的TA之旅1 天前
Unity Shader 学习20:URP LitForwardPass PBR 解析
学习·unity·游戏引擎·图形渲染·技术美术
nnsix1 天前
Unity ReferenceFinder插件 多选资源查找bug解决
unity·游戏引擎·bug
gzroy1 天前
Unity Shader Graph实现全息瞄准器
unity·游戏引擎
AA陈超1 天前
LyraStarterGame_5.6 Experience系统加载流程详细实现
c++·笔记·学习·ue5·虚幻引擎·lyra
90后小陈老师1 天前
Unity教学 基础介绍
unity·游戏引擎
90后小陈老师1 天前
Unity教学 项目3 3D坦克大战
3d·unity·游戏引擎
秦奈1 天前
Unity复习学习随笔(五):Unity基础
学习·unity·游戏引擎
nnsix1 天前
Unity ReferenceFinder插件 窗口中选择资源时 同步选择Assets下的资源
java·unity·游戏引擎
二狗哈1 天前
Cesium快速入门21:Primitive材质类型与设置
3d·webgl·材质·cesium·地图可视化