怎样使用水?

注意:本页所述内容仅仅适用于台式机编辑器模式。

Unity 的标准资源和专业版标准资源包 (Standard Assets and Pro Standard Assets packages) 中包括数种水预设(包括所需的着色器、脚本和艺术资源)。

Unity 包括一个基本水效果,而 Unity 专业版则包括带实时反射和折射的水,两者都提供有白天和晚上分开的水预设。

白天的水反射效果(Unity 专业版)

白天的水反射/折射效果(Unity 专业版)

水设置

在大多数情况下。仅仅需将现有的一个预设 (Prefab) 放入场景其中(确认 已安装标准资源 (Standard Assets installed)):

  • Unity 在标准资源 (Standard Assets)->水 (Water) 中有白天简单水 (Daylight Simple Water) 和夜间简单水 (Nighttime Simple Water) 两种。

  • Unity 专业版在专业版标准资源 (Pro Standard Assets)->水 (Water) 中有白天水 (Daylight Water) 和夜间水 (Nighttime Water) 两种,可是还须要标准资源 (Standard Assets)->水 (Water) 中的一些资源。水模式(简单、反射、折射)可在检视器 (Inspector) 中设置。

预设使用椭圆形的网格表示水。假设须要使用一个不同的网格,最简单的方法是在水对象的网格过滤器 (Mesh Filter) 中更改:

从头開始创建水(高级)

Unity 中的简单水要求附加脚本到类似平面的网格中并使用水着色器:

  1. 拥实用于水的网格。应为平网格。水平方向。不须要 UV 坐标。

    水游戏对象应使用水 (Water) 层 (layer),可在检视器 (Inspector) 中设置。

  2. 从标准资源 (Standard Assets)/水 (Water)/源 (Sources) 中将 WaterSimple 脚本附到对象中。
  3. 在材质中使用 FX/Water (simple) 着色器,或调整提供的水材质之中的一个(白天简单水 (Daylight Simple Water) 或夜间简单水 (Nighttime Simple Water))。

Unity 专业版中的反射/折射水要求用类似的步骤从头開始设置:

  1. 拥实用于水的网格。应为平网格,水平方向。不须要 UV 坐标。水游戏对象应使用水 (Water) 层 (layer),可在检视器 (Inspector) 中设置。
  2. 从专业版标准资源 (Standard Assets)/水 (Water)/源 (Sources) 中将 水 (Water) 脚本附到对象中。
    • 水渲染模式可在检视器 (Inspector) 中设置:简单、反射或折射。
  3. 在材质中使用 FX/Water 着色器,或调整提供的水材质之中的一个(白天水 (Daylight Water) 或夜间水 (Nighttime Water))。

水材质的属性

这些属性用于反射与折射 (Reflective & Refractive) 水着色器中。大部分也用于简单水着色器。

   
波浪大小 (Wave scale) 波浪法线贴图的比例。值越小,水波越大。
反射/折射扭曲度 (Reflection/refraction distort) 波浪法线贴图扭曲的反射/折射量。
折射颜色 (Refraction color) 折射时呈现的额外色调。
环境反射/折射 (Environment reflection/refraction) 实时反射和折射渲染纹理。
法线贴图 (Normalmap) 定义水波的形状。终于波效结合了两张法线贴图。每张以不同的方向、规模和速度滚动。

第二张法线贴图是第一张的一半大小。

波速 (Wave speed) 第一张法线贴图(1 号和 2 号数字)与第二张法线贴图(3 号和 4 号数字)的滚动速度。
菲涅尔 (Fresnel) 带 alpha 通道的纹理控制菲涅尔 (Fresnel) 效果。依据视角不同,反射与折射的可见度。

其余的属性在反射与折射着色器 (Reflective & Refractive shader) 中不会用到,但也要进行设置以免用户的显卡不支持,必须退回到较简单的着色器:

   
反射颜色 (Reflective color)/立方体和菲涅尔 (cube and Fresnel) 依据视角定义水的颜色 (RGB) 和菲涅尔效果 (A) 的纹理。
地平线颜色 (Horizon color) 地平线上水的颜色。(仅仅在简单水着色器中使用)
后备纹理 (Fallback texture) 假设太老旧的视频卡无法执行任一效果较好的着色器,在此种视频卡上用来代表水的纹理。

硬件支持

  • 反射 + 折射水能够在支持像素着色器 2.0(GeForce FX 及更高版本号。Radeon 9500 及更高版本号。Intel 9xx)的图形卡上执行。旧图形卡上使用反射水。

  • 反射水能够在支持像素着色器 1.4(GeForce FX 及更高版本号,Radeon 8500 及更高版本号,Intel 9xx)的图形卡上执行。旧图形卡上使用简单水。
  • 简单水能够在不论什么机器上使用。硬件能力不同,所应用的细节级别就不同。

Unity3D 图形问题之怎样使用水?的更多相关文章

  1. Unity3D - 图形性能优化:优化着色器载入时间

    Unity官方文档之"图形性能优化-优化着色器载入时间"的翻译,E文链接. Optimizing Shader Load Time 优化着色器载入时间 Shaders are sm ...

  2. Unity3d 实现鼠标左键点击地形使角色移动到指定地点[脚本]

    Unity3d 实现鼠标左键点击地形使角色移动到指定地点[脚本] 2013-02-19 15:29:33     我来说两句      作者:nnsword 收藏    我要投稿 其中涉及,移动速度, ...

  3. Unity3D 图形优化

    Unity3D 图形优化 例如DrawCall,我得到的是一些并不完全正确的信息,例如将N个纹理打包成一个图集,这个图集就只会产生一个DrawCall,如果不打成图集,那么就会有N个DrawCall. ...

  4. 实例教程Unity3D单例模式(一)通经常使使用方法

    unity3d教程 中的单例模式通经常使使用方法 通经常使使用方法是在相关类增加GetInstance()的静态方法,检查实例是否存在.假设存在,则返回.假设不存在.则返回一个"须要用游戏元 ...

  5. Unity3D用户手册

    Unity Manual 用户手册 Welcome to Unity. 欢迎使用Unity. Unity is made to empower users to create the best int ...

  6. 安装linux下面用来配置网络,防火墙,系统服务等设置的图形小工具Setup

    Setup命令是linux下面用来配置网络,防火墙,系统服务等设置的图形小工具.使用起来非常方便简单,可是centos\redhat最小化安装之后发现setup命令工具用不了. 接下来介绍如何安装se ...

  7. 【转帖】Linux图形用户界面:KDE与GNOME的由来

    Linux图形用户界面:KDE与GNOME的由来 置顶 2018年08月11日 15:51:25 hwpipixia 阅读数 4778 https://blog.csdn.net/u013895853 ...

  8. Unity3D学习笔记1——绘制一个三角形

    目录 1. 绪论 2. 概述 3. 详论 3.1. 准备 3.2. 实现 3.3. 解析 3.3.1. 场景树对象 3.3.2. 绘制方法 4. 结果 1. 绪论 最近想学习一下Unity3d,无奈发 ...

  9. 分享数百个 HT 工业互联网 2D 3D 可视化应用案例

    过去的 2018 年,我们认为是国内工业互联网可视化的元年,图扑软件作为在工业可视化领域的重度参与者,一线见证了众多 HTML5/Web 化.2D/3D 化的项目在工业界应用落地,我们觉得有必要在此分 ...

随机推荐

  1. selenium 截图 添加时间戳

    在自动化程序中运行的代码报错信息或者是相关日志有可能并无法直观的判断出错信息.因此截图是避免不了的.为了避免因为重复运行或者是图片名称相同导致截图被覆盖. 建议在截图时使用时间戳,保证截图图片名称的唯 ...

  2. git add 文档

    GIT-ADD(1) Git Manual GIT-ADD(1) NAME git-add - Add file contents to the index SYNOPSIS git add [-n] ...

  3. (一)Centos7安装zabbix3.4 server端

    (1)环境准备 关闭firewalld和selinux systemctl stop firewalld systemctl disable firewalld #sed -ri '/^SELINUX ...

  4. radio和label关联问题,点击label改变颜色

    $(function () { $("#fangan :radio[name='price']").bind('click', function (event) { //$(thi ...

  5. scrapy 最新版本中文文档地址

    http://scrapy-chs.readthedocs.org/zh_CN/latest/

  6. Web CI过程中的Security解决方案

    http://www.infoq.com/cn/articles/WebScan-CI 一. 当前Web应用安全现状 随着中国互联网金融的爆发和繁荣,Web应用在其中扮演的地位也越来越重要,比如Web ...

  7. 洛谷——P1589 泥泞路

    P1589 泥泞路 题目描述 暴雨过后,FJ的农场到镇上的公路上有一些泥泞路,他有若干块长度为L的木板可以铺在这些泥泞路上,问他至少需要多少块木板,才能把所有的泥泞路覆盖住. 输入输出格式 输入格式: ...

  8. 7、Flask实战第7天:Jinjia2模板

    Jinja2模板介绍和查找路径 在前面的章节中,视图只是直接返回文本,然而在实际生产环境中其实很少这样用,因为实际的页面大多带有样式和复杂逻辑的HTML代码,这可以让浏览器其渲染出非常漂亮的页面. 我 ...

  9. shell 查看 具体某行的值

    sed: sed '5!d' file awk: awk 'NR==5' file

  10. 简单的INSERT语句

    INSERT INTO 语句用来向数据表中插入数据,比如执行下面的语句就可以向T_Person表中插入一条数据: INSERT INTO T_Person(FName,FAge,FRemark) VA ...