Unity海面效果——2、菲涅尔水的介绍

news2024/12/23 22:22:22

Unity引擎制作海面效果


  大家好,我是阿赵。
  这一篇是说一下菲涅尔水的基本原理。
  延续之前的例子,我场景里面有天空盒、小岛和水面。
在这里插入图片描述

一、菲涅尔反射原理介绍

  从摄像机的角度看去,看不同的海面的点,摄像机和海面形成的夹角会发生变化,下面的图里面的红色箭头不是很准确,但可以大概表达一下角度是怎样变化的。
在这里插入图片描述

  菲涅尔反射,是由菲涅尔公式推导出来的反射规律,描述了光在不同的折射率的介质之间的行为,简单的说就是反射/折射与视点角度之间的关系。
  举个例子,比如你站在水边,低头看脚下的水,应该是看得到水是透明的,还能看得到水底,反射不是特别的强烈。但如果你看往远处的水面,你会发现水并不是透明的,而且反射非常强烈。
  明白了这个道理之后,那么接下来就需要计算这个菲涅尔值来控制水的反射强度了。
从刚才原理看,主要是有2个因数,一个是视点,也就是观察的点,另外一个就是角度了。所以站在  同一个点,看不同海面形成的角度,应该产生不同的菲涅尔值,比如这样:
在这里插入图片描述

  在上面的图中,海面上的白色代表的是反射的强度,离自己近的地方,呈现的是黑色,远处是白色,也就是说明了近处的反射很低,远处的反射很强。
  然后把这个作为透明通道使用,会发现出现了这样的效果:
在这里插入图片描述

  现在就有点类似于刚才我们说的菲涅尔反射的效果了,近处看得到水是透明的,远处水不透明而且反射很强。

二、 具体实现

  最简答的菲涅尔模拟计算,其实就是经常听到的计算公式:NDotV
  N代表的是世界发现,V代表的是世界空间的观察方向View Dir,把两者进行点乘。点乘的几何含义就是求角度,所以通过发线和观察方向,我们就求出了观察点角度了。用ASE来连线,大概是这样:
在这里插入图片描述

  最后用1-NDotV,是因为我们需要的效果是黑白相反的。

  知道了这个原理之后,接下来的事情就简单了,可以在这个基础上,加上一些别的参数:

在这里插入图片描述

  比如我这里加上了SmoothStep,用于控制黑白渐变的范围,不同的min和max值,可以控制渐变过渡的效果:
在这里插入图片描述

在这里插入图片描述

  然后最后加上一个总体的透明度控制值,用于控制这个菲涅尔的强度,这样第一步就完成了。接下来第二篇会介绍漫反射颜色和波纹的实现

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

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

相关文章

electron-builder 打包过慢解决

报错内容如下 > 6-241.0.0 build > electron-builder • electron-builder version24.13.3 os10.0.22631 • loaded configuration filepackage.json ("build" field) • writing effective config filedist\builder-effective-config.yaml • pack…

Ansible自动化运维,(1)模块

ansible是基于Python语言实现的,模块化:调用特定的模块完成特定的任务,支持自定义模块,可使用任何编程语言写模块(账号,软件等)。部署简单,基于python和SSH,相对安全,基于OpenSSH。 …

Qt 5.14.2+Android环境搭建

1. 安装QT5.14.2的过程中,选中套件(kit) qt for android。 如果已经安装了qt creator但没有安装该套件,可以找到在qt安装目录下的MaintenanceTool.exe,运行该程序添加套件。 2. 安装jdk8,android sdk&…

SAP系统中的应付账款(与MM集成,关账操作)

1. 与物料管理的集成 Plant: 工厂是后勤中的位于中心位置的组织对象,一个“工厂”可以是公司内的一个作业区,或一个分支机构。一个“工厂”可以是一个中央交付仓库,可以是一个区域的销售营业部,一个制造工厂,一个集团…

【Transformer Debugger】OpenAI开源大模型调测工具--可以在训练大模型之前理解模型的运行情况并干预

背景 OpenAI开源了一个全新的大模型调测工具:Transformer Debugger。这个工具可以帮助开发者调测大模型的推理情况,帮助我们理解模型的输出并提供一定的解释支持https://github.com/openai/transformer-debugger 应用场景 这一工具在多个领域展现出广…

寄存器组(堆栈指针寄存器小解)

寄存器组(堆栈指针寄存器小解) 寄存器组栈是向下伸长的出入栈操作时候的SP寄存器 例子 寄存器组 主堆栈指针(MSP):这是缺省的堆栈指针,它由 OS 内核、异常服务例程以及所有需要特权访问的 应用程序代码来使…

初阶 《操作符详解》 10. 逗号表达式

10. 逗号表达式 exp1, exp2, exp3, …expN 注&#xff1a; 1.逗号表达式&#xff0c;就是用逗号隔开的多个表达式 2.逗号表达式&#xff0c;从左向右依次执行&#xff0c;整个表达式的结果是最后一个表达式的结果 代码1 #include <stdio.h> int main() {int a 1;int b…

Flink 状态管理

一、状态 流式计算分为无状态和有状态两种情况。无状态的计算观察每个独立事件&#xff0c;并且根据最后一个事件输出结果。例如&#xff0c;流处理应用程序从传感器接收温度读数&#xff0c;并在温度超过90度时发出告警。有状态的计算则会基于多个事件输出结果。例如&#xf…

为什么永远不会有语言取代 C/C++?

每个 CPU 都带有一种称为 ISA&#xff08;指令集架构&#xff09;汇编的电路语言。ISA 程序集是一种硬件语言&#xff0c;由基本数据操作、数学计算和结构化编程&#xff08;即 jmp&#xff09;的操作组成。但是&#xff0c;为每个计算需求编写汇编代码无疑是耗时的&#xff0c…

DevOps CMDB平台整合Jira工单

背景 在DevOps CMDB平台建设的过程中&#xff0c;我们可以很容易的将业务应用所涉及的云资源&#xff08;WAF、K8S、虚拟机等&#xff09;、CICD工具链&#xff08;Jenkins、ArgoCD&#xff09;、监控、日志等一次性的维护到CMDB平台&#xff0c;但随着时间的推移&#xff0c;…

vue3-openlayers marker 光晕扩散(光环扩散)(postrender 事件和 render 方法)

本篇介绍一下使用 vue3-openlayers marker 光晕扩散&#xff08;光环扩散&#xff09;&#xff08;postrender 事件和 render 方法&#xff09; 1 需求 marker 光晕扩散&#xff08;光环扩散&#xff09; 2 分析 marker 光晕扩散&#xff08;光环扩散&#xff09;使用 post…

图片如何去水印,分享4个小妙招,手把手教会你!

作为一个经常逛社区网站下载表情包、头像的人&#xff0c;遇到的一个大难题就是图片有水印。如何才能快速去除水印&#xff1f;询问了一圈身边朋友&#xff0c;搜集了各种资料&#xff0c;小编整理了4个超好用的方法。 如果大家和小编一样&#xff0c;能坐着就不站着&#xff0…

38.控制功能实现

上一个内容&#xff1a;37.添加简易的调试功能 以 37.添加简易的调试功能 它的代码为基础进行修改 效果图&#xff1a; 下图红框位置的功能实现 Dlls项目中添加一个Dialog Dialog如下 然后给它添加一个类&#xff0c;MFC添加的类可能会报错添加 #include "afxdialogex.h…

基于SSM构建的校园失眠与压力管理系统的设计与实现【附源码】

毕业设计(论文) 题目&#xff1a;基于SSM构建的校园失眠与压力管理系统的设计与实现 二级学院&#xff1a; 专业(方向)&#xff1a; 班 级&#xff1a; 学 生&#xff1a; 指导教师&a…

shell 脚本的部分指令和操作符

终端输入两个数&#xff0c;判断两数是否相等&#xff0c;如果不相等&#xff0c;判断大小关系 2.已知网址www.hqyj.com&#xff0c;使用expr截取出www、hqyj、com&#xff0c;不能使用cut&#xff0c;不能出现数字

C++ 基础:指针和引用浅谈

指针 基本概念 在C中&#xff0c;指针是存储其他变量的内存地址的变量。 我们在程序中声明的每个变量在内存中都有一个关联的位置&#xff0c;我们称之为变量的内存地址。 如果我们的程序中有一个变量 var&#xff0c;那么&var 返回它的内存地址。 int main() {int var…

Stable Diffusion 3 正式开源,超强文生图模型 SD3-M 上线,赶紧来试试吧!

前言 我们都知道 Stable Diffusion 3 是一款强大的文生图模型&#xff0c;拥有20亿参数&#xff0c;因其高效的推理速度和卓越的生成效果而备受瞩目。 近日&#xff0c;Stability AI在推特上宣布正式开源了 Stable Diffusion 3 Medium&#xff08;SD3-M&#xff09; 权重&…

住宅IP代理服务终极指南:增强安全性和可访问性

在当今的数字安装程序中&#xff0c;隐私和可访问性对于企业和个人都至关重要。满足这些需求的一个强大工具是住宅 IP 代理服务。这些服务为用户提供住宅 IP 地址&#xff0c;这些地址是互联网产品 (ISP) 计算房主的真实 IP。在本综合指南中&#xff0c;我们将探讨住宅 IP 代理…

Chrome插件:​Vue.js Devtools 高效地开发和调试

在现代前端开发中&#xff0c;Vue.js因其灵活性和性能优势&#xff0c;受到越来越多开发者的青睐。然而&#xff0c;随着项目规模的扩大&#xff0c;调试和优化变得愈发复杂。幸运的是&#xff0c;Vue.js Devtools的出现&#xff0c;为开发者提供了一套强大的工具集&#xff0c…

【道合顺展会预告】2024国际传感器仪器仪表物联网长沙展览会!

传感器技术作为万物互联的基石&#xff0c;正以前所未有的速度驱动着全球各行各业的转型升级。在此背景下&#xff0c;2024国际传感器&仪器仪表&物联网展览会将于6月28日至30日在长沙盛大启幕&#xff0c;道合顺传感将携公司最新技术及科研成果参加展览会&#xff0c;并…