当前位置:网站首页>UE4动画雨滴材质制作教程
UE4动画雨滴材质制作教程
2022-08-05 05:17:00 【xzljj】
虚幻引擎非常适合创建简单且美观的动画着色器和效果,因为它不需要强大的编程技能,只需要基本的数学知识。你需要两个参数来调整动画材质:根据时间来改变贴图的UV坐标以及时间。
1、雨滴材质
动画水滴的工作流程都差不多相同,我首先制作了一些包含材料所需信息的静态纹理。
制作中需要用到的一些贴图:
静态水滴的法线贴图以及打包的Masks。
R,时间变化的Mask,负责在正确的时间出现和消失的水滴。
G,用于将水滴与表面混合的Mask。
B,一个噪点Mask,使水滴看起来更混乱。
动态水滴的法线贴图和打包Masks。
R,水滴Mask。
G,一个用于水滴路径的Mask,不允许其他静态水滴出现在运动的水滴的途中。
还有一张Distortion的法线贴图,它会影响液滴在表面上流动的方式,使其更加不规则。
然后,我制作了两个包含所有必要信息和逻辑的函数。它们分为两组:随时间出现/消失的静态水滴和流过表面的动态水滴。
2、工作流程
首先,需要获取纹理的坐标并开始向必要的方向移动它们。稍后,将使用这些坐标对Distortion的法线贴图进行采样,并为水滴的纹理坐标添加轻微的扭曲。借助有关扭曲和纹理坐标位移的信息,可以对法线和Mask进行采样。
然而,为了呈现不仅仅是简单的水滴流动的效果,我使用了Mask的红色通道,并使其强度随时间变化。另外,我还通过添加一些简单的数学函数使水滴随时间出现和消失。
第二个函数也是如此。它包含置换纹理坐标和扭曲,但略有不同。当我制作流动水滴的纹理时,我只为它制作了一滴水和一组Masks。为了填充水滴,我必须添加一个循环,在该循环中水滴被复制、移位、具有不同的速度(每个水滴都是唯一的),并最终相互混合。
为了使扭曲更有趣,我使用了两次扭曲贴图:用于比较大的扭曲和不太密集的扭曲。然后,它们沿轴以不同的强度混合在一起。假设,可以在一张地图中使用多个水滴或一张地图用于所有水滴,在这种情况下,所有水滴将以相同的速度相互平行移动,因为你无法影响单滴的速度和时间。
我还有一个自定义节点,其中包含有关最大滴数的信息,并使用当前位置和滴速设置了一个静态数组。它可以手动完成,也可以在 Unreal 中完成,我这里使用的是3D Max的脚本。
该脚本获取有关编辑器中所选对象的位置和大小的信息,并将其返回到定义的数组中。在我的例子中,我只使用了 XY 坐标和一个下降速度的指数。同样,可以创建一个包含有关液滴大小信息的数组并将其添加到材质中。
过滤器准备好后,我调整了它们的输出参数。我还创建了一些可以在材质中更改的输入参数,例如动画速度、平铺、水滴失真强度、法线贴图强度和使用过滤器的纹理。
之后,这些过滤器可以用于任何材料,无论其类型如何。材料的参数可以在其掩码的帮助下进行调整。
作为示例,我制作的第一个基础材料是哑光不透明表面,这是混合必要蒙版和设置颜色、粗糙度和水滴法线等参数的起点。
如果将材质类型更改为透明并同样添加透明度和扭曲,将得到一个简单的玻璃材质。
为了使物体更加有趣和复杂,可以通过模糊玻璃后面的背景来添加冷凝效果。此技巧仅适用于透明材料和后期处理。同时,必须降低透明度,仍然保持材质类型透明。之后,是时候为材质添加模糊效果了。
然后,可以添加Mask以避免在平行于地面的表面上移动水滴。
以同样的方式,可以将其与现有纹理混合,例如水滴从屋顶掉落的纹理或任何其他材质。
这是在后处理中使用函数的示例:
3、最后
不幸的是,所有这些效果都非常苛刻,因为它们更适合在屏幕上不占用太多空间的小表面,比如房间里的窗户。
使用的纹理、混合和复杂的数学越多,渲染材质的难度就越大。
为了优化,可以选择简化纹理,例如,如果不想要这样或那样的效果,可以减小它们的大小或去掉一些数学运算。在这个函数的情况下,我并没有针对某些特定的结果,而是尝试制作一些可以在必要时简化的多用途的东西。
边栏推荐
- 每日一题-字典
- 深度学习系列(二)优化器 (Optimization)
- 电子产品量产工具(4)-UI系统实现
- 【UiPath2022+C#】UiPath 练习和解决方案-变量、数据类型和控制流程
- [Database and SQL study notes] 8. Views in SQL
- 【22李宏毅机器学习】课程大纲概述
- ACL 的一点心得
- It turns out that the MAE proposed by He Yuming is still a kind of data enhancement
- 单片机按键开发库-支持连击、长按等操作
- A deep learning code base for Xiaobai, one line of code implements 30+ attention mechanisms.
猜你喜欢
随机推荐
原型版本管理
浅谈遇到的小问题
【nodejs】第一章:nodejs架构
WCH系列芯片CoreMark跑分
电子产品量产工具(5)- 页面系统实现
HuiFer 带你读懂 BeanFactory getBean 方法
C语言程序死循环问题解析——变量被修改
SharedPreferences and SQlite database
Detailed explanation of BroadCast Receiver (broadcast)
The University of Göttingen proposed CLIPSeg, a model that can perform three segmentation tasks at the same time
深度学习系列(二)优化器 (Optimization)
MSRA proposes extreme masking model ExtreMA for learning instances and distributed visual representations
[Intensive reading of the paper] R-CNN's Bounding box regression problem is detailed
电子产品量产工具(4)-UI系统实现
【ts】typeScript高阶:any和unknown
【UiPath2022+C#】UiPath 循环
链表章6道easy总结(leetcode)
八、请求处理之自定义类型参数绑定原理
Service
Redis集群(docker版)——从原理到实战超详细