UE4_材质_水体的反射与折射制作_Ben教程

news2024/11/23 20:27:06

在这个教程中,将制作水的反射和折射,上个教程,我们主要讲了制作水涟漪(水面波纹)和水滴法线混合,水深计算,我们首先要谈的是反射和产生折射的问题。我们将所有从干扰从场景中分离出去,

把基础颜色、不透明度和法线都断开。

而我们断开所有的连接的原因是因为水有很多不同的成分,很难分辨出什么当其它成分都激活的时候,所以我们将隔离这些。保存,外观如下:

一、天空盒

就像你看到的,我的水面有反射,但是你很难说出来,因为它们是模糊的反射,我认为默认粗糙度是0.5,水比它光滑多了,我们设置粗糙度为0,

效果如下:

但你可能会发现,这里面好像缺少什么,可以看到天空中的乌云,

但是看不到墙壁和岩石的反射,为什么我们的反射是这样的?创造虚幻世界真的很复杂,有5种不同的创造方式创造反射,我们今天要看一下,并使用其中的三种方式,虚幻中的大多数场景都使用这些方法中的多种,并且它们都可以协同工作,这就是我们要使用的,我们已经在使用第一种方法创建反射了,这就是天空盒。所以我们的天空会反射在我们场景中,这是最偏移的产生反射的方法。

二、盒体反射捕获

但是我们要反射更近的物体我们就需要用第二种反射方法,即球形反射捕获。

它在世界上的这一点上,它正在捕获一个立方体贴图,然后使用该立方体贴图在场景中创建反射,这种创建反射的方法开销是非常低的,因为立方体贴图可以渲染一次,然后我们就可以查看立方体贴图中的数据。看看我们的反射中是什么?我们可以用这种反射方法应用于水。

我们选中它,您可以看到这是一个盒体反射捕获。可以自己添加上去。

把需要反射的包含进去。木前我是禁用了反射捕获。

勾选visible。效果如下图:

启用了之后,你会发现已经反射了岩石、墙壁。在反射天空之前,因为开启了盒体反射,所以反射了岩石和墙壁。这些反射是开销低的技术,因为反射一次之后可以反复使用。它们有一个缺憾,那就是说从点来说是准确的,当你移动反射盒子的位置时,仔细观察场景,你会发现这个角落的岩石的反射出现了问题。

所以,这是一个问题,这就是为什么有这么多反射方法的原因,虚幻反射的方法很复杂,并且每种反射方法各有千秋。这是开销最低的方法也是最无趣的方法。因为它们只捕捉天空。

三、屏幕空间反射

现在我们将进入第三种方法即屏幕空间反射。为了启用屏幕空间反射,我们需要跳回到着色器,所以我们将在这里进行水波纹演示,选择材质根节点,找到半透明,你可以看到有用于屏幕空间反射的属性,

这将是要采取的图像或屏幕将被渲染,如果像素需要反射,它可以查看并可以从屏幕上的其它任何像素获得反射,所以我要保存下来,让我们看看我们得到了什么?现在你可以看到有惊人的外观反射。

特别是这块岩石就是完美的代表。

无论我在岩石的什么位置,看起来恰到好处,这真的很好,它正在做的是我需要一个反射在我的水上,所以它看着屏幕说好,被反射的物体就在那里,所以我将其映射为反射,非常完美。但屏幕空间反射缺点是它们只能使用屏幕上的数据,当你向下移动视角时,会发现屏幕上没有的云彩消失了。

当角度到达这里时,你会发现连石头的反射都消失了:

而是当我向上移动时又出现了:

墙壁的反射也是这样:

它必须融合,因为它试图反映屏幕外的对象,而且它不能做到,我现在只能反映屏幕上的像素,有趣的是,当我向下滚动相机时,您可以看到

屏幕空间的反射消失了,但我仍然有天空反射和立方体贴图,所以三种反射方法实际上一起工作,这就是该软件真正酷的地方,它同时使用了这三种方法。

四、水的反射

观察效果:

调整涟漪的强度:

不适用天气函数,取消雨滴,观察效果:

可以看到涟漪更柔和。

五、水的折射

通过下面的岩石的水

岩石是完美的,看起来有点不对劲,那是不合适的。因为折射消失了,什么是折射?当光线从空气中进入水中,因为空气和水的密度是不同的,光线会稍微弯曲,这会导致水下面会看到变形,我想将其添加到我们水效果,让水看起来更加逼真,这很容易做到,因为我们想要的大多数扭曲效果是在根节点内部创建的,我们真正需要做的就是告诉它多少折射指数,各个网站都可以查到数值。水的折射率是1.33.

我想做的另一件事是我们将隔离一些事物,就像屏幕反射那样,我们先把基础颜色、粗糙度、不透明断开连接,现在我将不透明度设为0,我要做的就是要告诉你看起来没有屋顶让折射过来,折射的样子。

不透明度为0,意味着100%的透明,我们没有折射,因为水没有了。

当我们连接上折射之后,

现在表面上的法线使岩石变形,因为我们正在计算折射,所以在水下真的很整洁,它将为我们水面增加很多,尽管您可能会注意到,随着我旋转相机周围有一些小小的视觉故障。

折射墙壁下面的东西,然后当我旋转相机向下时,

您可以看到这里有条线,我的水完全消失,这些视觉故障是因为我们当前拥有根节点设置为折射模式,该模式不适用于这种类型的水,在其它事情上效果很好,但是当您拥有大型水上飞机时不理想。让我们切换回着色器,选择根节点。

我们将来到折射部分,

您可以看到我的折射模式当前设置为折射率index of refraction,在此描述中,您可以看到说明最后,它说它不适用于大折射面像水一样,我们将其更改为像素法线偏移,

这是可以更好的与水配合使用的折射技术,

,save,查看,会发现小瑕疵没有了。

回到着色器,连接上基础颜色,颜色是基于深度的,在浅蓝色和深蓝色之间过渡,连接上不透明度,粗糙度值为0,将所有效果都连上。

nice!

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

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

相关文章

微信小程序 canvas 处理图片的缩放移动旋转问题

这里使用到了一个插件&#xff0c;canvas-drag&#xff0c;来实现大部分功能的 上效果 直接上代码吧~ wxml <div class"container"><canvas-drag id"canvas-drag" graph"{{graph}}" width"700" height"750" ena…

页面加载503 Service Temporarily Unavailable异常

最近发现网页刷新经常503&#xff0c;加载卡主&#xff0c;刷新页面就正常了。 研究之后发现是页面需要的js文件等加载失败了。 再研究之后发现是nginx配置的问题。 我之前为了解决一个漏洞检测到目标主机可能存在缓慢的HTTP拒绝服务攻击 把nginx的连接设置了很多限制&#…

JSONpath语法怎么用?

JSONPath 可以看作定位目标对象位置的语言&#xff0c;适用于 JSON 文档。 JSONPath 与 JSON 的 关系相当于 XPath 与 XML 的关系&#xff0c; JSONPath 参照 XPath 的路径表达式&#xff0c;提供了描述 JSON 文档层次结构的表达式&#xff0c;通过表达式对目标…

点云处理实操 点云平面拟合

目录 一、什么是平拟合 二、拟合步骤 三、数学原理 1、平面拟合 2、PCA过程 四、代码 一、什么是平拟合 平面拟合是指在三维空间中找到一个平面,使其尽可能接近给定的点云。最小二乘法是一种常用的拟合方法,通过最小化误差平方和来找到最优的拟合平面。 二、拟合步骤…

【Python】已解决:ERROR: No matching distribution found for JPype

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;ERROR: No matching distribution found for JPype 一、分析问题背景 在Python开发中&#xff0c;有时我们需要使用Java库来扩展功能或实现某些特定任务。JPype…

有手就行,轻松本地部署 Llama、Qwen 大模型,无需 GPU

用 CPU 也能部署私有化大模型&#xff1f; 对&#xff0c;没错&#xff0c;只要你的电脑有个 8G 内存&#xff0c;你就可以轻松部署 Llama、Gemma、Qwen 等多种开源大模型。 非技术人员&#xff0c;安装 Docker、Docker-compose 很费劲&#xff1f; 不用&#xff0c;这些都不…

方法重载与重写的区别

1.方法重载和重写都是实现多态的方式&#xff0c;区别在于重载是编译时多态&#xff0c;重写是运行时多态。 2.重载是在同一个类中&#xff0c;两个方法的方法名相同&#xff0c;参数列表不同&#xff08;参数类型、顺序、个数&#xff09;&#xff0c;与方法返回值无关&#x…

springboot种草好物app-计算机毕业设计源码13151

摘要 随着电子商务的快速发展和智能手机的普及&#xff0c;越来越多的用户选择通过移动应用程序进行商品浏览、购买和分享体验。种草好物App作为一个专注于商品推荐和购物体验的平台&#xff0c;具有广泛的应用前景和商业价值。本研究旨在构建一个功能丰富、性能稳定的种草好物…

(vue)el-tabs选中最后一项后更新数据后无法展开

(vue)el-tabs选中最后一项后更新数据后无法展开 效果&#xff1a; 原因&#xff1a;选中时绑定的值在数据更新后找不到 思路&#xff1a;更新数据时把选中的v-model的属性赋为初始值 写法&#xff1a; <el-form-item label"字段选择"><el-tabsv-model&qu…

【计算机网络】传输层(作业)

1、OSI参考模型中&#xff0c;提供端到端的透明数据传输服务、差错控制和流量控制的层是&#xff08;C&#xff09;。 A. 物理层B. 网络层C. 运输层D. 会话层 2、运输层为&#xff08;B&#xff09;之间提供逻辑通信。 A. 主机B. 进程C. 路由器D. 操作系统 3、运输层面向连接…

【面试系列】技术支持工程师高频面试题及详细解答

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…

JavaScript实现时钟计时

会动的时钟 1.目标 2.分析 1.最开始页面不显示时间&#xff0c;有两个按钮 开始 暂停。开始按钮是可以点击的&#xff0c;暂停按钮不能点击 2.当点击开始按钮后&#xff0c;设置开始按钮不可用&#xff0c;暂停按钮可用。然后将当前系统时间放到按钮上面。每隔1秒中更新一下…

国产操作系统麒麟v10、UOS在线打开excel文件并动态赋值

在实际的开发过程中&#xff0c;经常会遇到数据库中的数据填充到excel生成一份正式文件的功能&#xff0c;PageOffice客户端控件支持在线预览Excel文件时&#xff0c;通过Workbook对象来实现对Excel文件的数据填充功能&#xff0c;如果只是简单的填充一下数据&#xff0c;那么通…

通过容器启动QAnything知识库问答系统

QAnything (Question and Answer based on Anything) 是致力于支持任意格式文件或数据库的本地知识库问答系统&#xff0c;可断网安装使用。目前已支持格式&#xff1a;PDF(pdf)&#xff0c;Word(docx)&#xff0c;PPT(pptx)&#xff0c;XLS(xlsx)&#xff0c;Markdown(md)&…

洛必达法则在Android应用程序中的应用

洛必达法则在Android应用程序中的应用 前言 在高等数学中,洛必达法则(L’Hpital’s Rule)是一个用于计算未定式极限的有力工具。洛必达法则为我们提供了一种简便的方法,通过求导数来处理一些复杂的极限问题。在Android开发中,尽管我们通常不会直接遇到需要应用洛必达法则…

第二届重庆国际渔业博览会

The 2th Chongqing International Fisheries & Seafood Expo 时间&#xff1a;2024年10月25-27日 地点&#xff1a;重庆国际博览中心 同期举办&#xff1a;第十六届中国(重庆)火锅美食文化节暨第九届中国(重庆)国际火锅产业博览会 展会规模&#xff1a; 展出…

【C++知识点总结全系列 (06)】:STL六大组件详细介绍与总结(配置器、容器、迭代器、适配器、算法、仿函数)

STL六大组件目录 前言1、配置器(1)What(2)Why(3)HowA.调用new和delete实现内存分配与销毁B.STL Allocator (4)allocator类A.WhatB.HowC.allocator的算法 2、容器(1)What(2)Which&#xff08;有哪些容器&#xff09;(3)序列容器&#xff08;顺序容器&#xff09;A.WhichB.array&…

Unreal Engine@Jetson Orin Nano尚不支持

Unreal EngineJetson Orin Nano尚不支持 1. 源由2. Unreal Engine介绍3. 问题4. 编译方法5. 补充 1. 源由 最近在看SC-Explorer方面的内容&#xff0c;在模拟方面采用了Unreal Engine。 本打算跑下模拟&#xff0c;因此打算在JetsonOrin的板子上试试看。 2. Unreal Engine介绍…

【Python】已解决:urllib.error.HTTPError: HTTP Error 403: Forbidden

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;urllib.error.HTTPError: HTTP Error 403: Forbidden 一、分析问题背景 在使用Python的urllib库中的urlopen或urlretrieve函数下载文件时&#xff0c;有时会遇到…

SAP 物料状态简介

在物料主数据中有个物料状态的栏位&#xff0c;这个栏位的作用就在于对涉及到相应物料主数据的各种事务进行不同形式的限制&#xff0c;从而达到对物料的用途进行管控的作用。在实际业务中&#xff0c;尤其是涉及到物料的生命周期管理时&#xff0c;当某个物料已经被禁用的时候…