UE4_后期处理七—仿红外线成像效果
效果图展示:

参考文档:https://dev.epicgames.com/documentation/zh-cn/unreal-engine/using-fresnel-in-your-unreal-engine-materials?application_version=5.4
二、所用知识点扩充
在创建电影或过场动画时,你常常需要想办法更好地突显角色或场景的轮廓。这时你需要用到一种光照技术,称为边沿光照或边缘光照,它的原理是通过添加额外光源来帮助区分角色轮廓与背景。虽然这能够很好地适用于电影,但将额外光源添加到3D场景会增加额外的复杂度,使其很快变得难以管理。
虚幻引擎在材质层面提供了相应的解决方案。 美术师可以使用 菲涅尔(Fresnel) 在角色或道具的材质中模拟边沿光照,更好地控制效果的外观体验。 菲涅尔是一种固有属性,在许多材质中自然存在,其中包括玻璃、水以及一些类型的织物和油漆。本教程中的技术将帮助你更准确地模拟这些材质。
1、菲涅尔
菲涅尔(Fresnel) 这一术语用于说明你看到的光线如何根据视角的变化以不同的强度反射。例如,你站在水池边,低头看脚下的水,你会发现水面的反射不是特别强烈。随着你抬起头,使你的视线与水池中的水面平行,你会开始发现水面越来越波光粼粼。水和玻璃都表现出很强的菲涅尔倾向,即视线垂直于表面时,它们看起来相对透明,视线未垂直于表面时,它们会反射更多光线。


请注意,从正面看时,相框中的玻璃是透明的,从侧面看时,玻璃的反光会更明显。
在虚幻引擎中,菲涅尔材质表达式 会根据表面法线与摄像机方向的点积计算衰减。当表面法线径直指向摄像机时,会输出值0,意味着应该不会发生菲涅尔效果。当表面法线与摄像机垂直时,会输出值1,意味着应该发生完整的菲涅尔效果。结果会限制在[0, 1]范围内,这样就不会在中心看到负值颜色。下图演示了此概念。

在球体中间(标记为0),没有菲涅尔效果。这是因为摄像机径直指向表面法线。朝向球体边缘(标记为1),表面法线趋于与摄像机垂直,菲涅尔效果也越来越明显。 这会造成球体边缘被照亮的感觉。
2、菲涅尔材质表达式
工具(Utility) 下的 菲涅尔 材质表达式是本教程中使用的选项,并且在这两个选项中更易于配置。强烈推荐你使用此版本入手,并仅在更好地理解该节点运作方式之后才使用菲涅尔材质函数。

| 属性 | 说明 |
|---|---|
| ExponentIn | 此输入将控制菲涅尔效果的衰减。 |
| BaseReflectFractionIn | 这指定了视线垂直于表面时的高光度反射率。将其设置为值1实际上会禁用菲涅尔。 |
| 法线(Normal) | 你可以输入法线贴图来更改菲涅尔效果的渲染方式。法线贴图必须从切线空间变换为世界空间(参见下文)。 |
有三种方法可调整菲涅尔材质表达式中的值。
-
在材质图表中选择节点时,你可以在 细节(Details) 面板中输入值。

你还可以将常量或标量参数连接到输入。

你可以将法线贴图拖到 法线(Normal) 输入来更改菲涅尔效果的外观。如果你使用法线贴图纹理,必须通过 TransformVector 表达式传递它,然后再将其连接到法线输入。这会将法线贴图从切线空间变换为世界空间。如果不进行此变换,法线贴图可能无法按你所需的方式影响菲涅尔。

3、菲涅尔材质函数
向量操作(Vector Ops) 类别中的 Fresnel_Function 材质函数是高度可自定义的菲涅尔版本,用于提供对菲涅尔效果的多个不同方面的控制。这个新增加的功能有其缺点,因为设置出错可能导致菲涅尔效果的渲染存在瑕疵或错误。
你应该仅在 工具(Utility) 下的菲涅尔材质表达式不能产生你所需的结果时使用此材质函数。

| 属性 | 说明 |
|---|---|
| 法线向量(V3)(Normal Vector (V3)) | 你可以在此处输入法线来修改菲涅尔效果的渲染。为获得准确的结果,你必须通过变换节点(切线空间到世界空间)来传递法线贴图。 |
| 摄像机向量(V3)(Camera Vector(V3)) | 手动更改用于确定摄像机和表面法线之间点积的摄像机向量。 |
| 反转菲涅尔(B)(Invert Fresnel(B)) | 反转菲涅尔的效果。如果你希望菲涅尔仅在中心或边缘应用,这会很有用。 |
| 能力(S)(Power(S)) | 输入标量以控制菲涅尔效果的范围(或衰减)。输入的数字越大,受影响的区域越小。输入的数字越小,那么菲涅尔节点影响的表面区域越大。 |
| 使用低开销对比度(B)(Use Cheap Contrast(B)) | 启用此属性后,菲涅尔节点会使用开销更低的方法来计算亮色与暗色之间的对比度。 |
| 低开销对比度暗色(S)(Cheap Contrast Dark (S)) | 此属性将控制菲涅尔的昏暗程度。这仅在启用 使用低开销对比度(Use Cheap Contrast) 时有效果。 |
| 低开销对比度亮色(S)(Cheap Contrast Bright (S)) | 此属性将控制菲涅尔效果的明亮程度。这仅在启用 使用低开销对比度(Use Cheap Contrast) 时有效果。 |
| 限制菲涅尔点积(B)(Clamp Fresnel Dot Product (B)) | 将菲涅尔点积的结果限制在0到1之间。 此属性默认为true,但你可以使用设置为false的 静态布尔(Static Bool) 将其覆盖。 |
4、如何在材质中使用菲涅尔
使用以下步骤可创建要使用菲涅尔的材质。
-
在 内容浏览器(Content Browser) 中 右键点击 并从上下文菜单中的创建基本资产(Create Basic Asset)分段选择 材质(Material) 。 创建材质后,将其命名为 FresnelMaterial 。
-
在 内容浏览器(Content Browser) 中 双击 缩略图,打开新材质。
-
展开 控制板(Palette) 或在材质图表中 右键点击 以显示上下文菜单。搜索以下材质表达式节点并将其添加到图表中。
-
重命名所有标量和向量参数节点,并在细节(Details)面板中设置其默认值。
名称 默认值 菲涅尔颜色(Fresnel Color) 1.0, 0.0, 0.0, 0.0 基础颜色(Base Color) 0.5, 0.5, 0.5, 0 菲涅尔衰减(Fresnel Falloff) 8 粗糙度(Roughness) 0.5

5.将 Multiply 节点添加到图表,然后使用下图作为指南来连接所有材质表达式。

点击工具栏中的 应用(Apply) 来编译材质,然后点击 保存(Save) 。
请记住,在 菲涅尔衰减(Fresnel Falloff) 中输入较大的数字会将菲涅尔效果愈加推向边缘,而输入较小的数字则会使效果更靠近中心。下面是 菲涅尔衰减(Fresnel Falloff) 值从0增加到10的效果展示。请注意,随着数字增加,蓝色会逐渐推向球体边缘。

5、菲涅尔和法线贴图
由于菲涅尔会根据脸部的表面法线计算,所以你可以使用法线贴图来影响菲涅尔效果在材质中的分布。菲涅尔节点的运用原理是检查表面法线是否与摄像机垂直。如果与摄像机垂直,则菲涅尔效果可见。在光滑的球体上,这意味着菲涅尔效果仅在边缘发生。
但是,引入法线贴图时,表面法线会被修改,可能使网格体的轮廓中出现起伏和轮廓线。 这意味着菲涅尔效果可以高亮或突显在表面法线光滑时不可见的细节。
如需直观了解其运作原理,可以参考下面的两张图片。左图(1)显示了菲涅尔节点在使用扁平表面法线时的输出情况。菲涅尔效果仅在球体边缘可见。 右图(2)输入了法线贴图,显著改变了网格体的表面法线。 现在,菲涅尔效果沿法线贴图中定义的轮廓线可见。

下图显示了不同的法线贴图对菲涅尔的影响。

三、效果制作步骤分析:
1、观察场景法线得到的颜色图
当蓝图节点为下图时:

效果图如下:
2、观察场景法线作为fresnel法线参数得到的效果图
当蓝图节点为下图时:

效果图如下:

3、观察环境光遮挡得到的遮罩效果


4、观察场景法线的fresnel与环境光遮挡的正片叠底效果



5、用环境光遮挡选区作为两种颜色的线性插值的alpha




6、自定义深度减去场景深度得到的遮罩样式

作用效果如下图:

7、把自定义深度遮罩选区作为上一个图像的蒙版
实际上我们得到了一个自定义深度的遮罩图。把自定义深度遮罩应用于用环境光遮挡来定义的不同颜色图上。


把墙开启自定义深度通道,效果如下图:

当我们把人物隔离出去时,节点连接图和效果图如下:

8、给被隔离的人物添加颜色






这样会随着角度的不同让角色显示不同的颜色。
相关文章:
UE4_后期处理七—仿红外线成像效果
效果图展示: 参考文档:https://dev.epicgames.com/documentation/zh-cn/unreal-engine/using-fresnel-in-your-unreal-engine-materials?application_version5.4 二、所用知识点扩充 在创建电影或过场动画时,你常常需要想办法更好地突显角…...
静态路由和默认路由(实验)
目录 一、实验设备和环境 1、实验设备 2、实验环境 (1)实验拓扑图 (2)实验命令列表 二、实验记录 1、直连路由与路由表查看 步骤1:建立物理连接并运行超级终端。 步骤2:在路由器上查看路由表。 2、静态路由配置 步骤1:配…...
TCP: Textual-based Class-aware Prompt tuning for Visual-Language Model
文章汇总 存在的问题 原文:具有图像特定知识的图像条件提示符号在提升类嵌入分布方面的能力较差。 个人理解:单纯把"a photo of {class}"这种提示模版作为输入是不利于text encoder学习的 动机 在可学习的提示和每一类的文本知识之间建立…...
2024年软考网络工程师中级题库
1【考生回忆版】以下不属于5G网络优点的是(A) A.传输过程中消耗的资源少,对设备的电池更友好 B.支持大规模物联网,能够连接大量低功耗设备,提供更高效的管理 C.引入了网络切片技术,允许将物理网络划分为多个虚拟网络…...
CSS的盒子模型(Box Model)
所有HTML元素都可以看作盒子,在CSS中盒子模型是用来设计和布局的,CSS盒子模型本质上是一个盒子,分装周围的HTML元素包括:外边距,边框,内边距和实际内容。 Margin(外边距) 清除边框…...
用OpenSSL搭建PKI证书体系
1 创建PKI结构目录 mkdir 07_PKI cd 07_PKI mkdir 01_RootCA 02_SubCA 03_Client2 创建根CA cd 01_RootCA mkdir key csr cert newcerts touch index.txt index.txt.attr echo 01 > serial2.1 创建根CA密钥对 2.1.1 生成 长度为2048 bit 的RSA私钥。 cd key openssl gen…...
scp 命令:在两台主机间远程传输文件
一、命令简介 scp 命令使用 SSH 加密的方式在本地主机和远程主机之间复制文件。 二、命令参数 格式 scp [选项] 发送方主机和目录 接收方主机和目录注意:左边是发送方,右边是接收方。固定格式。 示例 #示例1 scp ~/test.txt soulio172.1…...
家用迷你洗衣机哪款质量高?五大热销高分单品强势来袭
迷你内衣洗衣机一般是为婴儿宝宝,或者一些有特殊需要的用户而设计使用的,宝宝衣物换洗频繁,而且对卫生方面的除菌要求高,而为避免交叉感染,所以一般不适合和大人的衣物放在一起洗,因此对于有宝宝的家庭来说…...
rpm 命令:RedHat底层包管理器
一、命令简介 rpm 是 Red Hat Package Manager 的缩写,是 Red Hat、CentOS、Fedora 等基于 Red Hat 的 Linux 发行版中用于管理和安装软件包的工具。它能够安装、卸载、升级、查询和验证软件包。 相关命令: rpm 是基础,提供了底层的软…...
Xilinx 使用DDS实现本振混频上下变频
文章目录 一、什么是混频?二、为什么要进行混频?三、Matlab实现混频操作四、FPGA实现混频上下变频操作4.1 例化IP4.2 仿真验证 一、什么是混频? 混频(Mixing)是信号处理中的一个核心概念,混频的本质是将两个…...
ClickHouse-Kafka Engine 正确的使用方式
Kafka 是大数据领域非常流行的一款分布式消息中间件,是实时计算中必不可少的一环,同时一款 OLAP 系统能否对接 Kafka 也算是考量是否具备流批一体的衡量指标之一。ClickHouse 的 Kafka 表引擎能够直接与 Kafka 系统对接,进而订阅 Kafka 中的 …...
PTA L1-071 前世档案
L1-071 前世档案(20分) 网络世界中时常会遇到这类滑稽的算命小程序,实现原理很简单,随便设计几个问题,根据玩家对每个问题的回答选择一条判断树中的路径(如下图所示),结论就是路径终…...
解决mac下 Android Studio gradle 下载很慢,如何手动配置
抓住人生中的一分一秒,胜过虚度中的一月一年! 小做个动图开篇引题 前言 平时我们clone git 上项目,项目对应gradle版本本地没有,ide编译会自动下载,但是超级慢可能还下载失败,下面讲解下此问题如 如下图所示ÿ…...
第三篇 第17章 工程计量与支付
第三篇 工程计价 第17章 工程计量与支付 17.1 工程计量 17.1.1 工程计量的原则 承包人完成合同工程且应予计量的工程数量确定计量周期可以月为单位,也可以按其他时间节点、工程形象进度分段计量因承包人原因造成的超出合同工程范围施工或返工的工程量、发包人不予计量 17.1…...
[半导体检测-1]:半导体检测概述
前言: 半导体检测是半导体产业链中不可或缺的一环,它贯穿于产品生产制造流程的始终,对于提高产线良率、提升产品竞争实力具有关键作用。以下是对半导体检测的详细概述: 一、什么是半导体检测 半导体检测是指运用专业技术手段&a…...
公共字段自动填充
问题分析 总会有些公共字段,例如创建时间和创建人 实现思路 对mapper定义注解,使用切面思想来判断是不是更新和新增操作对于指定的操作来更新公共字段 自定义操作类型 package com.sky.enumeration;/*** 数据库操作类型*/ public enum OperationType {/*…...
超详细 Git 教程:二十篇博客,三万字干货
Git 是最流行的版本管理工具,可以说是任何程序员都应该掌握的工具。 当然,其他人也可以学习它用来进行版本控制 为此,我将之前学习 Git 时的笔记整理了下(预计有二十篇),作为博客发出来,希望能帮…...
“出参”和“入参”的命名由来
有些开发者会用“入参”和“出参”来描述函数、方法或接口的参数和返回值。尽管我们基本都知道“入参”就是方法的参数,“出参”就是返回值。但是对于一些起步就是JAVA的开发者来说,可能并不清楚这两个名词的由来。这篇文章就来分享一下关于“入参”和“…...
webrtc gclient sync报错问题解决
报错信息 strp_current_url current_url[:-4] if current_url.endswith( ^^^^^^^^^^^^^^^^^^^^ AttributeError: ‘NoneType’ object has no attribute ‘endswith’ gclient syncsrc/base (ERROR) ---------------------------------------- [0:00:00] Started. ----------…...
FLUX模型,或许这几点你还未曾都了解,最详细的Flux模型介绍(附模型安装包)
当我们还在沉浸在惊叹和体验快手的Kolors模型之时,SD原开发团队组成的“黑森林”出的FLUX模型就袭来了。我们不得不感叹FLUX模型给我们带来的冲击,模型所绘制的画面质感、精细度的确让我们眼前一亮,之前发布的SD3开源模型给我们带来的些许失落…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...
高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
2024 年,高端封装市场规模为 80 亿美元,预计到 2030 年将超过 280 亿美元,2024-2030 年复合年增长率为 23%。 细分到各个终端市场,最大的高端性能封装市场是“电信和基础设施”,2024 年该市场创造了超过 67% 的收入。…...
Android屏幕刷新率与FPS(Frames Per Second) 120hz
Android屏幕刷新率与FPS(Frames Per Second) 120hz 屏幕刷新率是屏幕每秒钟刷新显示内容的次数,单位是赫兹(Hz)。 60Hz 屏幕:每秒刷新 60 次,每次刷新间隔约 16.67ms 90Hz 屏幕:每秒刷新 90 次,…...
MongoDB $type 操作符详解
MongoDB $type 操作符详解 引言 MongoDB 是一款流行的开源文档型数据库,它提供了丰富的查询操作符来满足不同的数据查询需求。在 MongoDB 中,$type 操作符是一个非常有用的查询操作符,它允许用户根据文档中字段的类型来查询文档。本文将详细介绍 MongoDB 的 $type 操作符,…...

