Unreal 5 实现场景环境控制组件

news2024/9/28 13:15:52

我在场景中发现了一个环境控制器,这个场景实现了雨天天气和晴天风沙天气,接下来我分析一下这个天气控制器是如何实现。
实现流程:

  1. 将环境控制器拖入场景,在配置项上面设置相应的雾,主光源,天空光。
  2. 在环境控制器中去设置场景上面的相关配置。
  3. 在环境控制器中去修改材质上的配置项
    接下来,我们看一下案例场景中的实现过程。

环境控制器蓝图实现

首先看一下环境控制器的配置项,
Wetness Level 则是湿度 会控制场景内材质的光滑度
Raindrops Amount 则会显示雨滴落到地面上的效果密度
Allow Particles 是否更新粒子
Is Raining 是否是雨天
关卡列表上面可以根据下来选择场景中的 雾 主光源 天空光
在这里插入图片描述
在构造函数中,设置材质函数库地面湿度和雨滴的密度的配置
在这里插入图片描述
然后根据设置是否雨天配置,设置分支
在这里插入图片描述
雨天中,修改雾的配置
在这里插入图片描述
修改直接光的配置
在这里插入图片描述
修改天空光的配置
在这里插入图片描述
晴天中,修改雾的配置
在这里插入图片描述
修改直接光的配置
在这里插入图片描述
修改天空光的配置
在这里插入图片描述
在事件图表中,事件开始运行时,根据是否雨天,设置材质参数集的值,当前为雨天的设置,并调用雨天特效
在这里插入图片描述
如果是晴天,使用设置的湿度和密度设置,并调用移动风沙效果。
在这里插入图片描述
定义了两个自定义事件,这两个事件是给房屋提供的事件调用,在上一篇讲过,房屋蓝图里面碰撞体和玩家产生碰撞以后,就会触发Inside事件,而完成碰撞以后,就会触发Out事件。如果Allow Particles的值为true,才会更新粒子特效,并且根据是否雨天,调用雨天事件或者风沙天气事件。
在这里插入图片描述
雨天事件,会根据是否在建筑内,选择添加或者删除特效,如果选择添加,会在玩家控制的摄像机上面添加一个粒子系统
在这里插入图片描述
风沙特效也是同样的道理
在这里插入图片描述
它们最后都调用了建筑内的特效,这个只会在屋内显示的效果
在这里插入图片描述

设置材质的参数

修改场景内的材质的相关参数来表现晴天和雨天的不同效果,这里环境控制器是通过设置标量参数值实现的,主要是设置一个浮点数,其实还有一个就是设置向量参数值,这个需要传入一个四维向量去设置。那么,接下来讲解一下如何在材质中实现当前值的使用,并分析一下场景内的材质如何实现雨天材质和晴天材质的变化。
在这里插入图片描述
如果能够设置到材质里面,需要创建材质参数集
在这里插入图片描述
材质参数集里面可以设置标量和向量,标量就是单个浮点,向量就是四维向量,
在这里插入图片描述
这个文件可以直接拖入到材质或者材质函数中使用,运行时,修改了当前的值,材质相应的值也会被修改。
在这里插入图片描述
拖入后,选择节点,可以选择参数集中使用的参数
在这里插入图片描述

场景里地面材质的实现

我们可以看一下场景里面的Road的材质怎么实现的,里面使用了两套纹理实现的,纹理也是标准的pbr物理光照材质实现的纹理设置,一张反射率贴图,一张法向贴图,还有一张Mask贴图
在这里插入图片描述
这一块是实现的视差遮挡偏移,视差遮挡偏移的原理是根据相机朝向和物体高度图来偏移uv实现。后面就是宏去开启或者关闭,并且还可以根据清晰度设置来开启和关闭。
在这里插入图片描述
然后使用uv去拾取反射率贴图
在这里插入图片描述
然后采样Mask贴图,R通道是高度,G通道是粗糙度,B通道是环境遮挡,因为路面不是金属,所以直接设置金属度为0即可。
在这里插入图片描述
还有采样了法向贴图
在这里插入图片描述
然后创建了材质属性节点,这个节点主要就是保存设置的信息,也方便lerp插值以及选择。
在这里插入图片描述
这个材质使用了两套贴图,所以需要一个mask去获取当前到底使用哪个属性
在这里插入图片描述
两套属性的混合使用是在世界坐标系下面的混合,通过位置进行三平面映射,获取到纹理的G通道,
在这里插入图片描述
G通道的效果是这样,然后还将强度乘以2,让第一个通道的属性显示区域大一些,估计是trick。
在这里插入图片描述
然后使用混合材质属性节点,使用mask去混合,如果不开启宏,则直接使用第一套材质属性。
在这里插入图片描述
然后使用了环境光遮挡处的苔藓效果,然后使用烘焙的ao去作为mask混合苔藓和基础默认的材质属性
在这里插入图片描述
然后创建了水的材质属性
在这里插入图片描述
水的函数里面就是生成了一套材质属性,水的反射率贴图,法向贴图和粗糙度,还有根据高度,根据高度生成了Mask
在这里插入图片描述
然后就是最后根据水的mask混合材质属性
在这里插入图片描述
属性通过雨滴效果函数设置,然后生成最终显示在材质。
在这里插入图片描述
在雨滴特效函数里面,修改了基础颜色,粗糙度和金属度
在这里插入图片描述
还有修改法向
在这里插入图片描述
里面重点的部分就是FlipBook,然后使用一张序列帧图片,来循环实现雨滴效果。
在这里插入图片描述

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

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

相关文章

Spring Cloud Alibaba-全链路灰度设计

文章目录 灰度发布概念灰度发布架构Spring Cloud Alibaba技术架构下的灰度发布实现基础设计HttpHeader设计 Spring Cloud Gateway改造Spring Cloud Gateway实现灰度发布过滤器 自定义Loadbalancer微服务注册元信息修改自定义LoadBalancer使用 测试代码放到了github上[地址]() 灰…

STM32F4_CAN详解

目录 1. CAN简介 2. CAN协议的物理层 2.1 CAN协议中的差分信号 3. CAN协议的协议层 3.1 CAN的报文种类及结构 4. STM32的CAN外设 4.1 CAN框图 5. CAN相关结构体 6. CAN相关寄存器 7. 硬件设计 7.1 TJA1050芯片 8. 库函数配置CAN初始化 9. 实验代码 9.1 main.c 9…

SpringBoot问题-----------可以同时处理多少个请求

SpringBoot之可以同时处理多少个请求 SpringBoot的运行方式springBoot中tomcat的位置最小、最多工作线程数最大连接数等待数 SpringBoot的运行方式 SpringBoot项目中内嵌了tomcat 程序的运行就是通过tomcat来实现的;springBoot可以同时处理多少个请求其实就是在说 …

图像生成—使用GANs给出代码示例

文章目录 图像生成简单介绍—使用GANs给出代码示例1. 什么是生成对抗网络(GANs)2. 准备数据集3. 构建生成器和判别器4. 训练GAN模型5. 生成新图像6. 总结 图像生成简单介绍—使用GANs给出代码示例 图像生成是指使用计算机算法生成图像的过程。这些图像可…

C++ | 多线程使用vector

多线程使用vector 文章目录 多线程使用vector场景描述原因分析解决代码测试不扩容和提前扩容 size 与 capacity 变化欢迎关注公众号【三戒纪元】 场景描述 最近在看代码优化&#xff0c;看到有这样的代码&#xff1a; std::vector<int> valid_indices;void SimbaSegmen…

APP测试面试题快问快答(五)

21. App自动化你用的什么工具&#xff1f; 框架&#xff1a;Appium 编译环境和工具&#xff1a;python3.7和PyCharm 环境&#xff1a;Android sdk 第三方模拟器&#xff1a;夜神、蓝叠等模拟器 定位工具&#xff1a;uiautomatorviewer 实时日志查看&#xff1a;ddms 22.…

Tapdata 重磅更新已就绪!全托管云服务上线,应用场景再扩展

继 5 月举办的 「连接 1 次孤岛&#xff0c;服务 N 个场景」主题产品发布会后&#xff0c;Tapdata Live Data Platform 现已实现功能特性的全面升级&#xff0c;并基于自身产品能力积极探索在应用场景层面的落地实践及无限可能。 在去年 6 月的 Tapdata 2.0 发布会上&#xff…

Threejs实现数字人3D粽子

个人主页&#xff1a; 左本Web3D&#xff0c;更多案例预览请点击》 在线案例 个人简介&#xff1a;专注Web3D使用ThreeJS实现3D效果技巧和学习案例 &#x1f495; &#x1f495;积跬步以至千里&#xff0c;致敬每个爱学习的你。喜欢的话请三连&#xff0c;有问题请私信或者加微…

美国访问学者的父母如何申请探亲签证?

对于美国访问学者的父母来说&#xff0c;申请探亲签证是能够让他们在美国与子女团聚的重要途径。下面是知识人网小编整理的一些关于如何申请探亲签证的基本步骤和要点&#xff0c;希望对您有所帮助。 第一步&#xff1a;了解签证类型 在开始申请探亲签证之前&#xff0c;父母需…

【增值税发票识别 OCR】如何实现自动化发票管理

导言 在现代商业环境中&#xff0c;管理和处理大量的增值税发票数据是一项繁琐而重要的任务。传统的手动处理方法既费时又容易出错&#xff0c;而使用增值税发票识别OCR API可以实现自动化的发票管理&#xff0c;大大减少人工处理的工作量。本文将介绍如何利用增值税发票识别O…

Hadoop --- HDFS介绍

HDFS 全称是Hadoop Distributed File System hadoop分布式&#xff08;cluser&#xff09;文件存储系统。适合一次写入&#xff0c;多次读出的场景。 HDFS不需要单独安装&#xff0c;安装Hadoop的时候带了HDFS系统。 Hadoop安装可以参考&#xff1a; 有基础的&#xff0c;已…

轻松了解OPC:实时数据通信领域的必备神器!

OPC简介 OPC&#xff08;OLE for Process Control&#xff0c;进程控制对象连接&#xff09;是一种在工业自动化领域中被广泛使用的技术&#xff0c;它允许不同厂商的自动化设备之间进行通信和数据交换。 OPC技术最早是由美国的软件公司OPC Foundation推出的&#xff0c;它通…

【jsDelivr】jsDelivr - 一个免费、快速、可靠的为JS和开源项目服务的CDN

文章目录 jsDelivr 简介jsDelivr 工作原理 jsDelivr加速域名如下cdn.jsdelivr.net 2023/06/21 域名解析结果fastly.jsdelivr.net 2023/06/21 域名解析结果gcore.jsdelivr.net 2023/06/21 域名解析结果test1.jsdelivr.net 2023/06/21 域名解析结果 仓库拓展 - 其他CDNnpmESMGitH…

nginx nginx-module-vts 监控模块

nginx nginx-module-vts 监控模块 大纲 nginx-module-vts 安装nginx-module-vts 配置监控字段总结配置参数总结vhost_traffic_status_filter_by_host 使用vhost_traffic_status_filter_by_set_key 使用 nginx-module-vts 安装 nginx-module-vts 可以实现对nginx 各个虚拟主…

接口测试是什么?如何测试?

扫盲内容&#xff1a; 1.什么是接口&#xff1f; 2.接口都有哪些类型&#xff1f; 3.接口的本质是什么&#xff1f; 4.什么是接口测试&#xff1f; 5.问什么要做接口测试&#xff1f; 6.怎样做接口测试&#xff1f; 7.接口测测试点是什么&#xff1f; 8.接口测试都要掌…

在Linux系统实现服务器端和客户端的多线程并发通信

先导知识&#xff1a; 在Linux系统实现服务器端和客户端的套接字通信_小梁今天敲代码了吗的博客-CSDN博客 线程同步&#xff08;一&#xff09;_小梁今天敲代码了吗的博客-CSDN博客 线程同步&#xff08;二&#xff09;_小梁今天敲代码了吗的博客-CSDN博客 线程同步&#x…

通付盾入围《2023年度中国数字安全能力图谱(行业版)》

近日&#xff0c;数世咨询发布《2023年度中国数字安全能力图谱&#xff08;行业版&#xff09;》。通付盾作为以分布式数字身份和大数据决策智能技术为核心的数字化高端软件与服务提供商&#xff0c;凭借在数字安全领域的实力和影响力&#xff0c;入选政府、互联网两大行业细分…

实战react+ts+antd遇见的问题之自定义树形结构

目录 自定义编辑树搜索树形结构搜索算法原理 实时更改数据界面不随之发生变化 自定义编辑树 需求要求在每个节点的后面加上新增&#xff0c;编辑&#xff0c;删除按钮&#xff0c;并且能够点击编辑title的显示变成input输入框&#xff0c;antd的案例中没有这种情况&#xff0c…

逍遥自在学C语言 | 指针函数与函数指针

前言 在C语言中&#xff0c;指针函数和函数指针是强大且常用的工具。它们允许我们以更灵活的方式处理函数和数据&#xff0c;进而扩展程序的功能。 本文将介绍指针函数和函数指针的概念&#xff0c;并讲解一些常见的应用示例。 一、人物简介 第一位闪亮登场&#xff0c;有请…

金士顿U盘无法识别的修复软件,方便好用

一、PD V1.16 先打开“PDx16.exe”这个软件&#xff0c;插入U盘。就会在“DEVICE 1”那里检测到U盘&#xff08;如果没有&#xff0c;就用另外的软件&#xff09;。然后按“全部开始”。当完成好&#xff0c;再重新插入U盘。 二、2090&2090E_V1.6.9_普通版070628 1、插入…