
<p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2Fe8j00smatov00cxd200p000ang00it0080.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34V3NEGQ">上篇推文对“如何将自定义三维模型与场景导入到飞思仿真平台并实现仿真”做了详细讲解(可点击下方蓝色文字查看)。</p><p id="34V3NEGS">本 文 将在此基础上,以一个实际案例为依托,逐步演示每个步骤的操作方法,并提供实用的建议和解决方案,帮您在实践中掌握三维场景导入飞思仿真平台的技能 。</p><p id="34V3NEGT"><strong data-type="dy"><video src="https://removemp4" data-video="https://flv0.bn.netease.com/d5fc49602ca30376e87e7fa980f233efcdd7a111a1ca9318fd985e67d01773ffb61cae0232f6cbfaddf798a0cc8ab25a40c3aefbfb3a59b654e40c5d92841b9e12d6a30001a4690b2c620d14f7480bd9a504af2132db5d1528c3dc398ce096ebc8eade8973f.m3u8,https://removemp4" data-img="http://videoimg.ws.126.net/cover//8Kaw3eyHC_cover.jpg" data-topicid="1000" data-commentid data-commentboard="" data-vid="VFF21F30Q" alt=" 实验教程 | 3步教你如何将三维场景导入飞思仿真平台 " data-m3u8="https://flv0.bn.netease.com/d5fc49602ca30376e87e7fa980f233efcdd7a111a1ca9318fd985e67d01773ffb61cae0232f6cbfaddf798a0cc8ab25a40c3aefbfb3a59b654e40c5d92841b9e12d6a30001a4690b2c620d14f7480bd9a504af2132db5d1528c3dc398ce096ebc8eade8973f.m3u8" preload="none" controls /></strong></p><p id="34V3NEGU">实验教程视频演示</p><p id="34V3NEH7"><strong>技术背景</strong></p><p id="34V3NEHD">导入RflySim资源分为场景资源和模型资源,以及特效扩展包。场景资源导入分为小规模局部场景和大规模场景(在线和离线)。小规模场景只需导入UE烘焙的资产和地形文件,大规模在线场景通过导入网格数据切片至Cesium工作目录,RflySim3D将自动加载,离线场景需分批烘焙大场景并集成至RflySim。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2F026dcae3j00smatow004dd200u000epg00hz008s.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34V3NEHN"><strong>实验原理</strong></p><p id="34V3NEHT">在UE项目中已处理完成的场景有三种:UE默认场景、虚幻商城购买的场景以及从其它UE项目中迁移来的场景,这些场景在UE中烘焙完成即可导入RflySim3D。</p><p id="34V3NEHU">RflySim3D中完整的仿真场景需要三部分信息<strong>:烘焙好的场景文件(”.umap”)、地形高程信息(“.png”)、地形校准数据(“.txt”)。</strong>每个”.umap”(烘焙前后有区别)地图文件对应了一个独立的三维场景,RflySim3D会自动扫描平台安装路径:</p><p id="34V3NEHV">【RflySim安装路径】 PX4PSPRflySim3DRflySim3DContent目录下所有的.umap并自动导入。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2Ffad65a11j00smatox00dud200u000ebg00hz008k.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34V3NEI1">为了将RflySim3D中的场景与CopterSim联动以支持之后的仿真流程,需要将场景的地形数据导入CopterSim。上述png地形文件实际上是以图片形式存储的二维矩阵,包含了场景的高程图,以png格式存储矩阵能够很好的实现高程矩阵的压缩,便于节省空间。</p><p id="34V3NEI2">*png的高程文件并不包含坐标原点、缩放尺度、场景范围等信息,因此需要一个校正文件,飞思仿真平台采用txt格式输入9维数组传入校正信息。平台中txt校正文件存储的是右上角三维坐标点(xy全为正,z向上为正)、左下角三维坐标点(xy全为负,z向上为正)、第3点三维坐标点,单位均为厘米。前两个点的目的是为了确认地形的范围和中心坐标,第3点坐标可自行选取,理论上需要尽量在高度上与前两个点有落差,用于校正高度尺度。</p><p id="34V3NEI9"><strong>RflySim3D案例介绍</strong></p><p id="34V3NEIF"><strong>1. 在UE中创建场景,并烘焙</strong></p><p id="34V3NEIG">首先启动UE创建一个游戏项目,任意选择一个模板即可(我们只需要使用它编辑一个场景,不需要其它逻辑)。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2Fej00smatoy001nd200n3009zg00hz007r.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2F45259b38j00smatoz003od200kw00ahg00hz0090.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2F90d746c8j00smatoz0010d200kx009mg00hz0089.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34V3NEIK">在下方的“内容浏览器(ContentBrowser)”中定位“ContentStarterContentMaps”(如果选择了“含初学者内容包”就会有这个路径),双击打开Minimal_Default关卡,可以看到三维场景已经被打开,按住鼠标右键配合使用WSADQE可以在场景中自由移动与旋转,查看整个场景。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2F143aaec1j00smatp0006ad200kt00bbg00hz009r.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34V3NEIM">为了避免干扰,可以删去另外4个文件,在Windows的文件资源管器“项目路径ContentStarterContentMaps” 下看到与UE的内容浏览器中剩下的2个文件对应的文件(如下图)。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2F27a63a55j00smatp00019d200jk005ug00hz005c.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34V3NEIO">第一个“.umap”文件为刚刚展示的三维场景,第二个“BuildData”是用于构建该场景的一些信息(主要是光照信息)。但是并不是有它们就行了,它会引用其他的文件,例如场景中的桌子、椅子,它们都是存储于其他文件中的(StartContentProps),但我们需要先烘焙它。<br/></p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2Fff071f36j00smatp00014d200h90089g00hz008l.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34V3NEIQ">在编辑->项目设置->打包中确保如下设置(这是为了节省译时间),然后在文件->烘培Windows的内容,进行烘培即可。<br/></p><p id="34V3NEIR">等待一段时间,直到UE右下角显示烘焙成功,特别注意:烘焙完拷贝出来后不能再修改得到文件和文件夹的名字,重命名只能在UE编辑器中进行。</p><p id="34V3NEIS">可以在【该工程文件夹】SavedCookedWindowsNoEditor【工程名】ContentStartContent,找到刚刚的场景Maps,我们直接将整个StartContent都复制到RflySim3D的Content目录下。</p><p id="34V3NEIT">【RflySim安装路径】PX4PSPRflySim3DRflySim3DContent”。</p><p id="34V3NEIU">RflySim3D启动时会扫它的Content目录下所有的.umap文件并自动导入,使用快捷键“M”即可看见这个新地图了。</p><p id="34V3NEIV"><strong>2. 给CopterSim添加地形文件</strong></p><p id="34V3NEJ0">此时只是RflySim3D导入了这个地图,目前CopterSim对此还一无所知,它需要与此地图相关的2个文件:指示地图的高度图文件“【地图名】.png”、指示地图大小的文件“【地图名】.txt”,这两个文件需要通过RflySim3D定义的一个命令来获得。<br/></p><p id="34V3NEJ1">打开RflySim3D,按“M”切换到刚刚导入的场景中,先按下键盘左上角的`键,再输入令“RflyScanTerrainHp1p2p3p4p5p6”,回车。</p><p id="34V3NEJ2">其中p1~p6(单位米)分别表示:需要扫描区域的左下角X左下角Y右上角X右上角Y高度H间隔I,其中H(向上为正)要高于地形最大高度、间隔I决定了点的密度,单位均为米,间隔越小,CopterSim获取地形高度的精度就更高。<br/></p><p id="34V3NEJ3">例如:命令格式 “RflyScanTerrainH-10-.1”,表示地形扫描X从-10米到10米,Y从-10米到10米,在10米的高度面向下扫描,采样点间隔0.1m(注意,UE中的坐标单位是:厘米),</p><p id="34V3NEJ4">如果显示“SuccessfullyGenerateterrainfile” 则表示成功了。<br/></p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2F31a98550j00smatp1002ed200i3004cg00hz004b.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34V3NEJ6">在RflySim3D根目录下可以看见下图所示两个文件:把它们拷贝到CopterSim的地图目录:</p><p id="34V3NEJ7">【RflySim安装路径】PX4PSPCopterSimexternalmap</p><p id="34V3NEJ8">这时CopterSim也能识别这个地图并且获得该地图的高度数据了,在CopterSim中切换场景时,它会用UDP广播给UE切换场景的命令。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2F3ee5320aj00smatp1000sd200gi008bg00gi008b.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34V3NEJA">RflySim3D在扫描地图、获取“地图名.png”与“地图名.txt”两个文件时,会将场景中的房屋、桥梁等可以进入内部的物体也作为地形一起扫描,如果需要进入它们,那么需要先将这些东西移除出场景,导入RflySim3D扫描得到“地图名.png”与“地图名.txt”后,再将场景还原导入RflySim3D。这样CopterSim在获取三维场景的高度时就不会认为它们也是地形了。<br/></p><p id="34V3NEJB"><strong>3.最</strong><strong>后效果</strong></p><p id="34V3NEJC">此文件目录下有一个已经完成的例程,地图名为“StartContent”,将StartContent文件夹放入【RflySim安装路径】 PX4PSPRflySim3DRflySim3DContent目录下,再将StarterContent.png与StarterContent.txt放入【RFLYSIM安装路径】 PX4PSPCopterSimexternalmap目录下即可。再打开RflySim3D,按下M+1+6,即可切换到第16号地图StarterContent。</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2F624d9b95j00smatp2000kd200lz00alg00f8007b.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p><p id="34V3NEJE"><strong>更多相关三维场景导入实验如下所示:(需安装飞思仿真平台)</strong></p><p id="34V3NEJF">1. UE5 默认场景导入实验:【RflySim安装路径】 PX4PSPRflySimAPIs3.RflySim3DUE0.ApiExpse0_DevToolsUsage4.UE5StarterContent</p><p id="34V3NEJG">2. Twinmotion 演示场景导入实验:【RflySim安装路径】</p><p id="34V3NEJH">PX4PSPRflySimAPIs3.RflySim3DUE2.AdvExpse3_TwinmotionContent</p><p id="34V3NEJI">3. 基于Cesium的全球大场景构建实验:【RflySim安装路径】</p><p id="34V3NEJJ">PX4PSPRflySimAPIs3.RflySim3DUE2.AdvExpse2_CesiumScene1.ObliModelMap</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1102%2F47eb0b79j00smatp2005id200u000bng00g20068.jpg&thumbnail=660x&quality=80&type=jpg"/><br/></p>
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/153510.html