基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(六):Blender烘培和UE5导入

news2025/2/22 6:50:43

前言

  • 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2UE5仿真的通讯,达到小车自主导航的目的。
  • 本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客
  • 往期教程:
    • 第一期:基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(一)—UnrealCV获取深度+分割图像-CSDN博客
    • 第二期:基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(二)—ROS2与UE5进行图像数据传输-CSDN博客
    • 第三期:基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(三)—创建自定义激光雷达Componet组件-CSDN博客
    • 第四期:关于雷达数据的处理(文章源文件我暂时丢了,有空补更一下)
    • 第五期:基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模-CSDN博客
  • UE5系列教程:
    • 第一期:UE5-C++入门教程(一):使用代码创建一个指定目标的移动小球-CSDN博客
    • 第二期:UE5-C++入门教程(二)—编写Editor类别的自定义模型实现小球规划路线的可视化-CSDN博客
    • 备注:最近博主在unity开发独立游戏,UE5系列的相关长期教程先暂时不更新了~
      请大家多多谅解~
  • 本教程环境支持:
    • UE5.4.4(本节被从5.4.3–>5.4.4)
    • ubuntu 22.04 ros2 humble
  • 上期我们使用Blender完成了基本的建模,本期我们将介绍Blender的烘培技术和实现,然后将我们的模型转成fbx导入UE5中,最后达到如下效果请添加图片描述

0 零帧起手–UE5.4.4更新

  • 好久没开UE5今天打开居然UE5.4.3更新补丁了…我们更新一下,更新后就是5.4.4了请添加图片描述

1 基础概念

1-1 FBX

请添加图片描述

  • FBX(Filmbox)是一种用于存储三维模型、动画、材质、贴图等信息的文件格式。
  • 在Blender中,FBX文件可以用于以下几种情况:
    1. 导入和导出模型:你可以使用FBX格式将其他三维软件创建的模型导入到Blender中,也可以将Blender中的模型导出为FBX文件以便在其他软件中使用。
    2. 跨软件工作流:FBX格式被许多三维软件支持,这使得在不同的软件之间交换模型变得更加容易。例如,你可能需要将Blender中的模型导入到3ds Max或Maya中进行进一步的处理。
    3. 动画数据传输:除了几何数据外,FBX文件还可以包含动画数据,这使得在软件之间转移动画变得非常方便。
    4. 游戏开发:许多游戏引擎支持FBX格式,因此Blender用户可以轻松地将自己的作品导入到游戏引擎中进行游戏开发。
    5. 协同工作:在团队工作中,FBX格式可以作为一个标准化的交换格式,确保团队成员在不同软件中工作时的数据一致性。

1-2 烘培

请添加图片描述

  • 不对,放错图了

  • 烘焙(Baking)是一个重要的功能,用于将复杂的3D模型、动画或者光照信息转换成2D图像或者贴图,以便于实时渲染或用于其他3D软件。

  • 烘焙的基本概念: 烘焙的主要目的是减少渲染时的计算量,提高渲染速度。例如,在游戏开发中,为了实现流畅的实时渲染,通常需要对场景中的光照、阴影、法线等数据进行烘焙,生成相应的贴图。这样,在游戏运行时,只需应用这些预烘焙的贴图,就能快速渲染出复杂的场景效果,而不必实时计算。

  • 可能有朋友会问了,如果不考虑算力问题,这里为什么要使用到烘培呢,我们来回顾一下上一节我们自定义的材质请添加图片描述

  • 可以看到上述节点图中我们自定义的材料图过于复杂,在进行格式转换的时候容易出现模型无法正常或者良好转换的情况,如下图我的尝试,按照正确步骤对上述模型进行fbx文件直接export导出后再次进行import到blender中的时候,出现了如下无法正常解析texture的情况请添加图片描述

  • 题外话:经过搜寻和问题查找最终我暂时把问题归咎于自定义材质的复杂性,解决方式可以是尝试对材质进行简化,或者考虑烘培。在不想优化材质的懒惰下我最后还是选择了烘培(我在已经确保fbx导出时候已经选择了正确的导出形式和选择)


2 快速开烤

2-1 三个特性
  • 在明白了为什么要进行烘培之后,那我们来快速上手,我们要做的很简单,分别进行3次烘培,分别对color(颜色),roughness(粗糙度)normal(发现)三个特性进行烘培,得到三张PNG图像。
  1. 颜色(Color)烘焙:颜色烘焙是将模型的材质颜色信息烘焙到一张2D图像上。这样,在实时渲染时,就不需要再次计算材质的颜色,可以直接使用这张图像来显示模型的颜色。这对于保持材质的细节和颜色一致性非常重要。
  2. 粗糙度(Roughness)烘焙:粗糙度烘焙用于将材质的粗糙度信息烘焙到一张2D图像上。粗糙度决定了材质表面反射光线的散射程度,从而影响材质的外观。例如,一个粗糙的表面会散射更多的光线,而一个光滑的表面则会产生更集中的反射。在实时渲染中,使用烘焙的粗糙度贴图可以快速实现这些效果,而不需要实时计算。
  3. 法线(Normal)烘焙:法线烘焙是将高多边形模型的法线信息烘焙到低多边形模型上。法线贴图可以模拟出高多边形模型的细节,而不需要使用高多边形的模型进行渲染。这对于减少渲染负担、提高渲染速度非常有帮助。在实时渲染中,法线贴图可以用来模拟凹凸不平的表面,使低多边形模型看起来更加复杂和真实。
  • 这三项也分别对应上一节我们绘制基本材料时候连接的三个特性
  • 请添加图片描述

2-2 创建Image Texture✖3
  • 顾名思义,找到我们需要的body材料(需要烘焙的部分)

  • 请添加图片描述

  • shift+A添加三个特性的Image Texture,注意粗糙度和法线的颜色空间要选择Non-Color.接下来我们烘培的结果将会存储在这三个ImageTexture中请添加图片描述


2-3 开始烘培
  • 右侧Render属性栏,选择配置我们烤箱的引擎Cycles,同时我们选择GPU可以为烘培进行加速请添加图片描述

  • 在Blender中,Cycles是一个强大的渲染引擎,它使用光线追踪技术来创建逼真的图像。Cycles是一个基于物理的渲染器(Physically Based Renderer,PBR),这意味着它模拟了光线在现实世界中的行为,包括光的反射、折射、散射和吸收。

  • 接着我们配置第一个Color的烘培参数,你要确保一下选项:

    1. 物体被全选
    2. 材料是选对的
    3. Bucket_Color(Image Texture)被选中
    4. Bake Type 是Diffuse(当你选择"Diffuse"(漫反射)作为烘焙类型时,你是在指示渲染引擎只计算并保存对象表面的漫反射颜色,而不包括高光、反射或折射等效果。)
    5. 取消Contributions的Direct和Indirect
  • 然后点击Bake开始烤箱请添加图片描述

  • 下方有个进度条,进度条走完就是完成了

  • 请添加图片描述

  • 烘培结束后我们可以在UV展开视图中找到刚刚烘培得到的图片请添加图片描述

  • 选中后我们点击Image进行PNG另存为请添加图片描述

  • 我们就有如下画面请添加图片描述


2-4 烘培结束
  • 相同步骤,粗糙度选中粗制度进行烘培请添加图片描述

  • 法线选择Normal进行烘培请添加图片描述

  • 得到如下三张烘培结果的效果图片请添加图片描述

  • 然后我们选中这三个组件,复制,创建一个新的材质 请添加图片描述

  • 如下请添加图片描述

  • 这个新的材质只需要同时包含这个三个烘培结果的图进行叠加就可以获得相同效果的材质了请添加图片描述

  • 至此我们完成了烘培的全部工作,新材质效果基本上看起来和原来的没有上面差别请添加图片描述


3 FBX导出

  • 老规矩A选择全部物体,文件-导出-FBX文件请添加图片描述

  • 我们填一下导出的基本属性,注意 请添加图片描述

  • 注意右边这个小按钮一定要点上请添加图片描述

  • 我们没有骨骼和动画,取消勾选,平滑选择面请添加图片描述

  • 值得一提的是右上角的加号可以保存你的选项,以便下次使用请添加图片描述

  • 自此我们完成了导出的全部工作请添加图片描述


4 UE5导入FBX文件

  • 老规矩新建项目,C++,使能光线追踪,点击create

  • 在新项目中创建一个bucket文件夹点击import导入fbx文件请添加图片描述

  • 选项可以设置默认,然后点击Import All请添加图片描述

  • 导入存在一点点问题,不要慌,我们一个个解决请添加图片描述

  • 可以看的出来我们的body_bake没有被加载出来,那我们就手动添加,把刚刚烘培的三张PNG图拖到资源文件夹中请添加图片描述

  • 请添加图片描述

  • 然后双击body_bake 进入材质编辑页面请添加图片描述

  • 和Blender逻辑一样,鼠标右键搜索添加Texture Sample请添加图片描述

  • 在左下角属性出为三个特性添加PNG烘培图请添加图片描述

  • 添加后然后连连看,可以看到左上角的材质球已经显示出来了!请添加图片描述

  • ctrl+s保存,回到主界面可以看到我们的锥桶已经成功展现了![[Pasted image 20240908110123.png]]请添加图片描述

  • 向上拖动导入一个锥桶请添加图片描述

  • 自由摆放环节请添加图片描述


5 总结

  • 本节我们介绍了Blender的烘焙工艺及其使用,然后将我们的模型转成fbx导入UE5中。
  • 下一节我们讲讲如何为我们的小车创建基础环境。
  • 如有错误,欢迎指出!!!谢谢大家的支持

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

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

相关文章

【互联网的低潮期】

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

vue-router + el-menu

1. el-menu的router属性 在el-menu中有一属性:router,默认是false 1.1 使用默认配置,即false 这时候需要自己在点击子菜单的时候进行导航,在el-menu添加方法,里边有三个参数 index: 选中菜单项的 index,indexPath…

【EJB】会话Bean(Session Bean)

单例会话****bean在每个应用程序中实例化一次,并存在于应用程序的生命周期中。单例会话bean是为单个企业bean实例在客户端之间共享和并发访问的环境而设计的。 单例会话Bean提供了与无状态会话Bean相似的功能,但与它们不同,因为每个应用程序…

基于Python的可视化在线学习系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的可…

Windows系统介绍

文章目录 1、Windows启动过程1.1 启动过程BIOS1.2 启动过程MBR1.3 启动过程 GPT1.4 启动过程BootMgr1.5 启动过程Winload.exe1.6 启动过程1.7 explorer.exe 2、Windows重要进程及组件2.1 注册表Services注册表服务管理器Services.mscsc.exe计划任务taskschd.msc计划任务schtask…

营销前瞻丨2024小红书「黑科技」数据报告

随着科技对人们日常生活的逐渐渗透,对有更高生活质量追求的人来说,产品的智能化、科技化程度已经成为影响他们消费决策的重要因素。 千瓜数据显示,小红书平台2024年1月到7月,“科技”相关种草笔记数较去年同期增长超140%&#xff…

HashMap线程不安全|Hashtable|ConcurrentHashMap

文章目录 常见集合线程安全性HashMap为什么线程不安全?怎么保证HashMap线程安全 HashtableConcurrentHashMap 引入细粒度锁代码中分析总结 小结 常见集合线程安全性 ArrayList、LinkedList、TreeSet、HashSet、HashMap、TreeMap等都是线程不安全的。 HashTable是线…

50ETF期权可以当天买卖吗?

今天期权懂带你了解50ETF期权可以当天买卖吗?期权日内交易指的是在一个交易日内买入和卖出期权合约,以从价格波动中获取短期收益。 50ETF期权可以当天交易 在这里,可以负责任的告诉大家,50ETF期权当天买入,也可以当天…

安泰电压放大器对参数的要求有哪些

电压放大器是电子电路中常见的一种基本电路,用于将输入信号的电压放大至更大的幅值输出。在设计和应用电压放大器时,需要考虑一系列参数来确保放大器的性能和稳定性。下面将详细介绍电压放大器对参数的要求。 电压放大器对增益的要求非常重要。增益是指输…

2024年6款强力电脑监控软件推荐

随着数字化办公的普及,电脑监控软件已成为企业管理和个人安全的重要工具。无论是企业主监控员工工作效率,还是家长防范孩子沉迷网络,强力的电脑监控软件都能提供有效的解决方案。本文将为您推荐6款功能强大且广受好评的电脑监控软件&#xff…

UDS 诊断 - RequestDownload(请求下载)(0x34)服务

UDS 诊断服务系列文章目录 诊断和通信管理功能单元 UDS 诊断 - DiagnosticSessionControl(诊断会话控制)(0x10)服务 UDS 诊断 - ECUReset(ECU重置)(0x11)服务 UDS 诊断 - SecurityA…

【Hot100算法刷题集】双指针-02-盛水最多的容器(含暴力枚举、双指针法及其合理性证明)

🏠关于专栏:专栏用于记录LeetCode中Hot100专题的所有题目 🎯每日努力一点点,技术变化看得见 题目转载 题目描述 🔒link->题目跳转链接 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的…

Linux系统部署SmartKG(知识图谱安装)

基本要求 #docker需要高版本 Docker version 20.10.14, build a224086docker 20.10.14离线安装 SmartKG官网 官方详细文档 下载部署包 SmartKG官网 准备部署 #上传到服务器 [roottest-server01 opt]# ll SmartKG-master.zip -rw-r--r-- 1 root root 79708691 Sep 11 17:4…

网络层协议介绍

目录 一、网络层的功能 二、ip数据包格式 三、ICMP协议(Internet控制报文协议) 3.1功能 3.2 ping命令 3.2.1ping命令的用法 3.2.2扩展 3.3 tracert命令(windows) 四、arp协议 4.1ARP协议是如何工作的 4.2工作原理&#x…

解码未来:H.265与H.266技术对比及EasyCVR视频汇聚平台编码技术优势

随着视频技术的不断发展,视频编码标准也在不断更新迭代。H.265(也称为HEVC,High Efficiency Video Coding)和H.266(也称为VVC,Versatile Video Coding)作为当前和未来的主流视频编码标准&#x…

本地部署大语言模型详细讲解

​ 大家好,我是程序员小羊! 前言: 本地部署大语言模型(LLM,Large Language Model)需要相应的硬件资源和技术栈支持,如GPU计算能力、大量内存、存储空间,以及模型部署框架。以下是如…

46页PPT说清楚数据资产目录建设,数据资产目录建设方案

数据资产管理的必要性 为了更好地管理和利用这些资产,构建一个全面的数据资产目录变得至关重要。本方案旨在通过一系列策略和步骤,帮助企业实现数据资产的有效管理和利用。政策层面,数据已被纳入生产要素,强调了数据安全与保护的…

Qt 中openMp 配置

Qt 中openMp 配置 前言 openMP是使用CPU进行并行计算,在实际项目中处理耗时的for循环等,简单有效,本文记录下使用Qt \C项目开发时如何配置openMP 二、工程配置 1.Qt Creator pro工程 区分编译器,配置pro文件 MSVXXX编译器&am…

Adobe Firefly 视频模型测试版即将推出,具备文本、图像或视频添加元素的多种功能

Adobe Firefly Video 是一款由 Adobe 推出的新型人工智能视频生成模型,旨在为视频专业人士提供强大的创意工具,该模型计划在年底前推出。 演示视频在喜好儿网 Firefly Video 模型具备多种功能,包括从文本生成视频、图像生成视频或视频添加元…

I2C-Tools的安装与使用方法(详解,一篇教会你熟练使用)

1.前言: i2c-tools是一个开源的I2C总线工具集,它包括了用于访问和操作I2C设备的各种命令行工具。这些工具可以帮助用户读取和写入I2C设备的数据,检测和诊断I2C总线的问题等。 2.各系统的安装: 接下里会展示在不同操作系统中如何使…