开放原子开发者工作坊 如何在Unity中创造真实的水

如何在Unity中创造真实的水

你将要创造什么Unity是由Unity Technologies开发的多平台游戏引擎,用于为控制台,移动设备,计算机甚至网站等多种设备创建视频游戏和应用程序。Unity的核心优势在于其稳健性,可移植性和社区性;Unity针对几个众所周知的API,如Direct3D,OpenGL,OpenGL ES和最近的Vulkan。由于上述特性,Unity在AAA软件开发公司和有抱负的游...

1240

你将要创造什么

Unity是由Unity Technologies开发的多平台游戏引擎,用于为控制台,移动设备,计算机甚至网站等多种设备创建视频游戏和应用程序。Unity的核心优势在于其稳健性,可移植性和社区性; Unity针对几个众所周知的API,如Direct3D,OpenGL,OpenGL ES和最近的Vulkan。

由于上述特性,Unity在AAA软件开发公司和有抱负的游戏程序员中越来越受欢迎。

Unity支持多种技术和组件。其中一个关键组件是水系统。Unity的水系统允许您在应用程序或游戏中添加不同类型的水,即Water Basic,Water Pro和Water4。默认情况下,Unity包含几个水预制件(包括必要的着色器,脚本和艺术资产)。

本教程将重点介绍Unity中水的工作原理,以及如何使用它来创建广阔而丰富的地形环境。

先决条件

首先,确保您使用的是 最新版本的Unity ; 否则,你可能会发现教程后面和使用物理关节的细微差别。

要开始本教程,您有两个可供选择的路径:

使用可用的启动项目立即启动它。

完成以前的Unity教程,称为Unity Terrain工具。

无论哪种方式,我们都会为您提供帮助,但是花时间从前一个开始将为您提供有关Unity及其工具的更多见解。

水基础

我假设你要么使用当前的Starting Project开始,要么已经完成了之前的 Unity Terrain工具 教程。如果不是这样,您可以启动一个新项目,但必须导入环境资产包并创建自己的地形。如果您使用的是新项目,请转到主菜单“ 资产”>“导入包”,然后选择“ 环境”

从现在开始,本教程将重点介绍当前的Starting Project。通过分析地形,您可以看到,在中心,地面更深一些。该区域专门为您创建了一个湖泊。一种方法是使用Water Basic预制件。

1240

在“ 项目”选项卡中,打开“ 资源”文件夹,然后打开“ 环境”。在这里你会发现两个水文件夹:水(基本)。最初,您将使用Water(Basic)。 打开它,然后打开Prefabs文件夹。有两种预制件可供选择:WaterBasicDaytimeWaterBasicNightime

1240

在继续之前,这里是对预制件的快速解释。预制件充当游戏对象的模板。它允许您在场景中创建新的对象实例,并且对预制资产所做的任何编辑都会立即反映在从其生成的所有实例中。 

但是,您也可以单独覆盖每个实例的组件和设置。如果您需要在场景或多个场景中拥有多个相同类型的对象,这将非常有用。通过使用预制件,您无需从头开始创建每个对象,如果要对其进行调整,它将自动更新所有实例。

正如您可能已经猜到的那样,如果您在白天有场景,则应使用WaterBasicDaytime,并在夜间场景中使用WaterBasicNightime。它们都以完全相同的方式工作,但第二个设置为更暗。

在这个项目中你有一个白天场景,所以你将使用WaterBasicDaytime预制。使用鼠标选择预制件,然后将其拖动到场景中(或多或少地插入地面的孔中,类似于下图)。这会将WaterBasicDaytime添加到场景中。

接下来,选择水并调整其位置比例

1240

当您根据需要定位和配置水时,让我们快速了解您可以使用它做什么。如果选择它并转到“ 检查器”选项卡,您将看到几个组件:刚刚使用的变换组件,水基本平面(网格过滤器),设置水的材质网格渲染器水基本脚本着色器

1240

网格渲染器中,您可以更改与阴影生成相关的一些选项,如“ 投射阴影”或“ 接收阴影”。您还可以修改与反射相关的多个属性。将“ 投射阴影” 和“ 接收阴影”设置 为“ 开”。接下来,对于 Reflection Probes,我们将其设置为Blend Probes和Skybox

1240

WaterBasicDaytime Shader允许您设置水的一些参数,如Wave scaleWave speed。您可以使用这些值来查看某些图形更改,但现在保留默认值。

1240

现在,为了查看最终结果,请将相机放在合适的位置。为此,请移至“ 场景”视图,并在获得所需视图后,选择“ 主摄像机”游戏对象。现在转到菜单GameObject,然后选择Align With View。这会将相机放在您想要的位置。按播放

1240

从这里,您可以返回并更改预制属性以查看属性之间的差异。使用Cast ShadowsWave scaleWave speed来感知修改。

Water Pro

下一步是学习如何使用Water Pro创建和配置湖泊。在继续之前,从场景中删除WaterBasicDaytime游戏对象。

接下来,在“ 项目”选项卡中,打开“ 标准资源”文件夹并再次打开“ 环境”。这一次,打开Water文件夹。你有两个文件夹:4。要使用Water Pro,您必须打开Water文件夹。接下来,打开Prefabs文件夹。

1240

就像Water Basic一样,文件夹中有两个预制件:WaterProDaytime 和WaterProNightime。它们都以完全相同的方式工作,并且前面提到的WaterProDaytime设置为白天场景,而WaterProNightime设置为较暗的环境。

由于您有白天场景,因此您应该选择WaterProDaytime。选择预制件并将其拖动到场景中。再次,选择WaterProDaytime游戏对象并调整其位置比例

一旦湖面尺寸合适,您就会立即看到水的图形质量与Water Basic相比有所不同。

1240

当您有水时,请快速查看您可以用它做什么。如果选择它然后查看“ 检查器”选项卡,您将看到几个组件:变换组件,水平面网格网格渲染器(脚本)着色器


1240

网格渲染 性能类似于以前的一个。将“ 投射阴影” 和“ 接收阴影”都设置 为“ 开”。接下来,将Reflection Probes 更改为Blend Probes和Skybox

脚本 提供了可以修改的其他属性。这些属性不适用于以前的水类型。

1240

您可以将水模式设置为简单,这将使水像基本水一样工作,反射,这将使水具有反射但没有折射,或折射,允许反射和折射。您可以禁用像素灯,这将降低反射/折射中的照明质量,以提高性能。 

您可以设置纹理大小,它指的是生成的水纹理的分辨率。“ 剪裁平面偏移”值是反射或折射图像出现的水下方距离。您可以设置受影响的反射图层以及折射图层。这些是图层蒙版,用于控制哪些场景对象在水中可见。默认情况下,选择所有图层。

着色器组件中,您可以更改波形比例,并更改反射折射扭曲的值。这些将根据它们对反射或折射物体的影响来确定涟漪的表观高度。

您还可以设置水的反射颜色以控制将应用于水下对象的色调。

1240

如果您按下播放,您可以看到您的Water Pro正在运行。这是比水基更现实的水; 然而,就所需的计算能力而言,它也更加密集。

1240

Water4

要测试Water4,您需要删除刚刚创建的湖。 

在“ 项目”选项卡中,打开“ 标准资产” >“ 环境”。打开Water文件夹,然后打开 Water4文件夹。接下来,打开Prefabs文件夹。在这里您可以找到两个预制件:Water4Simple 和Water4Advanced

1240

如果您选择两个预制件并进行比较,您会发现它们具有相同的组件并以完全相同的方式工作。那两者有什么区别?

那么,您可以通过选择他们使用的水材料来看到。高级版本包括额外的肖氏泡沫纹理。这些纹理应用于波峰以及地形和其他物体中断波浪网格的地方,如海岸。

选择Water4Advanced 预制件并将其拖动到场景中。接下来要做的是调整水面的位置比例

1240

请注意,当您添加预制件时,Unity将自动创建一个反射场景游戏对象。此游戏对象允许您更改场景中的水反射。反射游戏对象上的相机组件允许Water4反射您的场景。

1240

现在,如果您选择Water4Advanced游戏对象,您将看到有几个属性可以更改。

1240

水基(脚本) 组件中的第一个字段允许您为水定义材料。您还可以将水质定义为 。如果启用了“ 边缘 混合”选项,Water4将混合水网的边缘。

下一个组件是高光照明。此脚本调整水的镜面质量。如您所见,它引用了镜面游戏对象变换。您可以使用参考来指示镜面光源的任何变换。例如,这可以是您的定向光变换。

接下来,您将获得Planar Reflection组件。这个用于实时平面反射。反射是根据附加了此脚本的父网格的高度计算的。您可以将多个参数设置为反射蒙版,打开或关闭反射天空盒,或定义清晰的颜色。我们将这些保留为默认值。

最后,您有Gerstner Displace组件,它允许您控制波的生成。

如果按下播放按钮,您现在可以看到Water4正在运行,在地形中心创建一个湖泊。

1240

结论

关于Unity Water的教程到此结束。您了解了三种主要类型的水:Water Basic,Pro和Water4。有了这些知识,您现在可以为您的下一个尖端游戏或应用程序创建新的丰富环境,或修改和改进当前环境。

Unity拥有活跃的经济。还有许多其他产品可以帮助您构建项目。平台的性质也使它成为您提高技能的绝佳选择。无论如何,您都可以在Envato Marketplace中看到我们所拥有的一切 。


想了解更多关于游戏模型设计的内容吗?

建模教程网(www.xizixue.com)看看吧


转载于:https://blog.51cto.com/14231823/2390992

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐

  • 浏览量 1169
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献8602条内容