内容:

*概述

*纹理文件

*基本颜色

*法线的设置

*标量参数和材质属性

*场景设置

*最终效果

概述

本教程由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. 【学习笔记】TCP通信的细节及TCP连接对HTTP事务处理性能影响

    从三次握手的细节说起 刚开始尝试使用java等后端语言写IO流,或用套接字(socket)实现简单C/S通信的同学们,常常会接触到的一个概念:就是所谓的"三次握手",socket作 ...

  2. redis CONFIG REWRITE介绍

    可用版本为>= 2.8.0 CONFIG REWRITE 命令对启动 Redis 服务器时所指定的 redis.conf 文件进行改写: 因为 CONFIG SET 命令可以对服务器的当前配置进 ...

  3. Spring 框架原理

    [spring框架原理] Spring框架原理 [博主]高瑞林 [博客地址]http://www.cnblogs.com/grl214 写给读者的话 ------亲爱的读者感谢您对小编的支持,当我正值 ...

  4. PN结加正向偏置电压 其空间电荷区为何变窄

    理论基础:导体是内部具有较多可以自由移动的电荷的物体. 绝缘体是内部没有或者有很少可以自由移动的电荷的物体. +代表空穴带正电 -代表电子带负电 两竖线之间表示无自由移动电子或空穴部分,相当于绝缘体 ...

  5. Windows Mobile 常用键值VK对应表

    #define VK_TSOFT2              VK_F2  // Softkey 2  #define VK_TTALK                VK_F3  // Talk  ...

  6. es6中的let声明变量与es5中的var声明变量的区别,局部变量与全局变量

    自己通过看typescript官方文档里的let声明,与阮一峰老师翻译的的es6学习文档,总结以下三点 1.var声明可以多次重复声明同一个变量,let不行 2.let变量只在块级作用域里面有效果,v ...

  7. h5 做app时和原生交互的小常识。

    距离上次随笔或许有半年了吧,最近在用hybrid模式开发移动app,所以就简单的说说用h5技术开发app时候,做原生交互的几个小常识: 一.拨打电话或者发送短信: <a href="t ...

  8. 关于VO中的Attribute的问题

    对于新手来说,有些时候会遇到VO中的Attribute的各种问题; 总结如下:1,你页面上输入了值,但是点击保存之后值并不能存到数据库,这个是因为该字段在VO中不是基于EO的  2,你将一个VO中的E ...

  9. Java日期格式化方法

    首先获取当前系统时间的方法有两种:第一种可以用currentTimeMillis()方法获取,它其实产生的是一个当前的毫秒数,这个毫秒是自1970年1月1日0时起至现在的毫秒数,类型是long 型,可 ...

  10. 第2章Zabbix基础进阶

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; t ...