基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

本文主要是介绍基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

  • 本系列教程旨在使用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系列教程:
    • 第一期:UE5-C++入门教程(一):使用代码创建一个指定目标的移动小球-CSDN博客
    • 第二期:UE5-C++入门教程(二)—编写Editor类别的自定义模型实现小球规划路线的可视化-CSDN博客
    • 备注:最近博主在unity开发独立游戏,UE5系列的相关长期教程先暂时不更新了请大家多多谅解
  • 本教程环境支持:
    • UE5.43
    • ubuntu 22.04 ros2 humble
  • 本期我们来讲一下如何使用blender完成一个锥桶的建模和贴图,本节的最后我们会得到下面这样的效果请添加图片描述

01 Blender介绍

请添加图片描述

  • Blender 是一款开源且免费的3D建模软件,广泛用于3D建模、动画、渲染、视频编辑、游戏设计等多个领域。
  1. 多功能性:它不仅仅是一个3D建模软件,还包含了完整的动画制作、渲染、视频编辑和游戏设计功能。
  2. 开源:Blender的源代码是开放的,用户可以自由地查看、修改和分发。
  3. 跨平台:Blender可以在Windows、macOS和Linux等多个操作系统上运行。
  4. 社区支持:由于其开源的特性,Blender拥有一个庞大的社区,用户可以通过社区获得技术支持和教程。
  5. 教育用途:由于其免费和开源的特性,Blender被广泛用于教育和培训中,帮助学生学习3D建模和动画制作。
  6. 商业用途:尽管是免费的,但Blender的专业功能使其在商业领域也得到了广泛应用,许多专业的3D艺术家和工作室都在使用它。

02 安装

  • 我们打开blender官网下载页面Blender官网选择LTS版本进行下载请添加图片描述

  • 根据提示一路next,选择安装路径然后install即可请添加图片描述

  • 安装好后点击blender图标,初次进入可以进行偏好设置请添加图片描述

  • 打开界面会有如下界面请添加图片描述


3 Blender快速入门

基础操作
  • 使用鼠标滚轮中键可以进行场景的选择

  • 使用鼠标滚轮中键+shift可以进行移动

  • 左侧的工具键有一些基本的移动缩放按钮请添加图片描述

  • 我们使用鼠标左键框选界面的全部物体,右上角的提示栏会显示基本的物体请添加图片描述

  • 我们一般设计建模物体的时候不需要光源和摄像头,选中他们,点击delete键删除

  • 选择基础的立方体,我们点击键盘上的N,可以看到此立方体的基础属性 请添加图片描述

  • 有时候我们要进行小物体建模的时候,我们希望物体的尺寸是cm,我们在右侧场景栏目更改缩放单位和长度的基本单位请添加图片描述

  • 这是你的网格会出现类似下述的状况,我们在右上角找到试图叠加层请添加图片描述

  • 把缩放更改回和上述单位设置的缩放单位一致就行了,可以看到网格恢复一致了请添加图片描述


4 快速建模

4-1 数据确认
  • 从实验室顺一个锥桶我们简单测一下数据请添加图片描述
4-1 底盘平面和编辑模式
  • 我们在上侧‘添加’点击网格,选择创建一个平面请添加图片描述

  • 调整尺寸为21cm✖21cm,并设置为Z识图俯视请添加图片描述

  • 我们选中物体,进入编辑模式请添加图片描述

  • 物体模式(Object Mode)编辑模式(Edit Mode)是Blender中用于操作3D物体的两种主要模式。它们在Blender的用户界面中通过一个模式选择器进行切换,通常位于3D视图的底部。

    • 物体模式(Object Mode): 物体模式是默认的模式,当你在Blender中打开一个新文件或者创建一个新的物体时,你通常是在物体模式下。在物体模式下,你可以执行以下操作:
      • 移动、旋转和缩放整个物体。
      • 选择、添加、删除物体。
      • 设置物体的变换中心点。
      • 应用变换(例如,将移动、旋转或缩放变换应用到物体的几何数据上)。
      • 创建父子关系,将一个物体作为另一个物体的子物体。
      • 设置物体的渲染属性,如材质、纹理和灯光。
    • 编辑模式(Edit Mode): 编辑模式是用于编辑物体内部几何结构的模式。当你切换到编辑模式时,你可以访问和修改物体的顶点、边、面和体。在编辑模式下,你可以执行以下操作:
      • 选择、移动、旋转和缩放物体的顶点、边或面。
      • 删除或添加几何元素。
      • 对几何元素进行布尔运算(合并、差集、交集)。
      • 使用各种建模工具,如倒角、循环切割、挤出、缩放、扭曲等。
      • 设置边的权重,用于平滑着色和变形。
      • 使用雕刻工具,对物体进行精细的雕刻和塑造。

4-2 快速细分
  • 选择平面,右键,选择细分请添加图片描述

  • 选择切割次数为7,这样21cm/7=3cm一个格请添加图片描述

  • 我们现在进行中间锥形的掏空,锥底部是15cm,21-15=6cm,一边就是3cm一个格子,拖动选择中间的格子请添加图片描述

  • 按住i进行inset,拖动选中框的角,进行适当缩放(inset 是一个用于编辑模式的建模工具,它允许用户在选定的面上创建一个向内的倒角或切口。这个工具在创建复杂的几何形状或添加细节时非常有用。)请添加图片描述

  • 让点击键盘的x进行删除,选择面x请添加图片描述

  • 删除完变成下述如下请添加图片描述

  • 我们选中上述轮廓,点击alt+shift+s进行求球面化,这时候你的鼠标变成一个球型化箭头请添加图片描述

  • 往外拖得到球型化的结果请添加图片描述

  • 然后右键选择平滑顶点请添加图片描述

  • 选择重复到5请添加图片描述

  • 然后再次进行alt+shift+s进行再次球型化请添加图片描述


4-3 拉伸锥体
  • 我们切换到侧视图请添加图片描述

  • 保持刚刚中心轮廓存在的同时点击e进行Extrude(Extrude(挤出)是一个用于编辑模式的建模工具,它允许用户从选定的几何元素(如顶点、边或面)中创建新的几何元素。),同时按住ctrl向上拖动,可以进行跨整网格进行移动,同时我们设置Z为26cm请添加图片描述

  • 按住S进行Scale缩放,5.5cm/15cm=0.3666的缩放比请添加图片描述

  • 我们转一个视角,选择上方轮廓如下图所示请添加图片描述

  • 点击S继续进行缩放,3.5cm/5.5cm=0.636请添加图片描述

  • 点击E向下稍微拉伸请添加图片描述

  • ctrl+R 进行 Loop Cut,Loop Cut(循环切割)是一个用于编辑模式的建模工具,它允许用户在选定的几何元素(如面或边)之间添加等距的循环边。Loop Cut 工具通常用于细分模型,增加细节,或者改善模型的拓扑结构。

  • 请添加图片描述

  • 同理我们在锥桶两侧也添加loop cut请添加图片描述


4-4 锥桶底部
  • 点击底边屏幕的一条边,alt+左键双击全选整个面请添加图片描述

  • 键盘点击e进行向下拉伸,和上面的操作一致


4-5 基本型细分
  • 我们切回物体模式![[Pasted image 20240907153325.png]]请添加图片描述

  • 选择整个物体,右键进行平滑着色请添加图片描述

  • 请添加图片描述

  • 然后点击ctrl+2进行细分,我们进行级别2的细分请添加图片描述

  • 同时我们再次使用环切提前把反光条的位置画出来请添加图片描述


5 贴图和材质渲染

5-1 着色
  • 点击右上角的试图着色方式请添加图片描述

  • 点击正上方进入Shading模式, Shading(着色)是3D渲染中的一个重要步骤,它涉及到为3D模型表面添加颜色、纹理和光照效果,以模拟真实世界中的视觉外观。在Blender中,着色主要通过节点编辑器来完成,这个过程可以极大地影响最终渲染图像的质量和外观。

  • 着色的基本概念

    1. 材质(Material):材质定义了物体表面的视觉属性,如颜色、纹理、反光率等。
    2. 纹理(Texture):纹理用于添加细节到材质上,如木纹、布料纹理等。
    3. 光照(Lighting):光照是模拟光线如何与物体表面交互的过程,包括反射、折射和阴影等。请添加图片描述

5-2 Node Wrapper
  • 在编辑视图找到偏好设置

  • 请添加图片描述

  • 在插件中使能Node Wrangler:Node Wrangler是Blender中的一个强大插件,旨在提高节点编辑的效率和便捷性。以下是关于Node Wrangler插件的基本信息、功能和使用教程的总结: 主要功能

    1. 快捷键组合:Node Wrangler提供了许多快捷键,可以大大提高工作效率。例如,通过快捷键可以快速重新加载节点树中使用的所有图像,无需手动加载5。
    2. 节点选择和操作:用户可以快速选择、复制和粘贴节点,以及根据不同标准对节点进行标签和重命名812。
    3. 节点管理:插件可以帮助用户管理复杂的节点树,通过分组、折叠和整理节点来简化工作流程13请添加图片描述

5-3 材质(Material)和纹理(Texture)
  • 以下几个小节为了方便查询,我们在设置-偏好中把语言改为英文

  • 我们来创建一个全新的材料,点击下方的按钮new,取名为body请添加图片描述

  • 新建的材质会出现如下的材质请添加图片描述

  • 点击shift+A可以添加新的组件,我们添加下述几个材质请添加图片描述

  • 效果如下==(注意这里的材质由于缩放比例的原因发生了变形,后续6-3修正后会变回去)==请添加图片描述


6 反光带贴图

6-1 添加材质
  • 然后我们回到编辑模
    型,alt+鼠标左键x选择中间的部分请添加图片描述

  • 我们在右侧添加一个新的材料请添加图片描述

  • 点击Assign应用到实体上请添加图片描述

  • 如此依赖基本的锥桶就有了,接下来我们来添加贴图==(注意这里的材质由于缩放比例的原因发生了变形,后续6-3修正后会变回去)==请添加图片描述

6-2 找寻贴图材质
  • 我们在任意素材网站上找到想要贴上去的图片,这里我找了一个反光的贴图请添加图片描述

  • 我们即将使用到的一个名为Unwrap的功能,Unwrap(UV展开)是Blender中的一个关键功能,主要用于将3D模型的表面展开成2D平面,以便于后续的纹理映射和绘制。在3D建模中,UV展开是一个重要的步骤,它涉及到将3D模型的表面(通常称为“网格”或“几何体”)展开成一个或多个2D平面,这些平面称为“UV贴图”。这个过程允许艺术家在一个平面上设计纹理,然后将这些纹理应用到3D模型的表面。通过UV展开,艺术家可以精确控制纹理在模型上的分布,从而实现更加细致和真实的视觉效果。请添加图片描述


6-3 重要检查
  • 在进行unwrap前我们必须要做到一下几个基础要求,否则unwarp展开的图片会变得和奇怪,我们必须保证我们的主体实物的位置和旋转分别是0,0,0,此外缩放比必须是1:1:1(如下图,我的缩放比不正确,我们必须进行修正)请添加图片描述

  • 我们选中物体,ctrl+A,选择旋转+缩放请添加图片描述

  • 这时候你会发现我们的缩放比被修正为1:1:1请添加图片描述


6-4 Unwrap
  • 我们在正上方选中UV Editiing进入uv模式请添加图片描述

  • 我们在左上角新建一个UV网格

  • 请添加图片描述

  • 选择如下参数

  • 请添加图片描述

  • 会有如下UV默认帮助你进行贴图确认的网格出现 请添加图片描述

  • 然后我们在右侧材料,找到刚刚创建的材料,选择固有色请添加图片描述

  • 选择图像纹理

  • 选择我们刚刚创建的UV_Grid![[Pasted image 20240907225836.png]]请添加图片描述

  • 我们点击右上角的视图着色方式,可以看到UV_Grid被在这个材质中展开了,但是展开的方式不太对,这时候我们就需要进行调整请添加图片描述


6-5 UnWrap调整–裁切
  • 我们在编辑模式下全选锥桶模型,并点击UV_editor右上角的打叉暂时关闭GV_Grid显示请添加图片描述

  • 然后我们现在正式开始UV图的调整,搜先我们需要做的就是UV图的裁剪请添加图片描述

  • 进入选择模式请添加图片描述

  • alt+鼠标左击选择反光条的上侧请添加图片描述

  • 右键选择标记缝合边
    请添加图片描述

  • 同理我们标记下边缘![[Pasted image 20240907230614.png]]请添加图片描述

  • 紧接着我们按下A选择全部物体请添加图片描述

  • 按下U选择展开Unwrap请添加图片描述

  • 我们就拿到展开图了请添加图片描述

  • 如果出现展开是如下情况,回到6-3进行重要检查的确认请添加图片描述

  • 然后我们再次进行裁剪,alt左键选择,右键标记分割线请添加图片描述

  • 然后A选中全部,U展开请添加图片描述


6-5 UnWrap调整–微调
  • 我们希望网格应该是顺着圆锥的母线镜像下移动

  • 请添加图片描述

  • 我们选择左侧编线,右键选择请添加图片描述

  • X向拉直请添加图片描述

  • 可以方向一遍已经对齐请添加图片描述

  • 同理我们有如下请添加图片描述

  • 对于倾斜的斜面

  • 请添加图片描述

  • 右键选择自动对齐

  • 请添加图片描述

  • 然后依次自动对齐我们就有请添加图片描述

  • 这是快大功告成辣!!!!


6-6 替换贴图图片
  • w我们在材质右侧找到图片替换请添加图片描述

  • 选择刚刚的图片并导入,不要慌,我们缩放一下图片请添加图片描述

  • A选择全部,然后I进行缩放![[Pasted image 20240907234227.png]]请添加图片描述请添加图片描述

  • 左侧进行缩放,鼠标左键进行拖拽

  • 大功告成!!!!!!!!!!!!!!!!!!!!!!!!!请添加图片描述


7 总结

  • 本节我们介绍了如何入门到完成下述这个带材质和贴图的锥桶!!!
  • 下一节我们讲讲如何将这个模型导入UE5,并通过深度相机访问它
  • 如有错误欢迎指出!感谢大家的支持
    请添加图片描述

这篇关于基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1150640

相关文章

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

SQL Server数据库迁移到MySQL的完整指南

《SQLServer数据库迁移到MySQL的完整指南》在企业应用开发中,数据库迁移是一个常见的需求,随着业务的发展,企业可能会从SQLServer转向MySQL,原因可能是成本、性能、跨平台兼容性等... 目录一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据二、迁移工具的选择2.1

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操