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

纹理大小调整后效果:


三、进一步优化

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

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

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

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

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

最后效果:

相关推荐
一线灵3 小时前
跨平台游戏引擎 Axmol-2.9.1 发布
游戏引擎
地狱为王6 小时前
Unity使用RVM实现实时人物视频抠像(无绿幕)
unity·游戏引擎·音视频
小喵要摸鱼7 小时前
衣服面料材质宝典
材质
HahaGiver66610 小时前
Unity与Android原生交互开发入门篇 - 打开Android的设置
android·java·unity·游戏引擎·android studio
B0URNE19 小时前
【Unity基础详解】(5)Unity核心:Coroutines协程
unity·游戏引擎
xiaotao1311 天前
unity hub在ubuntu 22.0.4上启动卡住
ubuntu·unity·游戏引擎
小句1 天前
通过图表和详细流程解释XXL-JOB中任务从创建到执行的完整过程
unity·游戏引擎
!chen2 天前
Unity颜色曲线ColorCurves
unity·游戏引擎
B0URNE2 天前
【Unity基础详解】(4)Unity核心类:MonoBehaviour
unity·游戏引擎
AA陈超2 天前
虚幻引擎5 GAS开发俯视角RPG游戏 P06-29 属性信息委托
c++·游戏·ue5·游戏引擎·虚幻