UE4材质 制作UV贴图

我们想要制作一张uv贴图,是一个什么意思呢?我们知道一般来说,我们都是根据uv来采样贴图,一般来说这个事情都是美术同学来制作的,所以我们想要进行的是在UE4中,动态或者根据自己的实际情况来生成一张贴图,并且我们要存储的内容也可以自己定。你可以自己生成法线贴图,或者是世界坐标的贴图,等等,并不拘泥于只存储颜色信息。

那么,我们如何进行相关的操作呢。

渲染目标

首先我们要做的就是生成一张RT,也就是renderTarget,
在内容浏览器中,我们进行创建,这里我们要创建两个RT。创建后,打开它们并将分辨率设置为所需的分辨率。一个大概的尺寸是1024x1024。你可以随便给它们起个名字,但我建议给它们起个名字:rt_scenecapture然后rt_expanded以避免以后混淆。

展开材质

制作一个新材质,并将其设置为“Unlit ”和“Two Sided”(防止任何光照贴图UV都被镜像,这将导致它们在展开时背面不清晰)。然后将这些节点插入到材质的世界位置偏移输入中。“Size”将是您设置的Scene Capture actor的Orthographic width。在本例中,我们将使用之前文章提到的BoundingBox0-1UV连接到自发光上。这很有用,因为它可以用于在光线跟踪或光子映射时检查材质中的光线位置。
![Material_Unwrap.jpg][1]

The Actor Blueprint

接下来我们将制作一个新的蓝图Actor并添加一个“场景捕捉组件2d”组件。

![SceneCaptureSettings.gif][2]

选择组件并将“投影类型”(Projection Type)设置为“正交”(Orthographic)并将“正交宽度”(Ortho Width)设置为1000,以匹配“UV展开大小”(UV Unwrap Size)1000。将纹理目标设置为我们在第一步中创建的rt_scenecapture。同时将位置设置为0,0,500,并将旋转设置为-90,-90,0。这是为了从自顶向下的视图匹配UV展开的方向。最后,将“Capture Every Frame”设置为false,以防止它无缘无故地连续捕捉。

接下来,将“静态网格”组件添加到蓝图中,并将其所有设置保留为默认值。然后添加一个新变量,使其成为“静态网格”类型并使其可编辑(变量右侧的这个小眼球按钮)。
![ConstructionScript.gif][3]
现在转到蓝图的构造脚本,放置一个“set static mesh”节点,该节点将静态网格组件设置为使用您创建的“static mesh”变量。接下来,添加一个“Set Material”节点并指定前面提到的展开材质。具有多个材质元素的静态网格可以使用“get num materials”-1作为最后一个索引的forloop将展开材质指定给所有元素。

现在我们只需要在事件图中添加一些蓝图节点。首先,我们放置一个“自定义事件”并将其命名为“Dilate”。在这次活动中,我们只做了两件事。首先我们告诉场景捕捉来捕捉图像。然后我们调用“Draw Material to Render Target”函数。我们将膨胀材质用作材质,将第二个渲染目标rt_expand用作指定的渲染目标。

一旦将此数据写入渲染目标,通常可以使用实际的渲染目标执行所需的任何操作,因为位置贴图在HDR形式下最有效。如果要创建扩张纹理的静态纹理,可以在内容浏览器中的渲染目标上单击鼠标右键,然后选择“创建静态纹理”:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Papals

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值