当前位置: 首页 > news >正文

小怿学习日记(七) | Unreal引擎灯光架构

灯光的布局对于HMI场景中车模的展示效果有着举足轻重的地位。本篇内容将简单介绍ES3.1的相关知识,再深入了解Unreal引擎中车模的灯光以及灯光架构。

一、关于ES3.1

1.1 什么是ES3.1

ES3.1这个概念对于美术的同学可能比较陌生,ES3.1指的是OpenGL ES3.1,这是移动设备和嵌入式系统常用的图形API。我们可以理解为是一种渲染方式,或者是渲染算法,类似于换一个渲染器或者渲染管线。

Unreal引擎中启用ES3.1之后,由于算法不同,灯光效果会发生改变,如图1.1.1和图1.1.2所示。

图1.1.1 PC环境下的场景效果

图1.1.2 ES3.1环境下的场景效果

1.2 为什么要用ES3.1

市场上的量产车型项目中,使用Unreal引擎时都会选择OpenGL ES3.1(ES3.1)环境。主要是源于芯片算力限制、平台兼容性、开发成本与车规级稳定性需求的综合权衡,这个只需简单了解,不必深究。

我们在制作Unreal 项目的时候,需要与市场上普遍应用的开发环境相适配,所以选择ES 3.1作为开发环境进行项目制作。

1.3 怎么启用ES3.1

在界面顶部找到:设置——预览渲染级别——Android ES3.1,选择即为启用。待加载完成即可。

图1.3.1 启用ES 3.1

二、灯光的选择

从项目落地的角度出发,我们需要控制性能开销在一定的范围内,并且要保证帧率、发热量。灯光的使用会很大程度影响性能的开销,所以我们必须保证开销低的情况下去制作灯光架构。

2.1 可移动光源

一般工程里面会尽量避免使用可移动光源,可移动光源虽然效果好,但是需要以很大的性能开销为代价,满足不了性能的需求。可移动光源包括定向光源、点光源、聚光灯、矩形光源等多种光源的可移动模式,如图2.1.1所示。

图2.1.1 可移动光源

其中定向光源、点光源、聚光灯、矩形光源由于其光照的方向性或者衰减较强,如果不使用可移动性的话,只能通过静态烘焙的方式制作灯光效果。静态烘焙的灯光效果不在本篇灯光架构讨论范围内,所以本篇不会展开讨论。

2.2 Skylight

Skylight通常作为环境光的整体照亮,即可以调整默认的天空环境去使用,也可以选择HDRI之类的环境贴图来处理光照。Skylight既有360°环绕光照,又具备开销低的特性。非常适合在ES3.1的开发环境下使用。

图2.2.1 切换立方体贴图

2.3 HDRI Backdrop

HDRI Backdrop与使用HDRI贴图的skylight类似,但区别在于skylight上的HDRI贴图在环境中不可见。我们可以在设置——插件里面找到HDRI Backdrop,勾选启用并重启Unreal 引擎。

图2.3.1 启用HDRI Backdrop

启用HDRI Backdrop之后,可以在光源集合里面找到新增了一个HDRI背景,直接将其拖入到场景中,便可以完成调用。

图2.3.2 调用HDRI Backdrop

2.4 反射捕捉

反射捕捉有球体反射捕捉和盒体反射捕捉,两者在使用上并没有什么区别。反射捕捉并不属于光源的类别,属于视觉效果的类别中。所以它的性能开销也是很小的。反射捕捉与skylight相同的是:都可以切换指定的立方体贴图。所以我们可以通过HDRI贴图去控制环境中的反射效果,也可以通过修改HDRI贴图去强化类似腰线等结构的反射效果。

图2.4.1 视觉效果

三、灯光的搭配

3.1 反射捕捉+HDRI Backdrop

反射捕捉用来提供车身的高光反射。我们将反射捕捉放入场景中,调整大小到比车模稍大两三倍即可。

图3.1.1 调整反射捕捉的大小

然后在HDRI上画出和车身腰线匹配的高光弧线,以此构建车身的基础反射和腰线高光,如图3.1.2。

图3.1.2 绘制HDRI的高光

将HDRI填充进反射捕捉中,我们可以看到车身上已经有了不错的反射效果。但是车身的基础照亮还没有处理,所以看上去的效果还不是很正确。

图3.1.3 反射捕捉的照明效果

HDRI Backdrop用来提供车身的基础亮度和可视化背景,可以看到图3.1.3里面,天空背景的颜色都是黑色,和车身上的反射效果并不匹配。在我们给场景添加HDRI Backdrop,给上和反射捕捉相匹配的HDRI,车身上的基础照亮和天空的可视化背景也得到了完善。

图3.1.4 添加HDRI Backdrop

3.2 反射捕捉+Skylight+球体背景

如果我们需要将可视化背景和车身基础亮度的照射分开的话,就需要使用Skylight去提供车身的基础照明,另外通过制作背景模型去提供背景的可视化。需要注意的是,背景不能提供任何光照以及反射效果,如图3.2.1所示,仅启用背景模型时,车模上不会有任何被照亮或反射的效果。

图3.2.1 可视化背景不参与光照

反射捕捉和3.1所提及的内容相同,不再赘述。图3.2.2是仅开启反射捕捉的效果,相比图3.1.3的示例去掉了湖面等环境元素,但车身上的反射效果是一致的。

图3.2.2 仅反射捕捉

Skylight可以直接拖入场景当中,填充对应的HDRI即可满足基础的底色光照。对比图3.2.2与图3.2.3,很明显可以看出车身上的轮胎,塑胶件和车漆底色的照明效果发生了改变。

图3.2.3 添加Skylight

背景模型的使用需要看具体情况来选择,如果旋转的视角限制在很小的角度,或者固定视角,那背景可以使用一个面片填充贴图,用最简单的方式即可满足开发需求。当需要360°旋转甚至俯仰角度的旋转时,就需要一个球形的模型来作为背景支撑。与球形UV相对应的,不管是制作的渐变背景还是天空背景,我们的贴图样式都需要与HDRI的展开方式一致。

首先制作一个巨大的球形,并将其材质的着色模型修改成无光照,并勾选双面选项,这样我们从内部才能看到球形的背景模型。

图3.2.4 修改材质类型

然后我们将准备好的HDRI背景贴图导入材质编辑器,右键将纹理节点转换成参数,如图3.2.5所示。

图3.2.5 贴图转化为参数

在贴图参数的前面简单链接上几个节点控制HDRI贴图的旋转即可,如图3.2.6。

图3.2.6 控制HDRI旋转

我们也可以再增加多一些参数,结合上简单的运算,比如对比度、强度、亮度等,如图3.2.7所示,可以方便在Unreal 引擎中直接调整贴图展示的最终效果。

图3.2.7 简单的参数运算

图3.2.8 加上模型背景

3.3 添加地面反射

在完成了灯光制作之后,可能最终效果还稍显瑕疵,这时候我们可以通过添加地面反射的方式,为场景添加一些层次。如图3.2.8中,模型背景的效果比较素,车模与场景拉不开空间感。这时候就可以在地面增加对车模的反射,提升车模与场景的融合度,增加层次感,如图3.3.1。

图3.3.1 增加地面反射

本篇笔记说明了Unreal 引擎中选择ES3.1环境进行项目制作的缘由,介绍了Unreal引擎中各种灯光在ES3.1环境下的适配情况,并介绍两种灯光架构制作场景的打光。如果想了解更多关于Unreal HMI 3D解决方案的信息,欢迎发送邮件至mkt@eptcom.com联系我们。

相关文章:

小怿学习日记(七) | Unreal引擎灯光架构

灯光的布局对于HMI场景中车模的展示效果有着举足轻重的地位。本篇内容将简单介绍ES3.1的相关知识,再深入了解Unreal引擎中车模的灯光以及灯光架构。 一、关于ES3.1 1.1 什么是ES3.1 ES3.1这个概念对于美术的同学可能比较陌生,ES3.1指的是OpenGL ES3.1&…...

网络运维学习笔记 013网工初级(HCIA-Datacom与CCNA-EI)DHCP动态主机配置协议(此处只讲华为)

文章目录 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)网关配置DHCP服务器配置如果没有DHCP服务器,只在网关上做DHCP服务器: DHCP(Dynamic Host Configuration Protocol,动态主…...

javaEE-14.spring MVC练习

目录 1.加法计算器 需求分析: 前端页面代码: 后端代码实现功能: 调整前端页面代码: 进行测试: 2.用户登录 需求分析: 定义接口: 1.登录数据校验接口: 2.查询登录用户接口: 前端代码: 后端代码: 调整前端代码: 测试/查错因 后端: 前端: lombok工具 1.引入依赖…...

HTML/CSS中并集选择器

1.作用:选中多个选择器对应的元素,又称:分组选择器 所谓并集就是或者的含义. 2.语法:选择器1,选择器2,选择器3,......选择器n 多个选择器通过,连接,此处,的含义就是:或. .rich,.beauty{color: blue;} 3.注意事项 1.并集选择器,我们一般竖着写 2.任何形式的选择器,都可以作为并…...

可编辑35页PPT | DeepSeek如何赋能职场应用

DeepSeek作为一款基于人工智能技术的多模态AI工具,近年来在职场应用中迅速崭露头角,以其强大的功能和高效的表现赢得了广泛的赞誉。DeepSeek融合了文本生成、图像创作、数据分析与可视化等多种功能,为职场人士提供了前所未有的便利和效率提升…...

CSS `transform` 属性详解:打造视觉效果与动画的利器

CSS transform 属性详解:打造视觉效果与动画的利器 引言一、transform 属性简介二、平移(Translation)三、旋转(Rotation)四、缩放(Scale)五、倾斜(Skew)六、组合变换&am…...

Windows使用docker部署fastgpt出现的一些问题

文章目录 Windows使用docker部署FastGPT出现的一些问题1.docker部署pg一直重启的问题2.重启MongoDB之后一直出现“Waiting for MongoDB to start...”3.oneapi启动不了failed to get gpt-3.5-turbo token encoder Windows使用docker部署FastGPT出现的一些问题 1.docker部署pg一…...

Spring Boot中如何使用Thymeleaf模板引擎

Thymeleaf 是一个现代化的服务器端 Java 模板引擎,在 Spring Boot 项目中使用它可以方便地将 Java 代码和 HTML 页面进行整合,生成动态的 Web 页面。以下将详细介绍在 Spring Boot 中如何使用 Thymeleaf 模板引擎。 1. 添加依赖 如果你使用的是 Maven 项目,在 pom.xml 中添…...

C/C++跳动的爱心

系列文章 序号直达链接1C/C李峋同款跳动的爱心2C/C跳动的爱心3C/C经典爱心4C/C满屏飘字5C/C大雪纷飞6C/C炫酷烟花7C/C黑客帝国同款字母雨8C/C樱花树9C/C奥特曼10C/C精美圣诞树11C/C俄罗斯方块小游戏12C/C贪吃蛇小游戏13C/C孤单又灿烂的神14C/C闪烁的爱心15C/C哆啦A梦16C/C简单…...

Element UI中messageBox怎么区分点击取消按钮关闭弹窗,和点击右上角x号以及点击遮罩层关闭按钮

在某些场景下,我们可能需要区分点击取消按钮关闭 messageBox 和点击X号、遮罩层关闭 messageBox 。 实现: 将 distinguishCancelAndClose 设置为 true,这个属性的意思是:是否将取消(点击取消按钮)与关闭&…...

Websocket——心跳检测

1. 前言:为什么需要心跳机制? 在现代的实时网络应用中,保持客户端和服务端的连接稳定性是非常重要的。尤其是在长时间的网络连接中,存在一些异常情况,导致服务端无法及时感知到客户端的断开,可能造成不必要…...

Javascript使用Sodium库实现 aead_xchacha20poly1305_ietf加密解密,以及与后端的密文交互

Node.js环境安装 sodium-native (其他库可能会出现加密解密失败,如果要使用不一样的库,请自行验证) npm install sodium-native 示例代码,使用的是 sodium-native v4.3.2 (其他版本可能会有变化,如果要使用,请自行验…...

视频mp4垂直拼接 水平拼接

视频mp4垂直拼接 水平拼接 pinjie_v.py import imageio import numpy as np import os import cv2def pinjie_v(dir1,dir2,out_dir):os.makedirs(out_dir, exist_okTrue)# 获取目录下的所有视频文件video_files_1 [f for f in os.listdir(dir1) if f.endswith(.mp4)]video_fi…...

跟着李沐老师学习深度学习(十二)

循环神经网络 序列模型 序列数据 实际中很多数据是有时序结构的 比如:电影的评价随时间变化而变化 拿奖后评分上升,直到奖项被忘记看了很多好电影后,人们的期望变高季节性:贺岁片、暑期档导演、演员的负面报道导致评分变低 核心思想&#…...

MFC中CString的Format、与XML中的XML_SETTEXT格式化注意

1、在MFC中导入 "msxml6.dll",并使用其中的XML_SETTEXT函数,此调用在进行格式化的时候,调用的还是CString.Format()函数! 2、用double类型的数据,格式化整形数%d之前,必须将double强转为int&…...

如何设计合理的树状结构表:平衡查询效率与维护效率

树状结构广泛应用于数据建模中,例如 商品分类、组织架构、权限管理 等场景。合理设计树形结构的数据库表,能够有效提升 查询效率 和 维护效率。本文将探讨如何在设计时平衡这两者,详细介绍常用的几种树状结构存储方式及其适用场景。 一、树状…...

Springboot的简单推荐实现

以springboot 推荐社团招新为例子 使用 Spring Boot 构建社团招新推荐系统,用户注册后选择兴趣,系统根据兴趣推荐社团。 实现包括用户注册、兴趣选择和基于标签匹配的推荐算法。 系统使用 JPA 管理数据库,Spring Security 确保安全&#xff0…...

SpringBoot速成概括

视频:黑马程序员SpringBoot3Vue3全套视频教程,springbootvue企业级全栈开发从基础、实战到面试一套通关_哔哩哔哩_bilibili 图示:...

springboot多实例部署时,@Scheduled注释的方法重复执行

问题&#xff1a;springboot多实例部署时&#xff0c;Scheduled注释的方法重复执行 在 Spring Boot 中要实现 Redis 的SET NX EX命令&#xff0c;可以借助 Spring Data Redis 来完成。SET NX EX命令用于在键不存在时设置键值对&#xff0c;并同时设置过期时间。 <dependen…...

蓝桥杯15 填空题

1.握手问题&#xff1a; 思路&#xff1a;首先当所有人都握过手&#xff0c;由于一次握手相当于两个人都握手过&#xff0c;所以容易发现这是一个组合问题&#xff0c;为&#xff08;50*49&#xff09;/2&#xff0c;而其中有7个人没有相互握过手&#xff0c;那么减去&#xff…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

C++_哈希表

本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、基础概念 1. 哈希核心思想&#xff1a; 哈希函数的作用&#xff1a;通过此函数建立一个Key与存储位置之间的映射关系。理想目标&#xff1a;实现…...