UE4_材质_雨滴涟漪效果ripple effect_ben教程

学习笔记,不喜勿喷!侵权立删,祝愿生活越来越好!

雨水落下时会产生这些非常漂亮的同心环波纹,我们要做的第一件事是创建一个单个的圆环遮罩动画,我们希望环在开始的时候在中心很小,然后放大,然后淡出。

1、创建径向渐变纹理。

我们要从一个简单的径向渐变纹理开始,如下图:

 可以在ps中创建此效果,很简单。

2、动画效果制作

但是我想做的是动画效果,添加时间节点,因为时间是一切动画的基础。

因为我需要的是时间的一部分,所以我添加frac节点,节点frac的作用是无论它输入的是什么样的整数值。都会将其删除,只会保留小数部分。所以我将time节点连接到frac节点。我会得到一个介于0和1之间的重复的数值,从0到1,从0到1,波纹正是这样的。

接下来要做的是要减去1,我要创建一个常数节点,这样我们会得到一个从-1到0变化的值,然后再创建一个add节点,我要把渐变纹理加到里面去,这样我们会得到纹理从小到大并且向外逐渐扩张的效果。

这就是动画波纹效果的开始。从小逐渐变大再到无再从小变大。

3、多圈涟漪效果制作

接下来要做的是稍微增加对比度。我要乘以一个很大的值。它用于控制我的波纹的边缘的尖锐程度:当为20的时候,也就是原来的径向渐变是最大的时候,这个值乘以20,也就是原来0.05的位置的值变成了1.渐变过渡变得非常窄了。效果如下:

我还需要把它限制在0到5之间,目的是为了后面产生5圈涟漪的目的。

现在,如果我想创建波纹效果,我真正需要使用的是正弦波。正弦会产生好多0到1的渐变。

大家再来回顾下sine的曲线图:

正弦周期内有一半的值是低于0的,即为黑色。它与数学中的正弦函数是有区别的,我们为了让它与数学中的正弦函数相一致,可以修改它的周期为2π(6.283185)。

现在只有一个涟漪,如果我们想得到多个涟漪,我们可以乘以π。

这样又得到了多个涟漪效果。

接下来要做的就是弄清楚如何当它们到达尽头时,这些波纹立即在边缘消失。我应该怎么做呢?

4、越靠近边缘越暗的遮罩制作

我可以利用我的时间值,以便随着时间的变大,我要做的就是oneminus,当它接近1时,该值会降低。也就是原来的从0到1变为了从1到0。也就意味着越靠近边缘越暗。我们让涟漪的结果乘以这个变化就行。

我们就得到了这样一个越靠近边缘越暗的漂亮的遮罩。圆环越靠近边缘,它们也会逐渐消失。

5、使用自制的法线和遮罩组合而成的纹理

我们现在需要做的是,我们有一个非常漂亮的遮罩用于圆环,圆环遮罩转换成一些法线,为了做到这一点,我要改变这里的纹理,而不是雨滴渐变,我将选择这个raindrop雨滴的纹理,让我们看一下该纹理的外观。

各个通道如下:

红色通道是径向渐变如下

绿色通道如下

蓝色通道如下:

可以看出在绿色和蓝色通道是一个圆锥的法线贴图的x和y,我需要在蓝色通道中获取绿色,绿色通道中获取我的红色,我使用append节点,

然后我要乘以2减去1,因为法线向量范围是从-1到1的,而不是0到1,现在我有了法线数据的前两部分,要想让它变成normal,我需要在附加1这个值来作为法线的Z轴上的分量,数学上来说是不对的,但这样速度快。

连接到材质的normal引脚,来看看效果:

法线具有了小水滴的效果了。

但是我想做的事是根据我的遮罩为法线设置动画。在附加1之前,我需要把x和y的值乘以遮罩。

运行想过如下:

非常好的波纹形状,正是我想要的。

6、制作多个涟漪的纹理贴图

接下来我想做的不是一个涟漪,而是一堆涟漪,那样我就需要复制好多个,调调不同的大小。如下图:

但这儿还有个问题,我们需要不同的涟漪出现的时间不同,而不是像下面这样同时出现。

我们需要使用时间偏移图:

使用不同的颜色来表示开始的时间,正好放在纹理贴图的alpha通道中存储,

我们只要把时间偏移图加到time中去即可:

这时再来看效果:

这样我们就得到了不同时间发生的涟漪。

法线的基础知识可以参照这篇文章:

3D游戏常用技巧Normal Mapping (法线贴图)原理解析——基础篇

https://www.cnblogs.com/wangchengfeng/p/3470310.html

人眼对物体的凹凸感觉,很大程度上取决于表面的光照明暗变化,如果能通过一张贴图在一个平面上表现出由凹凸造成的明暗变化,则可以让人眼感觉这个平面是凹凸不平的(虽然这个平面还是平的)。法线贴图正是为了这个目的而产生的。

准确的说,法线贴图是Bump Mapping(凹凸贴图)的其中一种。第一个Bump Mapping由Blinn在1978年提出,目的是以低代价给予计算机几何体以更丰富的表面信息。30年来,这项技术不断延展,尤其是计算机图形学成熟以后,相继出现了不少算法变体,法线贴图就是其中很重要的一种。研究人员对法线贴图进一步改进,出现了Parallax Mapping(视差贴图), Relief Mapping等技术,实现了更逼真的效果。本文仅针对法线贴图进行介绍。

一条法线是一个三维向量,一个三维向量由x, y, z等3个分量组成,在法线贴图中,把(x, y, z)当作RGB3个颜色的值存储(如图2),并将其每个分量映射到[-1, 1]。例如,对于x, y, z各有8位的纹理,[0, 128, 255]表示法向量(-1, 0, 1)。

法线贴图中存储的法线最初是定义在世界空间中,但在实际中,这种方式很少见,因为只要物体移动,法线贴图则不再有效。另一种方式就是将法线存储在物体的局部空间中,物体可以进行刚体变换(平移,旋转,缩放),法线贴图依旧有效,但是这种方法并不能应对任何方式的变换,并且法线贴图不能在不同物体进行复用,增加了美工的负担。所以,现在现在普遍采用的解决方案是将法线存储在切线空间中。

简单的来说,切线空间可以理解为纹理空间的u,v方向和法向量n,这3个方向构成了切线空间,一般使用T、B和N表示,如图3所示。具体解释见【D3D11游戏编程】学习笔记二十四:切线空间(Tangent Space)_计算切空间 d3d-CSDN博客,这个博客解释的很好,没见过的童鞋可以看一看,第一次理解可能会有点困难。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/353067.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文发表CN期刊《高考》是什么级别的刊物?

论文发表CN期刊《高考》是什么级别的刊物? 《高考》是由吉林省长春出版社主管并主办的省级教育类期刊,期刊以科教兴国战略为服务宗旨,专门反映和探索国内外教育教学和科研实践的最新成果。该期刊致力于为广大教育工作者提供一个高质量的学术…

Docker部署常见应用之SFTP服务器

文章目录 简介Dockers部署单用户多用户用户信息加密使用SSH密钥认证 参考文章 简介 atmoz/sftp 是一个基于 Docker 的 SFTP 服务镜像,它使用 OpenSSH 来提供 SFTP 服务。这个镜像支持创建单个或多个用户的 SFTP 访问,并允许用户通过 SFTP 协议安全地共享…

CAN总线仲裁(四)

​ 多设备同时发送遇到的问题 CAN总线只有一对差分信号线,同一时间只能有一个设备操作总线发送数据,若多个设备同时有发送需求,该如何分配总线资源? 解决问题的思路:制定资源分配规则,依次满足多个设备的…

空气质量预报模式系统WRF-CMAQ

空气污染问题日益受到各级政府以及社会公众的高度重视,从实时的数据监测公布到空气质量数值预报及预报产品的发布,我国在空气质量监测和预报方面取得了一定进展。随着计算机技术的高速发展、空气污染监测手段的提高和人们对大气物理化学过程认识的深入&a…

【vue大作业-端午节主题网站】【预览展示视频和详细文档】

vue大作业-端午节主题网站介绍 端午节,又称为龙舟节,是中国的传统节日之一,每年农历五月初五庆祝。这个节日不仅是纪念古代爱国诗人屈原的日子,也是家人团聚、共享美食的时刻。今天,我们非常高兴地分享一个以端午节为…

高压防触碰预警装置,工期重要还是命重要?

“说了多少遍了,不要在高压线下赶工期”吊车违规施工碰撞到高压线,导致供电线路跳闸停电事故,现场火花四溅及其危险, 高压线路被外力破坏的情况,违规施工、赶工期、视觉盲区导致线路外破等情况,想必大家也…

基于STM32的简易智能家居设计(嘉立创支持)

一、项目功能概述 1、OLED显示温湿度、空气质量,并可以设置报警阈值 2、设置4个继电器开关,分别控制灯、空调、开关、风扇 3、设计一个离线语音识别系统,可以语音控制打开指定开关、并且可以显示识别命令词到OLED屏上 4、OLED实时显示&#…

基于B/S版java语言+SpringBoot技术开发的云HIS系统源码 HIS系统住院业务模块常见问题及解决方案

基于B/S版java语言SpringBoot技术开发的云HIS系统源码 HIS系统住院业务模块常见问题及解决方案 随着医疗技术的不断提高,住院治疗已成为许多病人的常规选择。但是,住院治疗不仅需要医护人员的精心照顾,也需要个高效的信息系统来保证整个治疗过…

flac格式如何转mp3?7大热门实用音频转换软件大PK

FLAC是Free Lossless Audio Codec(免费无损音频编解码器)的缩写,是一种在压缩文件大小的同时保留原始音乐质量的音频格式。不过,大多数音频格式都会在音乐质量和文件大小之间做出权衡。当你使用flac获得更好的音乐质量时&#xff…

C++ 63 之 函数模版和普通函数的区别

#include <iostream> #include <string> using namespace std;template<typename T> T myAdd(T a, T b){return a b; }int myAdd2(int a, int b){return a b; }int main() {int a 1;int b 2;char c a; // a的ask码 97// cout << myAdd(a,c) <…

BarTender软件最新版下载-bartender条码标签打印软件下载

​​BarTender​​是一款遵循“look and feel”标准的​​条码打印​​软件。​​BarTender​​条码打印软件能够帮助用户挥洒自如&#xff0c;轻松制作出标签条码&#xff0c;包括文本、图形、​​条形码​​和大多数序列化功能。BarTender条码打印软件功能强大、操作简单&…

基于QT和C++实现的中国象棋

一&#xff0c;源码 board.h #ifndef BOARD_H #define BOARD_H#include <QWidget> #include "Stone.h"class Board : public QWidget {Q_OBJECT public:explicit Board(QWidget *parent 0);bool _bRedTurn; // 红方先走int _currentPlayer; // 当前玩家&…

2025年计算机毕业设计题目参考

今年最新计算机毕业设计题目参考 以下可以参考 springboot洗衣店订单管理系统 springboot美发门店管理系统 springboot课程答疑系统 springboot师生共评的作业管理系统 springboot平台的医疗病历交互系统 springboot购物推荐网站的设计与实现 springboot知识管理系统 springbo…

5G工业路由器在智慧交通车路协同应用的深度解析

随着科技的飞速发展&#xff0c;智慧交通已成为现代城市发展的重要方向。在智慧交通的众多技术中&#xff0c;5G工业路由器凭借其高速、稳定、安全等特性&#xff0c;成为车路协同应用中不可或缺的一环。本文将在本文中深度解析5G工业路由器在智慧交通车路协同应用中的重要作用…

Interlinks Manager评测:WordPress 的最佳内部链接插件?

在这篇Interlinks Manager评测中&#xff0c;我们将彻底查看它是否真的是 WordPress 最佳内部链接插件&#xff01;我们还将检查它是否值得您尝试。现在就开始吧 快速浏览一下插件&#xff0c;你就会对其提供的功能有一个基本的了解。 Interlinks Manager是一款 SEO 插件&…

C++迈向精通:当我尝试修改虚函数表

尝试修改虚函数表 本期纯整活儿好吧&#xff01;&#xff01;&#xff01;&#xff01; 初衷 有一天我突然开始好奇虚函数表是否真的存在&#xff0c;于是我开始想是否能够从C中查看或者调用虚函数表中的内容。&#xff0c;于是有了下面的操作。 操作过程 起初我并没有思路…

一文学会消息中间件的基础知识

什么是消息队列 队列数据结构 我们都学习过数据结构与算法相关的内容,消息队列从数据结构来看,就是一个由链表或是数组构成的一个先进先出的数据容器。由链表实现还是数组实现都没关系,它只要满足数据项是先进先出的特点,那么就可以认为它是一个队列结构。队列是只允许在…

已解决:geecg Column ‘id‘ in order clause is ambiguous

报错&#xff1a;Column id in order clause is ambiguous&#xff1b; MyBatis关联查询&#xff0c;相同字段名冲突&#xff0c;sql语句已经使用别名但仍然报错。 分析&#xff1a;写mapper映射文件时&#xff0c;在写到一对一关联&#xff0c;一对多关联时&#xff0c;由于两…

MATLAB画图时添加标注显示有效数字的位数,可以编辑此函数

本来系统有个函数&#xff0c;在图像窗口选择标注工具&#xff0c;再在图像窗口右击鼠标&#xff0c;选择"编辑文本更新函数..."&#xff0c;即打开系统的设置函数&#xff0c;可以修改最后一行&#xff1a; formattedValue [valueFormat num2str(value,4) removeV…

论文阅读笔记:Towards Higher Ranks via Adversarial Weight Pruning

论文阅读笔记&#xff1a;Towards Higher Ranks via Adversarial Weight Pruning 1 背景2 创新点3 方法4 模块4.1 问题表述4.2 分析高稀疏度下的权重剪枝4.3 通过SVD进行低秩逼近4.4 保持秩的对抗优化4.5 渐进式剪枝框架 5 效果5.1 和SOTA方法对比5.2 消融实验5.3 开销分析 6 结…