Unity海面效果——5、水沫和海平线

Unity引擎制作海面效果


  大家好,我是阿赵。
  继续做海面效果,上次做完了漫反射颜色和水波动画,还有法线和高光效果。
在这里插入图片描述

  原则上来说,这个海面已经基本能看了,从性能的考虑,到这里差不多可以停止了。不过有些细节还是可以补充一下。

一、 岸边泡沫

  之前介绍过怎样做跟随着水面升降的泡沫效果,这里可以加一下。
主要用到的是深度,在ASE里面有专门获取深度的节点
在这里插入图片描述

  这个节点为我们做了很多事情,获取非线性渐变的摄像机深度图,再转换成LinearEyeDepth的线性深度。
在这里插入图片描述

  去掉漫反射和高光颜色,单独看这个深度计算的结果,可以看到了,在这个泛白的范围,就是我们想显示泡沫的区域。
在这里插入图片描述

  接下来,找一张泡沫的图,然后在这个区域里面做一个显示就行。我是拿了水波的高度图增加了平铺次数来当做泡沫显示了
在这里插入图片描述

  这时候,可以看到刚才泛白的地方,显示出了和普通水波纹不一样的一些泡沫的纹理
在这里插入图片描述

  加上之前做的漫反射和高光,会是这样的效果:
在这里插入图片描述

  但又一个问题,一般这种泡沫是会随着波浪拍打而变化的,如果我现在这样就静止不动,看起来会很怪。所以需要让它动起来。
这里有多种方案,我分享2种:

1、 制作水面的顶点动画

  由于这个水泡沫的范围是通过深度计算出来的,如果水面变化,那么深度范围也会跟着变化。
  所以,可以给海的面片做一个顶点动画。不过由于这个是一个面数不多的面片,做顶点动画会由于顶点不足而不好看,还要做一个根据距离变化的曲面细分,让岸边的部分网格顶点数增加。
  由于这样做比较麻烦, 而且性能也不怎么好,所以我就没这么做了。

2、 动态变化深度范围。

  由于刚才泛白的范围,其实也是通过深度计算出来的,所以我们也可以通过给计算深度的距离增加一个参数,乘以一个sin时间,让它做一个来回往返的变化范围动画。
在这里插入图片描述

  大概是这一个部分了,增加了一些参数,让它能调节往返的幅度,还有强度。
在这里插入图片描述

  结合着之前计算的菲涅尔范围做透明度,得到了一个范围。这时候,泡沫看起来就动起来了。
在这里插入图片描述

  泡沫会沿着深度的方向往返变化范围,泡沫也就像拍打岸边一样变化了。

二、 海平线

  现在看起来画面有点像样了,不过有个问题,在海天相接的地方,现在的海平面边缘会比较硬,我希望能在海平线的地方,不要那么生硬。
  这里的算法有很多选择,我用了一个简单的计算距离的方式,通过摄像机位置和世界顶点坐标求距离,然后再通过两个参数控制缩放范围:
在这里插入图片描述

  单独显示这个数值,会看到现在海平线的位置有一个白边:
在这里插入图片描述

  通过调节参数,可以控制白边的宽度:
在这里插入图片描述

  把之前做的所有效果加起来,就能看到:
在这里插入图片描述

  现在出现了一个海平面的效果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

error: ‘make_unique’ is not a member of ‘g2o’ 的参考解决方法

文章目录 写在前面一、问题描述二、解决方法 写在前面 自己的测试环境: Ubuntu20.04 一、问题描述 编译调用g2o的程序时,出现如下报错 error: ‘make_unique’ is not a member of ‘g2o’; did you mean ‘std::make_unique’?42 | auto s…

文章SameStr(四):图4代码

“Publication Figure 4” 百度云盘链接: https://pan.baidu.com/s/15g7caZp354zIWktpnWzWhQ 提取码: 4sh7 Libraries Standard Import library(tidyverse) library(cowplot) library(scales) library(ggpubr)Special library(caret) library(plotROC) library(tidymodel…

AIGC:为创意产业注入新质生产力

在当今数字化浪潮下,人工智能(AI)正以惊人的速度重塑着各行各业,特别是在创意产业领域,AI所带来的变革显得尤为深刻且广泛。 我深切感受到AIGC(Artificial Intelligence Generated Content,即人…

几款常见的数字孪生引擎

Unity Unity 是一个通用的游戏引擎,广泛用于创建3D和2D的互动内容。它也被广泛用于数字孪生模型的开发。Unity提供了高效的图形处理能力、物理引擎和跨平台支持,使其成为构建交互式数字孪生模型的理想选择。 ②Unreal Engine Unreal Engine 是另一个流…

淘宝卖家难免遇到的商品问题 在淘宝买的东西出问题了,该如何维权

很多朋友对于淘宝卖家难免遇到的商品问题和在淘宝买的东西出问题了,该如何维权不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧! [1] 淘宝买东西,过了售后期,有质量问题怎…

gen_cross_contour_xld 为每个输入点生成一个十字形状的XLD轮廓。

gen_cross_contour_xld Name 名称 gen_cross_contour_xld — Generate one XLD contour in the shape of a cross for each input point. 为每个输入点生成一个十字形状的XLD轮廓。 Signature 签名 gen_cross_contour_xld( : Cross : Row, Col, Size, Angle : ) Descripti…

uniapp开发android调试工具

程序运行在真机后,点击Hbuilder菜单栏中的视图,点击下方的显示Webview调试控制台 下方就会展示你在手机端操作的界面 点击需要在电脑端调试的界面,界面会在新开的浏览器中展示,这样一些h5浏览器无法点击出来的样式就可以这样调试了…

【Java】搜索引擎设计:信息搜索怎么避免大海捞针?

一、内容分析 我们准备开发一个针对全网内容的搜索引擎,产品名称为“Bingoo”。 Bingoo的主要技术挑战包括: 针对爬虫获取的海量数据,如何高效地进行数据管理;当用户输入搜索词的时候,如何快速查找包含搜索词的网页…

PHP语言教程与实战案例详解

PHP是一种广泛使用的开源脚本语言,尤其适合Web开发并可嵌入HTML中。PHP语法吸收了C语言、Java和Perl的特点,易于学习,使用灵活,支持多种数据库,因此在Web开发领域中占据了重要地位。本文将从PHP的基本概念入手&#xf…

软件测试市场复苏了?

今年大家听到“就业大环境很差”、“工作不好找”之类的太多了。如今大环境已经逐渐好转,虽然不需要太过焦虑,但是也要持续的提升自己。 最近和几位准备跳槽的兄弟聊天发现,原有八股文已经不足以应对现在面试官的提问了。大厂对测试员的技术要…

零基础STM32单片机编程入门(十一) OLED显示屏实战含源码视频

文章目录 一.概要二.0.96寸OLED屏介绍1.OLED屏外观图2.OLED屏特点3.OLED屏接口定义4.OLED屏原理图5.OLED屏像素分辨率 三.字库取模软件PCtoLCD2002介绍四.STM32单片机驱动OLED显示实验五.CubeMX工程源代码下载六.讲解视频链接地址七.小结 一.概要 OLED被称为有机激光二极管显示…

二分查找(红绿标记法)

文章目录 1.线性查找2.二分查找2.1一般的二分查找2.2特殊的二分查找——红绿标记法2.3 原理解释:2.4 代码中的应用: 1.线性查找 线性查找(Linear Search)是一种简单直观的搜索算法,用于在数组中查找特定值的位置。它的…

DBeaver安装教程(开发人员和数据库管理员通用数据库管理工具)

前言 DBeaver 是一个通用的数据库管理工具和 SQL 客户端,支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby, 以及其他兼容 JDBC 的数据库。DBeaver 提供一个图形界面用来查看数据库结构、执行SQL查询和脚本,浏览和导出数据&a…

GEE代码实例教程详解:降水量分类分析

简介 在本篇博客中,我们将使用Google Earth Engine (GEE) 对特定区域内的降水量进行分类分析。通过设定不同的降水量阈值,我们可以将降水量分为干旱、中等和湿润三个类别,并分析这些类别随时间的变化。 背景知识 降水量分类 降水量分类是…

无损音频格式 FLAC 转 MP3 音频图文教程

音频文件的格式多样,每种格式都有其独特的特点与适用场景。FLAC(Free Lossless Audio Codec),作为一种无损音频压缩格式,因其能够完美保留原始音频数据的每一个细节而备受音频发烧友和专业人士的青睐。 然而&#xff0…

NuGet 中国国内镜像

有时候网络不好,需要使用国内的一些镜像源。 华为资源: https://repo.huaweicloud.com/repository/nuget/v3/index.json 腾讯资源: https://mirrors.cloud.tencent.com/nuget/ 微软中国镜像源:https://nuget.cdn.azure.cn/v3…

仪表板展示|DataEase看中国:2023年中国新能源汽车经济运行情况分析

背景介绍 随着政府机构、企业和个人对环保和可持续发展的高度关注,“新能源汽车”在全球范围内成为了一个热门话题。新能源汽车是指使用非传统燃料(如电能、氢能等)作为动力源的汽车。 在中国市场,新能源汽车产业蓬勃发展&#…

SpringSecurity中文文档(Domain Object Security (ACLs))

Domain Object Security (ACLs) 本节描述 SpringSecurity 如何使用访问控制列表(ACL)提供域对象安全性。 复杂的应用程序通常需要定义超出 Web 请求或方法调用级别的访问权限。相反,安全决策需要包括 who (Authentication)、 where (MethodInvation)和 what (Some…

form原生表单以及el-from表单阻止表单默认提交事件,上传文件自动提交刷新以及input输入框按下enter键自动搜索的事件

问题: 1.form原生表单以及el-from表单阻止表单默认提交事件 2.上传文件自动提交刷新 3.只有一个input输入框按下enter键自动搜索提交的事件 解决方案: 1.el-form使用submit.native.prevent 2.form表单使用οnsubmit"return false"

如何切换手机的ip地址

在数字时代的浪潮中,智能手机已成为我们日常生活中不可或缺的一部分。然而,随着网络安全问题的日益凸显,保护个人隐私和数据安全变得尤为重要。其中,IP地址作为网络身份的重要标识,其安全性与隐私性备受关注。本文将详…