UE4_材质_水涟漪、水深制作_Ben教程

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

效果图如下:

创建水材质的教程,首先需要外出收集一些参考,看一看你将要做的事情很重要,确定将要模仿物体的关键属性,从这些拍摄的视频和图片可以看出,水表面具有一些惊人的表面波纹图案:

随着深度的增加,水会改变颜色,水越深越不透明。可以看到水在反射周围环境

反射的有趣之处在于,当您直视水下时,可以看到水底,当您横看水面时,反射更明亮,表面上的波浪和涟漪会创造一些有趣的扭曲图案,折射光线并使底部的物体扭曲。我们可以创建在急流中形成的泡沫。

任务主要分三块,第一先创建一些水表面涟漪,然后创建深度不透明和深度颜色,最后介绍反射和折射。

一、创建水表面涟漪(涟漪着色器)

1、网上搜索水法线贴图:

2、下载并导入:

3、创建水材质,导入法线贴图,并连接观察效果:

4、添加Panner节点

可以看到我们得到了水的涟漪,我们需要让它移动,添加panner节点,这个节点的作用是滚动纹理,所以只需将节点连接到法线的uv插槽,我们只需设置下参数即可:

但是你会发现这样太规则速度太快了,接下来我们来解决这2个问题。

5、利用WorldPosition节点 +ComponentMask节点来创建UV

我想利用世界位置进行投射uv而不是用uv进行投射,添加节点worldpositionWS,我需要的是X和Y轴方向,而不需要Z轴方向,因此需要添加componentmask节点,

效果如图:

6、添加Multiply节点控制uv大小

你会发现贴图太小了,所以我们还需要做的是通过multiply节点来控制uv的大小,乘以一个0.0035的常数:

效果如图:

Tips:

Panner(平移) 表达式输出可用于创建平移(或移动)纹理的 UV 纹理坐标

项目

说明

属性

速度 X(SpeedX)

指定在 U 方向上平移坐标的速度。

速度 Y(SpeedY)

指定在 V 方向上平移坐标的速度。

输入

坐标(Coordinate)

接收可以通过表达式来修改的基本 UV 纹理坐标。

时间(Time)

接收用来确定当前平移位置的值。这通常是用来提供常量平移效果的 Time(时间) 表达式,但是,也可以使用 Constant(常量) 或 ScalarParameter(标量参数) 来设置特定偏移,或者通过 Matinee 或蓝图来控制平移。

Panner(平移)会生成根据"时间"(Time)输入而变化的 UV。"坐标"(Coordinate)输入可用于处理 Panner(平移)节点所生成的 UV(例如,使其偏移)。

现在平移不动,我需要给它个speed,如下图:

但你会发现它非常缓慢。我们需要加大此值,设为17.5.你会发现它们是沿着对角线的方向进行移动。这是因为此值在U和V方向上是一样的,所以我想使用2个值分别控制。

7、制作不同滚动方向的涟漪效果(法线贴图)

我们接下来要做的是,复制这些节点,采样法线贴图多次,每次滚动不同方向,这样我可以在这些涟漪当中创建一些混乱,让它使用不同的滚动速度和缩放值,如下图:

它们在Y轴向上,滚动相反。

8、法线低开销混合(Append+Add+DeriveNormalZ)

法线混合中,有一种非常廉价的方式来混合此节点,对X和Y来进行混合:

再添加一个乘法节点来控制法线贴图的强度,添加一个DeriveNormalZ节点来求出法线,连接到法线引脚:

效果如下图:

现在是我们有了2个法线贴图,它们在不同的方向滚动,它们的比例和速度略有不同,它们最终得到了很酷的东西。开始看起来像水。

9、制作缓慢移动的大波浪

我们还想对波纹再做两件事,我要再复制这些节点,这组法线采样将做一些有趣的,比较大的缓慢移动的波浪,会穿过表面,它会打碎任何tiling。

对于这个uv的缩放常数0.003,我想使用个2维向量替代它,对于速度我将改为2.15,2.8.同样需要添加一个乘法来控制法线的强度。然后与上面2个滚动的涟漪法线贴图进行混合,并求出法线Z值。

上面两个法线是一个比较小的法线,下面这个是相对较大的法线。可以很好的完成降雨的涟漪波动。

10、把雨滴法线和涟漪法线混合(BlendAngleCorrectedNormals)

使用我们之前创建的天气波动函数Weather ripples,我将要添加另一个世界位置节点,乘以0.005,我要将其用于uv。我要给这些涟漪一个强度值,然后将它们与涟漪进行混合BlendAngleCorrectedNormals。所有水面涟漪都加在一起,让它们与雨滴涟漪混合在一起,这样可以在水面涟漪上添加上小水花,锦上添花。

这里你会看见水有水波纹,同时雨滴很好的击中了表面。

二、创建深度不透明度和深度颜色(水深着色器)

上面的步骤主要是在水面创建涟漪,接下来我们来创建深度不透明和深度颜色,先来看下效果:

明确我们将要制作的效果。我们继续在上面步骤中的效果进行制作:

我们已经拥有了涟漪和雨滴,还没有任何深度不透明和深度颜色。

1、修改材质混合模式

首先我们选择根节点,把混合模式修改为半透明Translucent。

这种设置将允许我们设置不透明度。

2、(水深计算)Scene Depth - Pixel Depth

有两件事情能够控制水的不透明度,一个是注视的角度;另一个是水深,水越深越不透明。因此我们需要来测量水的深度。我需要告诉你有两个节点可以用来测量深度,一个叫场景深度Scene Depth,另一个叫像素深度Pixel Depth。为了解释这两个节点,我们引入一些插图,可以直观的引导您了解这些节点在做什么?插图就是我们的场景,您可以看到在水的下方,有些岩石在水床上。

这里水面上有一个小图标,代表相机在那里。

我们需要测量相机到场景的距离,这就是我们的第一个节点场景深度。

场景深度测量的距离是相机到一直穿过的物体的距离(相机一直穿过的距离)(Scene Depth measures the distance from where our camera is all the way through the water to the bottom this sends a ray that goes through the current transparent object and hits whatever is behind it),这个节点给我的就是相机到水面以下东西的距离(this node gives me is the distance from my camera to whatever is behind my water surface)

另一个节点,我们叫像素深度,这个节点是做什么的?是给我们相机到水面的距离。

我们用场景深度减去像素深度就得到了一个向量,水面到水底的距离。蓝色的线段长度就是水面到水底的距离。这就是我们第一种计算水深的方法。

让我们回到虚幻引擎,来看看结果。添加一个减法节点.

结果我们让它除以一个值,水深的值100.超过这个距离值100cm,水变得完全不透明了。

也就是这个场景深度与像素深度的距离差除以100,距离如果是100,则正好是1,大于100则大于1了。

我们可以添加power节点,来控制衰减曲线

我们把power连接到基础颜色上来观察场景。

你会发现水越深,越白,越浅的地方颜色越暗。

数据传递到基础颜色,已经进行了伽玛调整,我们通过power(x,2.2)来进行撤销调整。

我们发现颜色已经正常了,特别是水面离石头很近的地方。

相机直视时

倾斜视角时

会随着相机角度的变化得到水深的不同角度值。Depth changes based on view angle。

实际上我们上面计算水深的方法并不是真正计算实际水深的方法,我们来看看真正的计算水深的方法应该是什么?

3、水深计算修正

真正的水深应该是相机击中水面时,直接向下,击中任何东西,然后计算深度的值。我们首先要获取场景深度和像素深度的值,取代减法的是我们要除以它们,添加一个除法节点,然后将场景深度除以像素深度,然后我想做的是把自己世界空间的定位,而且我也想要摄像机的世界位置,这样我就可以同时使用这2个功能,我使用它们我需要根据水的高度进行调整,所以我要创建第三个向量,得到一个位置。我的相机位置和世界位置,我需要为水的高度创建第三个向量,所以我要向向量添加个常量,设置为(0,0),高度我要添加自己的值,这就是我水的高度,切换回场景,选择我的水,发现其高度为70。

我将从相机位置和世界位置中减去第三个向量,我现在已经改变了在相机位置、绝对世界位置定位到了水高的空间,我将投射一条线从绝对世界位置到相机位置,使用减法,现在我要乘以这个值,

原理分析:世界位置减去(0,0,70),实际上得到的是从(0,0,70)指向世界位置的一个向量,而摄像机的位置减去(0,0,70),实际上得到的是从(0,0,70)到摄像机的一个向量,前面向量减去后面向量实际上得到的是摄像机到任一位置即世界位置的向量,这个向量的长度为pixel depth。方向也是(而pixel depth节点获得的只是这个向量的长度)。然后我们再让它乘以场景深度与像素深度的比值,就得到了从摄像机位置到水底位置的即场景深度的向量,让场景深度的向量加上摄像机到(0,0,70)水面中心的向量(加就相当于减减),得到的就是(0,0,70)到水底的向量,这个Z轴的值是负的,我们用1-就得到了正的,相差1,几乎忽略不计。这样我们就得到了场景深度位置的水深。

注释如下:

水深真正的效果应该为下图:

围绕我们场景移动,深度保持不变。

这里有个缺陷,如果水平面不平坦,比方说上坡上,你将无法获得这个值。可以使用这个近似值。多次使用近似值。

4、Fresnel

我们使用什么来测量我们的视角和水面的角度,我们使用Fresnel节点来进行。

它在眼睛向量和表面法线向量之间做点积,如果这两个向量是平行的,则返回1,垂直他将返回0值,还有一个指数值,在这里设置成3而不是5.这样我把这个值加到深度遮罩上去,钳制在0-1,这样就能得到正确的效果。

俯视时:

平视时:

此节点的法线应该是生成的法线,使用normalWS。

材质没有法线接口,我们需要修改材质的照明模式为表面半透明。

同时把涟漪与水滴的混合法线连上。

修改后,运行效果为:

5、水面与突出石头边缘的软化(Depth Fade)

使用Depth Fade对水面和石头的边缘进行过渡软化,此节点可以修改淡入淡出的距离,可以更改为30,节点及运行效果图如下:

我们一直都是把不透明度传递给颜色,方便查看,现在给不透明度,看看效果如下图:

6、给水添加颜色

我们需要做的最后一件事情是为水添加颜色,上图中水默认的颜色是深黑色。水的深度变深时颜色变深,所以我们需要线性插值节点,根据不透明度蒙版在浅蓝色和深蓝色之间过渡。

运行效果如图:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java网络编程(JavaWeb的基础)

Java网络编程(JavaWeb的基础) 文章目录 Java网络编程(JavaWeb的基础)前言一、网络编程概述1.1 软件架构&网络基础1.2 网络通信要素:IP/端口/通信协议1.3 传输层协议:tcp/udp 二、网络编程API2.1 InetAddress类2.2 Socket类&am…

第三届人工智能、物联网与云计算技术国际会议(AIoTC 2024)

第三届人工智能、物联网与云计算技术国际会议(AIoTC 2024)将于2024年9月13日-15日在中国武汉举行。本次会议由华中师范大学伍伦贡联合研究院与南京大学联合主办、江苏省大数据区块链与智能信息专委会承办、江苏省概率统计学会、江苏省应用统计学会、Sir Forum、南京理工大学、南…

如何找到正确的网络钓鱼目标

在深入研究联系人收集之前,我们希望确保对可用的攻击面有一个清晰的了解。我见过许多渗透测试者只获取客户端提供的主域,通过 theHarvester、linkedInt、maltego 等运行它,并将输出称为目标列表。在这样做的过程中,这些渗透测试机…

云效BizDevOps上手亲测

云效BizDevOps上手亲测 什么是云效项目协作Projex配置2023业务空间原始诉求字段原始诉求工作流创建原始诉求配置2023产品空间创建主题业务原始诉求关联主题配置2023研发空间新建需求需求关联主题 与传统区别云效开发流程传统开发流程云效BizDevOps 操作体验 什么是云效 在说到…

203. 移除链表元素【链表】【C++】

题目描述 题目描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5] 示例 2&#x…

Labview_Occurrencel(事件发生)

PS:这里遇到 一个很Low的事情: 在停止第二个while循环的时候出现了停止不了的情况。因为等待事件发生设置的超时时间为:-1。所以等事件发生后出现了条件接线端已经执行的情况,所以当下次事件发生时未能及时停止。初版的停止设置如下图&#x…

AI赋能视频剪辑师:人工智能时代,视频剪辑师该如何剪辑?

随着科技的飞速发展,人工智能(AI)已经渗透到我们生活的方方面面,视频剪辑行业也不例外。在这个全新的时代,AI技术为视频剪辑师带来了前所未有的便利和创新空间。那么,在人工智能时代,视频剪辑师…

红海云签约联东集团,引领产业园区领军企业人力资源数字化新范式

北京联东投资(集团)有限公司(以下简称“联东集团”)是集产业园区运营、模板钢结构和投资业务为一体的集团化公司。联东集团独创了产业聚合U模式,致力于打造产业集聚平台,服务于实体企业成长和地区经济发展。…

数据结构与算法笔记:高级篇 - 向量空间:如何实现一个简单的音乐推荐系统?

概述 很多人喜都喜爱听歌,以前我们用 MP3 听歌,现在直接通过音乐 App 在线就能听歌。而且,各种音乐 App 的功能越来越强大,不仅可以自己选歌听,还可以根据你听歌的喜好,给你推荐你可能会喜好的音乐&#x…

文件安全存储面临的三大困扰?企业可轻松一键解决

企业文件存储是企业生产经营要解决的基础性问题,一般来说,企业常见的文件存储方式有如下几种: 直接附加存储(DAS): 特点:数据备份和恢复会占用服务器主机资源(如CPU、系统IO等&…

推荐一个shp修复工具

我们在《如何解决ArcGIS中数据显示乱码问题》一文中,为你分享过打开shp文件的乱码问题。 现在再为你分享一个shp文件的修复工具,你可以在文末查看该工具的领取方式。 shp文件修复工具 Shapefile(简称SHP)是Esri推出的一种广泛使…

Centos安装Snaped

本人操作系统为Centos 7 1. 安装epel 和 copr yum #第一步安装epel sudo yum install epel-release #第二步安装copr sudo yum install yum-plugin-copr 2. 添加存储库 sudo yum copr enable ngompa/snapcore-el7 3. 安装snapd软件包 sudo yum -y install snapd 等待安装完…

PDF处理篇:有哪些免费的PDF注释工具

PDF 是一种功能强大的格式,广泛用于处理和传输数据。您可以创建自己的 PDF 文件,也可以使用其他人创建的 PDF 文件。但是,有时您想在 PDF 文件中包含其他文本、图形和其他元素。这就是 PDF 注释器为您提供帮助的地方。 有许多可用的 PDF 注释…

去掉window11设备和驱动器中的百度网盘图标

背景 window系统设备驱动器中显示百度网盘图标,个人强迫症,要去掉!!! 去掉window11->设备和驱动器->百度网盘 的图标 登录百度网盘点击”同步“ 点击设置 在基本设置里面去掉勾选“在我的电脑中显示百度网盘…

Node.js全栈指南:认识MIME和HTTP

MIME,全称 “多用途互联网邮件扩展类型”。 这名称相当学术,用人话来说就是: 我们浏览一个网页的时候,之所以能看到 html 文件展示成网页,图片可以正常显示,css 样式能正常影响网页效果,js 脚…

这5款Windows高质量软件,吊打付费,谁用谁爽

咱们话不多说,进入我的电脑。 一键远控 一个支持远程控制电脑、传输文件、观看视频、锁定电脑屏幕以及重启和关机的免费远程控制软件。 再输入对应的设备识别码和验证码后,就可以对另一台电脑进行各种操作,同时也支持多台设备同时也能控制。…

JOSEF约瑟 JOXL-J拉绳开关 整定范围宽

用途 双向拉绳开关的壳体采用金属材料铸造,具有足够的机械强度,抵抗并下工作时脱落的岩石,爆块等物体的撞击不被破坏,当胶带输送机发生紧急事故时,启动拉绳开关,可立即停机报警,防止事故的扩大,保证工作现场的人身安全…

杀手级AI应用前瞻,一文带你了解8个ai大语言模型

一、大模型解析(LLM、MLLM、GLM) 基础概念: Transformer:ChatGPT的核心结构是Transformer,这是一种采用自注意力机制的深度学习模型。通过自注意力机制,Transformer能够理解输入文本的上下文信息&#xf…

【数据分享】《中国文化及相关产业统计年鉴》2013-2022

而今天要免费分享的数据就是2013-2022年间出版的《中国文化及相关产业统计年鉴》并以多格式提供免费下载。(无需分享朋友圈即可获取) 数据介绍 在过去的十年里,中国的文化及文化产业经历了翻天覆地的变化。随着《中国文化及相关产业统计年鉴…

3D数字人视频合成用户指南

数字人开放平台3D互动数字人如何接入_虚拟数字人(DVH)-阿里云帮助中心3D互动数字人(对应开放平台的“智能客服”场景)是虚拟数字人开放平台提供能够支持用户与3D数字人进行实时语音交互的数字人产品能力,需要配合智能对话机器人产品使用。本篇…