UE4_材质_使用彩色半透明阴影

学习笔记,不喜勿喷!侵权立删,祝愿大美临沂生活越来越好!

本教程将介绍如何配置虚幻引擎来投射彩色半透明阴影。 此功能在许多应用中都很有用,常见例子就是透过彩色玻璃窗的彩色光。

一、半透明阴影颜色

阴影在穿过半透明表面时所呈现的颜色即为半透明阴影颜色。 这个过程也称为 透射透过材质的彩色光量由其 不透明度(Opacity) 值(介于0和1之间)以及投射到材质上的光强度决定。

  • 例如,如果不透明度值设置为 0 ,则材质完全透明,不会透射颜色或投射阴影。
  • 如果不透明度设置为 1 ,则材质完全不透明并且完全不透光。
  • 当不透明度值 介于0和1 之间时,透过该对象的光将染上材质的 基础颜色 ,并且阴影会继承一些颜色。

二、与各种光照系统的兼容性

并非所有虚幻引擎的光照和全局光照系统都支持半透明阴影颜色。 下方图表详细说明了哪些光照功能支持半透明彩色阴影。

光照系统半透明彩色阴影
CPU Lightmass是,仅限静态光源
GPU Lightmass是,仅限静态光源
Lumen全局光照
硬件光线追踪
路径追踪器是,需要薄的半透明着色模型

此列表中值得注意的一点是 Lumen全局光照 ,它目前不支持半透明阴影颜色。

因为Lumen全局光照在所有新的UE5项目中默认启用,这意味着如果你要在关卡中使用彩色半透明阴影,你需要在 项目设置(Project Settings) 或 PostProcessVolume 中手动禁用Lumen。

以下小节介绍了如何设置场景和材质才能投射半透明彩色阴影。

三、在UE5中禁用Lumen

按照以下步骤在当前关卡中禁用Lumen全局光照。

1、在工具栏中点击 创建 图标,并选择 体积(Volumes) > PostProcessVolume 。

创建PostProcessVolume

2、在关卡中选择PostProcessVolume,并在细节面板(Details Panel)中,搜索 "extent" 。启用 无限范围(未限制)(Infinite Extent (Unbound)) 设置,这样PostProcessVolume的影响范围为整个关卡。

启用无限范围

3、在细节面板(Details Panel)中搜索 Global Illumination 。 启用 方法(Method) 设置,并使用下拉菜单将全局光照方法从 Lumen 更改为 无(None) 。

全局光照方法

此设置可禁用当前关卡中的动态全局光照,但你仍然可以使用Lightmass从静态光源烘焙全局光照。

四、光照设置

对于光照,最要紧的是,你只能从 移动性(Mobility) 设置为了 静态(Static) 的光源Actor投射彩色半透明阴影。你可以使用以下光源类型。

  • 定向光源
  • 点光源
  • 聚光光源
  • 矩形光源

此页面上的所有示例都使用虚幻引擎 昼夜变换(Time of Day) 关卡模板中的定向光源。 在大纲视图(Outliner)中选择 定向光源(Directional Light) ,然后在细节面板(Details Panel)中将 移动性(Mobility) 更改为 静态(Static) 。

静态光源移动性

间接光照可以冲淡彩色阴影,使它们看起来没有材质的基础颜色饱和。如果你无法在关卡中看到彩色半透明阴影,请考虑降低光源的 间接照明强度(Indirect Lighting Intensity) ,或尝试使用较暗的环境。

五、材质设置

1、材质属性

你可以使用下面列出的混合模式和着色模型来投射彩色半透明阴影。

  • 混合模式: 半透明、累加、AlphaComposite或调制
  • 着色模型: 默认光照、无光照或薄半透明

若使用 调制(Modulate) 混合模式,需要在细节面板(Details Panel)属性中禁用 移动单独半透明度(Mobile Separate Translucency) 。

2、双面

启用 双面(Two Sided) 属性是可选项,但如果你希望玩家使用材质查看网格体的两面,则必须启用该属性。 如果禁用了 双面(Two Sided),则必须将光源投射到材质的可见面才能投射彩色阴影。

3、创建光照半透明材质

(1)创建新的 材质 资产,并在材质编辑器中打开它。点击材质图表(Material Graph)中的任意位置以便在细节面板(Details Panel)中显示材质属性。

(2)在细节面板(Details Panel)中,将 混合模式(Blend Mode) 更改为 半透明(Translucent) 。

(3)启用 双面(Two Sided) 材质属性(可选)。

(4)向下滚动并展开 半透明(Translucency) 分段。 将 光照模式(Lighting Model) 设为 表面半透明体积(Surface Translucency Volume) 。

(5)将 纹理样本(Texture Sample) 添加到材质图表(Material Graph)。此示例使用彩色几何图案模拟彩色玻璃窗,但任何彩色纹理都可行。 与饱和度低的图像相比,颜色饱和度高的图像生成的阴影更鲜艳。将纹理样本(Texture Sample)的 RGB 输出连接到主材质节点上的 基础颜色(Base Color) 输入。

(6)创建 标量参数(Scalar Parameter) ,并将其重命名为 不透明度(Opacity) 。选择标量参数(Scalar Parameter)并在细节面板(Details Panel)中将 默认值(Default Value) 设置为0到1之间的值。你还可以将 滑块最大值(Slider Max) 设置为 1 ,限制不透明度的值范围。

(7)将标量参数连接到 不透明度(Opacity) 输入。 你的材质图表看起来应该类似于下图。

(8)点击工具栏中的 应用(Apply) 和 保存(Save) 可编辑材质并保存资产。

六、构建光照

关闭材质编辑器并将材质应用到关卡中的静态网格体。此示例使用来自虚幻引擎初学者内容包的简单平面。定向光源的角度大致垂直于平面,因此阴影将直接落到下面的地面。

在工具栏中,前往 构建(Build) > 仅限构建光照(Build Lighting Only) 。 当Lightmass构建完成时,应该会出现彩色半透明阴影。

为关卡构建Lightmass

阴影锐度

有几个因素会影响阴影的锐度,包括接收透射阴影颜色的网格体的光照贴图分辨率、光源的源角度以及纹理样本的质量。如果你的结果像下图一样模糊且不聚焦,则很可能是接收网格体上的光照贴图分辨率太低。

模糊的Lighmass效果

选择阴影落在其上的静态网格体,在本例中为地板(Floor)资产。 在细节面板(Details Panel)中,向下滚动到 光照(Lighting) 分段。启用 已覆盖光照贴图分辨率(Overriden Light Map Res) 设置,输入新的光照贴图分辨率。

覆盖Lightmass分辨率

根据静态网格体的大小,可能需要相对较大的分辨率你才能看到清晰的阴影。

材质的不透明度值会影响阴影的饱和度和强度。 在这样的户外环境中,使用较高的不透明度值,更容易看到彩色阴影。然而,在昏暗室内,不透明度值较低可能会产生更好的效果。

遮罩不透明度

投射彩色半透明阴影时,不透明遮罩将正常运转。 你可以使用纹理的Alpha通道,或将黑白纹理插入 不透明度(Opacity) 输入,以便控制材质的哪些部分可见并投射阴影。 如果你不熟悉该过程,请在此处阅读有关纹理遮罩的更多信息。

下面的示例展示了投射彩色半透明阴影的遮罩材质。没有更改材质属性,但修改了材质图表,如下所示。

并非将 不透明度(Opacity) 标量参数直接插入主材质节点,而是增加黑白纹理样本。 遮罩的黑色区域是透明的,而白色圆形区域是可见的。

这是光照重建后的效果。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python机器学习】模型评估与改进——带交叉验证的网格搜索

虽然将数据划分为训练集、验证集、测试集的方法是可行的,也相对常用,但这种方法对数据的划分相当敏感,为了得到对泛化性能的更好估计,我们可以使用交叉验证来评估每种参数组合的性能,而不是仅将数据单次划分为训练集与…

模拟退火算法2—优缺点

模拟退火算法优点 1、以一定的概率接受恶化解 模拟退火算法(SA)在搜索策略上与传统的随机搜索方法不同,它不仅引入了适当的随机因素,而且还引入了物理系统退火过程的自然机理。这种自然机理的引入使模拟退火算法在迭代过程中不仅接受使目标函数变“好”的试探点,而且还能以一…

Hadoop权威指南-读书笔记-02-关于MapReduce

Hadoop权威指南-读书笔记 记录一下读这本书的时候觉得有意思或者重要的点~ 还是老样子~挑重点记录哈😁有兴趣的小伙伴可以去看看原著😊 第二章 关于MapReduce MapReduce是一种可用于数据处理的编程模型。 MapReduce程序本质上是并行运行的&#xff0c…

行业模板|DataEase旅游行业大屏模板推荐

DataEase开源数据可视化分析工具于2022年6月发布模板市场(https://templates-de.fit2cloud.com),并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板,方便用户根据…

网络安全--计算机网络安全概述

文章目录 网络信息系统安全的目标网络安全的分支举例P2DR模型信息安全模型访问控制的分类多级安全模型 网络信息系统安全的目标 保密性 保证用户信息的保密性,对于非公开的信息,用户无法访问并且无法进行非授权访问,举例子就是:防…

Andriod安装termux并换源

问题汇总 Error: The repository ‘https://mirrors.tuna.tsinghua.edu.cn/termux/termux-package-24 stable Release’ does not have a Release file. 更换源(这里使用的是清华大学源) 打开文件 nano $PREFIX/etc/apt/sources.list手动修改 deb htt…

Powershell 获取电脑保存的所有wifi密码

一. 知识点 netsh wlan show profiles 用于显示计算机上已保存的无线网络配置文件 Measure-Object 用于统计数量 [PSCustomObject]{ } 用于创建Powershell对象 [math]::Round 四舍五入 Write-Progress 显示进度条 二. 代码 只能获取中文Windows操作系统的wifi密码如果想获取…

ETCD概述--使用/特性/架构/原理

ETCD概述 ETCD是一个高度一致的分布式键值存储, 它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据(高可用, 强一致性)​全局的配置服务中心. 本文将介绍其特性、相关操作和常见的应用场景. 如果想了解更多, 请查阅我的技术博客: https://dingyuqi.com 特性 …

红酒与文学:探索文字背后的酒香

在文学的海洋中,红酒如同一股不同的香风,轻轻拂过书页,为文字的世界增添了一抹诱人的色彩。今天,就让我们一起踏上这段奇妙的旅程,探索红酒与文学之间的奇妙联系,感受文字背后的酒香,特别是以雷…

第11章 规划过程组(二)(11.8排列活动顺序)

第11章 规划过程组(二)11.8排列活动顺序,在第三版教材第388~389页;文字图片音频方式 第一个知识点:主要工具与技术(重要知识点) 1、紧前关系绘图法(PDM)或前导图法&#…

宝塔Linux面板配置环境 + 创建站点

一、安装 (1)进入宝塔官网 https://www.bt.cn/new/index.html (2)点击“ 立即免费安装 ”,选择 Centos安装脚本 (3)进入 ssh 输入以下命令安装宝塔 yum install -y wget && wget -O …

【Docker安装】OpenEuler系统下部署Docker环境

【Docker安装】OpenEuler系统下部署Docker环境 前言一、本次实践介绍1.1 本次实践规划1.2 本次实践简介二、检查本地环境2.1 检查操作系统版本2.2 检查内核版本2.3 检查yum仓库三、卸载Docker四、部署Docker环境4.1 配置yum仓库4.2 检查可用yum仓库4.3 安装Docker4.4 检查Docke…

Golang 依赖注入设计哲学|12.6K 的依赖注入库 wire

一、前言 线上项目往往依赖非常多的具备特定能力的资源,如:DB、MQ、各种中间件,以及随着项目业务的复杂化,单一项目内,业务模块也逐渐增多,如何高效、整洁管理各种资源十分重要。 本文从“术”层面&#…

Linux高并发服务器开发(十一)UDP通信和本地socket通信

文章目录 1 TCP和UDP的区别2 UDPAPI流程服务端流程客户端流程 代码服务端客户端 3 本地socket通信服务端客户端客户端代码 1 TCP和UDP的区别 2 UDP API 流程 服务端流程 客户端流程 代码 服务端 #include<sys/socket.h> #include<stdio.h> #include<arpa/in…

图像增强方法汇总OpenCV+python实现【第一部分:常用图像增强方法】

图像增强方法汇总OpenCVpython实现【第一部分】 前言常用的图像增强方法1. 旋转&#xff08;Rotation&#xff09;&#xff1a;2. 平移&#xff08;Translation&#xff09;&#xff1a;3. 缩放&#xff08;Scaling&#xff09;&#xff1a;4. 剪切变换&#xff08;Shear Trans…

Mac本地部署大模型-单机运行

前些天在一台linux服务器&#xff08;8核&#xff0c;32G内存&#xff0c;无显卡&#xff09;使用ollama运行阿里通义千问Qwen1.5和Qwen2.0低参数版本大模型&#xff0c;Qwen2-1.5B可以运行&#xff0c;但是推理速度有些慢。 一直还没有尝试在macbook上运行测试大模型&#xf…

bug,属性注入时为null

因为在使用拦截器时使用的是new的这个类放容器的 解决方法&#xff1a; 使用有参构造器&#xff0c;在new对象时传入值

SpringBoot 通过Knife4j集成API文档 在线调试

介绍 Knife4j 是一款基于 Swagger 构建的增强型 API 文档生成工具&#xff0c;它提供了更多的定制化功能和界面优化&#xff0c;使得生成的 API 文档更加美观和易用。它可以帮助开发者快速生成和管理 API 文档&#xff0c;支持在线调试和交互。 依赖 <!--knife4j--> &…

使用Python3和Selenium打造百度图片爬虫

开篇 本文的目的在于实现一个用来爬取百度图片的爬虫程序,因该网站不需要登录&#xff0c;所以相对来说较为简单。下面的爬虫程序中我写了比较多的注释&#xff0c;以便于您的理解。 准备 请确保电脑上已经安装了与chrome浏览器版本匹配的chromeDriver&#xff0c;且电脑中已经…

【C++】解决 C++ 语言报错:Dangling Pointer

文章目录 引言 悬挂指针&#xff08;Dangling Pointer&#xff09;是 C 编程中常见且危险的错误之一。当程序试图访问指向已释放内存的指针时&#xff0c;就会发生悬挂指针错误。这种错误不仅会导致程序崩溃&#xff0c;还可能引发不可预测的行为和安全漏洞。本文将深入探讨悬…