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

Unity引擎制作海面效果


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

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

一、 岸边泡沫

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

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

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

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

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

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

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

1、 制作水面的顶点动画

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

2、 动态变化深度范围。

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

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

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

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

二、 海平线

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

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

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

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

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

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

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

相关文章

文章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,即人…

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的主要技术挑战包括: 针对爬虫获取的海量数据,如何高效地进行数据管理;当用户输入搜索词的时候,如何快速查找包含搜索词的网页…

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

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

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

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

无损音频格式 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年中国新能源汽车经济运行情况分析

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

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地址作为网络身份的重要标识,其安全性与隐私性备受关注。本文将详…

智谱AI开源代码生成大模型 CodeGeeX4-ALL-9B

智谱AI 旗下的代码生成大模型 CodeGeeX 正式发布第四代开源版本:CodeGeeX4-ALL-9B,其是集代码补全和生成、代码问答、代码解释器、工具调用、联网搜索、项目级代码问答等能力于一体的代码大模型,是目前百亿(10B)参数以…

打开 Windows 磁盘管理程序的不同方法总结

如何打开磁盘管理 Windows 怎么打开磁盘管理呢?下面总结了几种不同的方法用来打开磁盘管理。 快速访问菜单 我们可以使用快捷键“WinX”或者将鼠标移动到开始菜单位置右键,这样就可以打开快速访问菜单,然后选择磁盘管理即可打开程序。 运行…

浅谈VPS主机上的数据库性能优化

如何提高网站性能?一个显而易见的解决方案是升级托管账户。您的网站将拥有更多硬件资源,因此可以同时处理更多请求并更快地传递数据。 无论如何,人们都是这么认为的。但事实总是不一样。 现代网站是一个复杂的系统,包含许多必须…

c++ primer plus 第15章友,异常和其他:异常,15.3.3 异常机制

#c primer plus 第15章友,异常和其他:异常,15.3.3 异常机制 异常,15.3.3 异常机制 文章目录 15.3.3 异常机制15.3.3 异常机制程序清单 15.9error3.cpp15.3.4 将对象用作异常类型程序清单15.10exc mean.h程序清单 15.11error4.cpp 15.3.3 异常机制 15.3.…

【STM32标准库】DMA双缓冲模式

1.双缓冲模式简介 设置DMA_SxCR寄存器的DBM位为1可启动双缓冲传输模式,并自动激活循环模式,所以设置普通模式或者循环模式都可以。 双缓冲不应用与存储器到存储器的传输。可以应用在从存储器到外设或者外设到存储器。 双缓冲模式下, 两个存…

IC认证介绍

IC认证是什么? IC是加拿大工业部Industry Canada的简称,作为政府机构,负责电子电器产品进入加拿大市场的认证事务。与美国的FCC相似,IC目前只在电磁干扰上做限制。一般规定:仅限制EMI,认证方式也与FCC相同…

领略超越王勃的AI颂扬艺术:一睹其惊艳夸赞风采

今日,咱也用国产AI技术,文心一言3.5的文字生成与可灵的图像创作,自动生成一篇文章,提示语文章末下载。 【玄武剑颂星际墨侠】 苍穹为布,星辰织锦,世间万象,皆入我玄武剑公众号之浩瀚画卷。此号…

Python入门 函数传递

目录 函数的多返回值 函数的多种传参形式 位置参数 关键字参数 缺省参数 不定长参数 位置传递 关键字传递 函数作为参数传递 lambda匿名函数 函数定义中 匿名函数的语法 函数的多返回值 按照返回值的顺序,与对应顺序的多个变量接受即可 变量之间用逗号…