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

news2024/11/16 5:25:26

Unity引擎制作海面效果


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

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

一、 岸边泡沫

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

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

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

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

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

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

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

1、 制作水面的顶点动画

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

2、 动态变化深度范围。

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

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

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

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

二、 海平线

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

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

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

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

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

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

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

相关文章

SpringCloud跨微服务的远程调用,如何发起网络请求,RestTemplate

在我们的业务流程之中不一定都会是自己模块查询自己模块的信息,有些时候就需要去结合其他模块的信息来进行一些查询完成相应的业务流程,但是在SpringCloud每个模块都相对独立,数据库也有数据隔离。所以当我们需要其他微服务模块的信息的时候&…

HackTheBox--IClean

IClean测试过程 1 信息收集 NMAP端口扫描 80端口测试 echo "10.10.11.12 capiclean.htb" | sudo tee -a /etc/hosts检查页面功能,除了 login 页面无其他可能利用点,可以尝试进行目录爆破和子域名扫描 目录扫描 ./gobuster dir -u http://c…

使用paddleOCR训练自己的数据集到ONNX推理

一、环境安装 1、安装paddlepaddle; https://www.paddlepaddle.org.cn/ 这里安装2.6.1的话使用onnx会出现swish算子报错的问题 python -m pip install paddlepaddle-gpu2.5.2 -i https://pypi.tuna.tsinghua.edu.cn/simple验证是否成功安装 python import paddl…

C++11——新特性超详细总结

目录 一、C11介绍 二、为什么要用C11 三、新特性总结 1、类型推导(auto/decltype) 2、序列for循环语句 3、 lamdba表达式 4、构造函数:委托构造和继承构造 5、容器(array/forward_list) 6、垃圾回收机制 7、…

MySQL Buffer Pool

总结自:小林coding,bojiangzhou 虽然说 MySQL 的数据是存储在磁盘里的,但是也不能每次都从磁盘里面读取数据,这样性能是极差的。 要想提升查询性能,加个缓存就行了嘛。所以,当数据从磁盘中取出后&#xff…

大话C语言:第29篇 指针

1 指针概念 指针:地址的变量化形式,其存储的是内存中某个存储单元的地址。它是地址的数值表示。 指针变量:一种特殊的变量,它专门用于存放变量的地址(即指针)。 注意,指针和指针变量的区别&am…

uniapp+uview实现手机端上传照片带水印(保姆级全过程)

目录 前言:实现思路 步骤一、在界面使用uview的u-upload组件、放置canvas标签 步骤二、在afterRead方法中获取照片url,并创建画布生成水印,再将生成水印的照片上传到服务器 1、afterRead方法 2、照片加水印的方法 3、上传照片至服务器 …

项目管理:这样制定计划,让你事半功倍

在项目管理中,制定计划是成功的关键,一个完善的计划不仅能够明确项目的方向和目标,还能为团队成员提供清晰的行动指南。 制定计划的四大要素——做什么、怎么做、何时做、谁来做,为这一过程提供了坚实的框架。而甘特图作为一种直观…

OS Copilot:新手测评体验

文章目录 前言一、OS Copilot(阿里云操作系统智能助手)简介二、测评体验总结OS Copilot 产品体验评测OS Copilot 产品功能反馈 前言 本文简单分享一下自己使用OS Copilot测评体验。 一、OS Copilot(阿里云操作系统智能助手)简介 …

普通人必看!AI绘画商业变现全攻略(附教程)

大部分的设计师除了主业以外,都会利用空余时间去接单做副业。 单子包括但不限于产品/品牌LOGO、电商产品图设计、海报、室内设计图等等,单价在几十到上千不等 引起了我的思考,我们普通人有没有机会,也能像他们一样去接单赚钱吗&a…

挖K脚本检测指南

免责声明:本文仅做分享... 目录 挖K样本-Win&Linux-危害&定性 Linux-Web 安全漏洞导致挖K事件 Windows-系统口令爆破导致挖K事件 --怎么被挖K了??? 已经取得了权限. 挖K样本-Win&Linux-危害&定性 危害:CPU 拉满,网络阻塞&…

Spring最早的源码

地址:Spring最早的源码

Uniapp组件使用的详细步骤

官方文档:uni-app官网 (dcloud.net.cn) 一般用到的组件都在这里: 看介绍里面的注意事项,有注意的地方认真查看,使用的时候例如,以下示例日历,把代码粘贴到你的文件里,然后下载组件 1&#xff…

商家转账到零钱分销返佣场景驳回处理办法

在处理商家转账到零钱分销返佣场景被驳回的问题时,商家需要了解驳回的原因,并采取相应的措施来解决这些问题。下面将详细介绍几种常见的驳回原因以及应对策略: 1. 多级分销模式问题 • 原因:如果业务模式涉及多级分销,…

数据安全治理:从库级权限申请到表级权限申请

背景 随着数据安全意识的提高,企业越来越重视数据治理和权限管理。传统数仓大多对库级别进行读写授权,仅对人工标记的敏感库进行表级别授权,但由于敏感等级是由人为标记,错误率较高,故期望将权限申请流程细化到表级申…

Datawhale AI 夏令营 机器学习挑战赛

一、赛事背景 在当今科技日新月异的时代,人工智能(AI)技术正以前所未有的深度和广度渗透到科研领域,特别是在化学及药物研发中展现出了巨大潜力。精准预测分子性质有助于高效筛选出具有优异性能的候选药物。以PROTACs为例&#x…

PHP调查问卷小程序系统源码

📊【问卷新风尚】调查问卷系统小程序,让数据收集更简单! 📱【指尖轻点,问卷即刻生成】 告别繁琐的问卷设计过程,调查问卷系统小程序让你在指尖轻点间,就能轻松创建出专业、美观的问卷。无论是…

文章SameStr(五):图5代码

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

Kudu分区策略

Kudu表的分区策略主要有三种:范围分区(Partition By Range)、哈希分区(Partition By Hash)和高级分区(Partition By Hash And Range)。这些策略都要求分区字段必须包含在主键中。 范围分区&…

内网-有道词典离线翻译安装

一、外部操作 1、在外部下载有道翻译桌面版 下载地址 2、安装到指定目录 3、登录下载离线翻译包 进入设置 -》离线增强-》离线翻译数据包-》翻译包 选择汉英互译 4、找到离线包位置 C:\Users\用户\AppData\Local\Yodao ,此处查看自己用户所在C盘位置 二、内网…