前言
- 本系列教程旨在使用
UE5
配置一个具备激光雷达
+深度摄像机
的仿真小车,并使用通过跨平台的方式进行ROS2
和UE5
仿真的通讯,达到小车自主导航的目的。 - 本教程默认有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建模、动画、渲染、视频编辑、游戏设计等多个领域。
- 多功能性:它不仅仅是一个3D建模软件,还包含了完整的动画制作、渲染、视频编辑和游戏设计功能。
- 开源:Blender的源代码是开放的,用户可以自由地查看、修改和分发。
- 跨平台:Blender可以在Windows、macOS和Linux等多个操作系统上运行。
- 社区支持:由于其开源的特性,Blender拥有一个庞大的社区,用户可以通过社区获得技术支持和教程。
- 教育用途:由于其免费和开源的特性,Blender被广泛用于教育和培训中,帮助学生学习3D建模和动画制作。
- 商业用途:尽管是免费的,但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中,着色主要通过节点编辑器来完成,这个过程可以极大地影响最终渲染图像的质量和外观。 -
着色的基本概念
- 材质(Material):材质定义了物体表面的视觉属性,如颜色、纹理、反光率等。
- 纹理(Texture):纹理用于添加细节到材质上,如木纹、布料纹理等。
- 光照(Lighting):光照是模拟光线如何与物体表面交互的过程,包括反射、折射和阴影等。
5-2 Node Wrapper
-
在编辑视图找到偏好设置
-
在插件中使能Node Wrangler:Node Wrangler是Blender中的一个强大插件,旨在提高节点编辑的效率和便捷性。以下是关于Node Wrangler插件的基本信息、功能和使用教程的总结: 主要功能
- 快捷键组合:Node Wrangler提供了许多快捷键,可以大大提高工作效率。例如,通过快捷键可以快速重新加载节点树中使用的所有图像,无需手动加载5。
- 节点选择和操作:用户可以快速选择、复制和粘贴节点,以及根据不同标准对节点进行标签和重命名812。
- 节点管理:插件可以帮助用户管理复杂的节点树,通过分组、折叠和整理节点来简化工作流程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,并通过深度相机访问它
- 如有错误欢迎指出!感谢大家的支持