内容:

*概述

*纹理文件

*基本颜色

*法线的设置

*标量参数和材质属性

*场景设置

*最终效果

概述

本教程由52VR翻译自unrealengine官方,在本教程中,我们将教您如何创建可以在移动设备上使用的实例化水资源。本教程是最新版本,支持只有在高端移动设备(如iPad Pro)才能进行的高品质移动端反射渲染功能。

**********请一定要下载本页面上的纹理文件**********

********还要确保您的项目设置>渲染(Rendering)>允许静态照明(Allow Static Lighting)已启用********

这对于确保反射能够正常工作非常重要。

纹理文件

文件下载:http://pan.baidu.com/s/1dF9sIkx

基本颜色

1.使用最高质量的移动设备/平板电脑创建新项目——空白蓝图项目。

2.导入从该页面的上述链接中下载并解压出两个纹理文件。

3.创建一个新的材质,并将上述两个纹理贴图拖入这个材质图里。

4.首先创建两个新的矢量参数来表示水域颜色——按住“V”键并点击材质蓝图中的空白位置。

5.现在将一个设置为较深的蓝色,另一个设置为较浅的蓝色。

6.按住“L”键在空白位置点击鼠标左键创建一个Lerp节点,并点击材质图,。

7.将深色连接到Lerp的“A”端口,将浅色连接到Lerp的“B”端口。

8.空白处点击右键并搜索菲涅尔(Fresnel)节点,并创建它。

9.将菲涅尔(Fresnel)输出连接到Lerp的Alpha端口,并将Lerp的输出节点链接到材质的基本颜色上。

10.按住“S”键在空白位置点击鼠标左键创建一个新的标量参数节点(命名菲涅尔指数)将其连接到exponentln节点用于控制菲涅尔的衰减。

 

 

 

法线的设置

 

1.接下来,按住“P”键在空白位置点击鼠标左键创建两个Panner节点。这主要用于使水看起来好像正在移动。

2.将两个Panner节点分别连接到两个法线贴图的UVs节点上。

3.将一个Panner的值设置为负值,并将另一个Panner设置为正值。根据速度X和速度Y坐标,我设置的是(-.04,-04)(。04,.04)

4.按住“U”键在空白位置点击鼠标左键创建一个TexCoord节点。

5.按住“M”键在空白位置点击鼠标左键创建两个新的乘法节点。这些将有助于在实例化材质时控制法线的大小/平铺效果。

6.创建两个新的标量参数。一个命名为大涟漪,一个命名为小涟漪。

7.将TexCoord连接到两个Multiply节点的“A”端口。

8.将大涟漪参数连接到一个Multiply的'B'端口,将小涟漪参数连接到另一个Multiple的'B'端口。

9.现在将大涟漪图与Panner的Coordinate节点相连,并将小涟漪与Panner的Coordinate节点相连。

10.创建一个新的Lerp,并将两个常规的纹理材质分别连接到A端口和B端口。

11.将此Lerp的输出口与材质的Normal(法线)端口连接。

标量参数和材质属性

1.现在创建三个新的标量参数。

2.分别命名为镜面,粗糙度和金属性,并将这些数据连接到相应位置。

3.在材质的“详细信息”选项卡中,确认已选中“移动”下拉菜单中的的“高质量反射”(High Quality Reflections)

场景设置

1.添加天空盒,将其移动性设置为“静态”

2.禁止“下半球是黑色”和“投影阴影”

3.添加方向光并设置移动性为“固定”

4.在场景中添加一个基本的球型物体。附上之前做的材质。

5.添加一个球形反射球,并将它放置在之前放入的球体周围以捕获反射。

最终效果

部署到高端移动设备时,您的设置的最终效果应如下图所示。

  记住:我应用了实体化材质,并添加了一大堆参数,才获得了这样理想的效果。

(本文由52VR开发网白犀牛翻译,由UE技术工程师姜春雨审核校对)

转载请注明出处和明确的回链地址,否则保留追究责任。

虚幻UE4中移动端水材质的设置的更多相关文章

  1. 如何将MagicaVoxel模型导入UE4中(2)

    前言 当可以把MagicaVoxel的静态模型导入到UE4后,我又开始不满足了.默认第三人称蓝图的"汽车碰撞人偶(雾)"与场景中的体素画风格格不入,于是,我便想着用自己建造的体素画 ...

  2. 使用虚幻引擎中的C++导论(二-UE4基类)

    使用虚幻引擎中的C++导论(二) 第一,这篇是我翻译的虚幻4官网的新手编程教程,原文传送门,有的翻译不太好,但大体意思差不多,请支持我O(∩_∩)O谢谢. 第二,某些细节操作,这篇文章省略了,如果有不 ...

  3. 充分利用 UE4 中的噪声

    转自:https://www.unrealengine.com/zh-CN/blog/getting-the-most-out-of-noise-in-ue4 UE4 推出基于材质的程序式噪声已经有一 ...

  4. 虚幻UE4的后处理特效介绍 http://www.52vr.com/thread-31215-1-1.html

    转载 虚幻UE4提供了后处理特效的功能,可以实现景深,光溢出,色调调整,饱和度等等.要使用虚幻4的后处理,就一定要用到PostProcessVolumn,这是一种特殊的体积,可以放置在场景中的任何位置 ...

  5. 使用虚幻引擎中的C++导论(四-内存管理与垃圾回收)(终)

    使用虚幻引擎中的C++导论(四)(终) 第一,这篇是我翻译的虚幻4官网的新手编程教程,原文传送门,有的翻译不太好,但大体意思差不多,请支持我O(∩_∩)O谢谢. 第二,某些细节操作,这篇文章省略了,如 ...

  6. 使用虚幻引擎中的C++导论(三-反射系统与迭代器)

    使用虚幻引擎中的C++导论(三) 第一,这篇是我翻译的虚幻4官网的新手编程教程,原文传送门,有的翻译不太好,但大体意思差不多,请支持我O(∩_∩)O谢谢. 第二,某些细节操作,这篇文章省略了,如果有不 ...

  7. 3D游戏开发之在UE4中创建非玩家角色(NPC)

    接着上节我们继续学习,现在我们来创建一些NPC(non-playable characters,非玩家角色).在这个游戏中,当我们靠近NPC时,它们会做出相应的反应. 一 创建C++类 1) 在UE编 ...

  8. UE4中多种颜色轮廓线的后期处理

    转自:http://blog.csdn.net/pizi0475/article/details/50396277 随着近来虚幻引擎4的一些变化,渲染多种颜色的轮廓线已经可以实现了!通过自定义模板,类 ...

  9. UE4中资源加载资源的方式

    在UNITY中,我们加载资源一般是通过Resources.Load(path).即可完成.该方法返回的是Object类型.如果你想要的是材质或者贴图等等,只要价格类型转换的关键字就可以了例如 as M ...

随机推荐

  1. iOS开发之instancetype

    instancetype和id使用方法类似,但他们还有不同点: (1)instancetype在类型表示上,跟id一样,可以表示任何对象类型 (2)instancetype只能用在返回值类型上,不能像 ...

  2. windows32位安装MYSQL-python1.2.3

    建议不要用pip安装MYSQL-python,因为会自动选择MYSQL-python1.2.5这个版本,但是这个版本不支持windows 32位系统. 1.首先安装VS2008,因为要依赖VC9.0编 ...

  3. web works importScripts

    html: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <tit ...

  4. HTTP相关整理(上)

    这次整理HTTP相关知识点的初衷是因为项目中有大量与网络请求相关的知识细节点,所以这次整理的更多的是日常中用得到的点(参考图解HTTP),另外给打算做FE的新人们一些建议:多重视网络这方面的知识.文章 ...

  5. Python3.6安装

    1.安装依赖包#yum install -y openssl openssl-devel openssl-static#yum groupinstall -y "Development to ...

  6. jquery列队动画简单演示

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Xshell连接本地 Virtualbo Ubuntu

    1.打开Virtualbox软件,启动ubuntu虚拟机. Ctrl + Alt + T 打开终端输入一下命令: sudo apt-get update 然后安装ssh 输入:sudo apt-get ...

  8. MySQL(Navicat)运行.sql文件时报错[Err] 2006 - MySQL server has gone away 的解决方法

    在my.ini里加上  max_allowed_packet=16M

  9. /etc/postfix下 main.cf 配置文件详解

    postconf -n   #别名数据库(postalias/newaliases 命令生成) alias_database = hash:/etc/postfix/aliases   #别名表,列出 ...

  10. react中,constructor和getInitialState的区别

    1,ES6语法 使用class声明一个类,且要继承react组件的方法和属性的时候 : 在里面我们可以直接指定 this.state = { }, 我们可以当前组件内任何地方使用 this.setSt ...