基于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

相关文章

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

动手学深度学习【数据操作+数据预处理】

import osos.makedirs(os.path.join('.', 'data'), exist_ok=True)data_file = os.path.join('.', 'data', 'house_tiny.csv')with open(data_file, 'w') as f:f.write('NumRooms,Alley,Price\n') # 列名f.write('NA

深度优先(DFS)和广度优先(BFS)——算法

深度优先 深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支,当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访

图解TCP三次握手|深度解析|为什么是三次

写在前面 这篇文章我们来讲解析 TCP三次握手。 TCP 报文段 传输控制块TCB:存储了每一个连接中的一些重要信息。比如TCP连接表,指向发送和接收缓冲的指针,指向重传队列的指针,当前的发送和接收序列等等。 我们再来看一下TCP报文段的组成结构 TCP 三次握手 过程 假设有一台客户端,B有一台服务器。最初两端的TCP进程都是处于CLOSED关闭状态,客户端A打开链接,服务器端

如何掌握面向对象编程的四大特性、Lambda 表达式及 I/O 流:全面指南

这里写目录标题 OOP语言的四大特性lambda输入/输出流(I/O流) OOP语言的四大特性 面向对象编程(OOP)是一种编程范式,它通过使用“对象”来组织代码。OOP 的四大特性是封装、继承、多态和抽象。这些特性帮助程序员更好地管理复杂的代码,使程序更易于理解和维护。 类-》实体的抽象类型 实体(属性,行为) -》 ADT(abstract data type) 属性-》成

java线程深度解析(六)——线程池技术

http://blog.csdn.net/Daybreak1209/article/details/51382604 一种最为简单的线程创建和回收的方法: [html]  view plain copy new Thread(new Runnable(){                @Override               public voi