UE4丨窗户材质的制作

文章 此情可待成追忆
2021-4-15 14:46 158人浏览 0人回复
原作者: Thepoly 收藏 邀请
Hello . 大家好
今天给大家带来的是UE4窗户材质的制作
先来看一下最终的效果展示:


1
思路分析

在制作某些楼宇场景时,由于不想使用过多的时间去制作楼宇内部的场景,替代方案通常是使用一张简单的贴图做窗户材质,但是想要将窗户内部制作的更为精细,就需要在材质上花点功夫。

制作这类材质最核心的内容是UE4中自带的材质函数“InteriorCubemap”,单独看这个材质函数,其实已经有向内产生空间的感觉了。


做一个简单的材质连接,就可以初见成效。


一般情况,如果对于楼宇建筑制作窗户材质需求不高,做到这里就可以了。接下来对此材质做更多的效果变化。

2
随机角度变化的实现

如果想看到别的视角作为窗户材质的正面视角的话,则需要修改材质函数“InteriorCubemap”的UVs。

首先是要在Cubemap的四面墙里随机显示一面,此处从物体位置Object Position作为输入,分别拆分为三个轴向,取绝对值后两两相乘,用上Fmod节点,此处的B输入要为4,向上取整后追加矢量。总之就是借用了物体的当前三维坐标位置得到了新的坐标。


然后与TexCoord相加输出给材质函数“InteriorCubemap”的UVs。


将此材质创建材质实例,并赋予到一个正方平面上,此时在视图中拖动平面物体,是不会有随机效果产生的,所以记得要回到材质编辑器中,把材质函数“InteriorCubemap”的Randomize Rotation (B)右键提升为参数,并确保数值为True。


此时在视图中会的到一个随着面片物体移动产生随意视窗角度的材质。


然后将之前的TexCoord做一点点改动,以便在必要的时候可以修改Cubemap的UV参数。

3
随机窗帘的加入

方法和之前的类似,同样也是使用Object Position作为输入,通过一些简单的计算得到一个随机值。


之后将这个随机值与TexCoord配合输出给窗帘贴图的UV上,这里我做了一个switch开关,可以得到从两个方向随机开合窗帘的效果。


注意这里要在纹理编辑中修改窗帘贴图的Y轴平铺方式,否则窗帘开合的时候是被重复平铺的。


如果贴图在远处显示错误还要记得勾选“无Mip贴图”。


接下来对之前的Cubemap做了一个变色的处理。


要注意的是这里的几个输入对象,两个Multiply的B输入的都是从之前随机窗帘得到的数值。


此时的Lerp分别输入的是HueShift和变色后的窗帘,Alpha连接的是窗帘贴图Alpha缝隙处。所以这里在平铺没有占满的地方,就是改变明度和颜色的区域。


最后这里我又修改了一下Switch的方式,以便用一个开关就可以即时改变窗帘的位置。


4
法线和粗糙度的制作

这里都从之前的窗帘随机值中Add了一个B输入值,可以随机产生粗糙度和法线位置。


5
Cubemap的制作

最后说一下Cubemap的制作。由于材质函数“InteriorCubemap”是一个正方形,此处的Cubemap也需要制作一个正方形。

在虚幻引擎的帮助文档中有介绍过立方体贴图的制作,如下图。

我这里使用了虚幻商城里“照片级渲染”的资源,搭建了一个BOX盒体空间,并将四周的家具缩放后贴墙摆放。


为了方便得到六个方向的渲染图,我在场景中心创建了一个摄像机,并制作了一个Sequencer,每个关键帧的点对应一个面的角度。


然后使用高分辨率截图将六个面进行截图。


在Photoshop中将六个面的图片依次按照+X、-X、+Y、-Y、+Z、-Z的方式进行排列,这里可以参考一下官方的示例图。


导出的时候,这里使用的是Photoshop的DDS插件。


在UE4中记得要将Cubemap的压缩设置改为HDR。


6
细节制作

为了效果更好,我又加了窗框的效果,并在Photoshop中转换了法线,在UE4中使用Lerp合并了之前的窗户材质效果。


以上就是本次教程案例的内容了,希望大家可以从中有所收货。

本次案例是我的个人练习,如有不足之处,希望大家可以一起交流学习,一起变得更强!


- End -

路过

雷人

握手

鲜花

鸡蛋

最新评论

相关分类
热门教程
返回顶部
客服