数据生成三维城市管道模型做法
1.概述
1.1应用场景
此文档为用客户提供的管网数据信息来生成在三维城市组件中使用的管道3D模型。
制作顺序为:1.生成管道3D模型。2.管道3D模型优化。3.导入FVS三维城市组件进行位置校对。
1.2注意事项
一组标准的管网数据,应当有四项重要信息:端点A的名称、端点A的经纬度坐标、端点B的名称、端点B的经纬度坐标。
PS:线段由两个端点相连组成,管道同理。
2.做法步骤
PS:以甲乙区为例,此文用甲乙区的数据进行演示制作。
2.1数据信息校对
首先打开甲乙区带有两端名称、经纬度坐标等信息的数据表文件,此处以EXL表为例。
检索表中是否含有我们所需要的四组信息:端点A的名称、端点A的经纬度坐标、端点B的名称、端点B的经纬度坐标。
如图:
2.2坐标信息套入标准代码
标准代码公式:
{"type": "Feature","properties": {"name": "天安门广场" },"geometry": {"type": "Point","coordinates": }},
用EXL的功能完成对甲乙区964组代码的生成。
详细可以查看附件进行学习:甲乙区管网数据.xlsx
2.3代码写入记事本
把在EXL里生成的代码复制到一个新建的记事本里面,并调整格式。
开头为:
{"type":"FeatureCollection","features":[
结尾为:
]}
把生成的那些代码复制到记事本开头和结尾的中间部分。
结尾上方那一行的代码最后面的逗号要删掉,保存文件,至此形成了完整的地图代码组。
PS:格式不能错,并且注意换行。
详细可以查看附件进行学习:甲乙区数据记事本.txt
2.4改文件格式
保存记事本后复制一份记事本副本,把副本的名称和尾缀格式.txt改成.geojson,形成一份geojson文件。
修改后得到:甲乙区数据记事本.geojson
2.5使用mapshaper生成管道线段
打开网站:https://mapshaper.org/
点击Select,并选择刚才得到的那份geojson文件。
网站会生成管道线段。
点击右上角的Export,弹出的窗口内选择Shapefile,然后点击Export。
就能下载得到一份压缩包,里面是生成模型的关键文件,保存到合适的储存位置。
解压缩得到4份不同格式的信息文件。
2.6在Blender中导入线段
在Blender4.0中安装GIS插件:BlenderGis2.2.8
插件:BlenderGIS-228插件.zip
安装好后在blender界面左上角找到安装好的插件GIS,点击并导入尾缀为shp格式的文件。
PS:解压缩的4份文件要保存在一起,不能删减。
选择shp并打开,在弹出的小窗口中,勾选这两个内容:
点击确定后就能生成名称正确、位置正确的管网线段。(生成的线段在会比较小,通过blender快捷键“.”和“7”来找到)
2.7线段生成3D模型
统一大小变化:全选模型(快捷键A),应用旋转和缩放(快捷键ctrl+A)。
调整比例:全选并放大模型至1000倍。(放大的快捷键是S)
把管道实例化模型文件中的一小段模型复制到此blender文件中。
管道实例化模型:管道实例化模型.blend
按A全选所有线段,然后点击那一小段模型,再按CTRL+L,点击复制修改器,同步模型数据。
然后就会生成有3D形态的管道。(这一步如果模型出现炸毛变形的情况,就再Ctrl+A,应用一下缩放和旋转)
隐藏那一小段管道实例化模型。
确认下3D管道模型的分辨率和半径是不是10和0.03m。(此数据为适合三维城市组件的管道粗细数据)
2.8优化3D管道模型
在blender中新拉出来一个窗口,并选择文本编辑器。
打开并选择几何节点实例独立化脚本:几何节点实例独立化.txt
按A全选模型,并点击运行脚本。
至此需要运行等待一段时间。
运行完毕后会得到一组全新的一模一样的3D管道模型,并且不同的是名字尾部有实例化三个字。
这组新模型就是已经经过脚本优化过的模型。
隐藏原来那组管道模型,对新模型进行接下来的操作。
全选A,然后关联物体数据(Ctrl+L)。
检查是否关联了管道个数的对象。
此时,需要批量删除后缀名“实例化”那三个字。
Ctrl+F2,打开批量重命名,查找的是“实例化”,替换空着,因为我们是要删除这三个字。
然后点击确认,名称就变成了我们需要的名称格式。
打开着色器编辑器,给管道上色。
然后去设置基础色和自发光,色值和自发光强度可以参考如下,或自行更改。
至此我们就可以开始导出glb模型文件了。
把glb模型拖入网站https://sandbox.babylonjs.com/进行自检。
主要看Meshs是否小于3000,DrawCalls是否为个位数数量。
2.9导入FVS校对位置
首先打开流畅渲染,提高帧数,保持校对时性能更加流畅。
然后调整模型的大小比例、位置。
调整位置只能纯手动校准,可以参考cad或者地图位置等。
PS:校对位置比较花时间。
至此,一组三维城市的管网模型就做完了。