分享一款Unity3d软件设计开发实例
分享一款Unity3d软件设计开发实例
1 概述
软件制作过程中感觉有些像在做游戏,本软件为个人兴趣,还在测试制作阶段,仅用于学习交流。通过导入实际测量点云数据和抽样钻孔数据信息,采用DTM三角网三维建模技术和像素沙盒三维建模技术相结合,实现了地质体积自动建模计算,模型内部任意位置层次结构信息查看与修改,可作为地形地貌查看工具,山体地质结构分析、物体内部层次结构分析工具,道路、厂址、场地布置初步设计分析工具。
1.1运行
运行在PC及其兼容机上,使用Windows位操作系统,免安装运行,解压后直接双击“tsf_v1.exe”图标,确认图形运行参数后,就可以进入软件主界面,进行需要的软件操作。
1.2 主要功能特点
目前主要开发了两个功能:
一、导入原始测量点云数据自动进行三维模型建模。主要特点:1)可创建DTM模型,建模精度取决于测量数据点云,用于精确体积计算;2)可创建像素沙盒模型,建模精度为1m,前期实现简单的修改编辑功能,添加、删除方块,后期扩展开发可实现更加复杂操作,提供更多模拟功能;3)提供必要的材质、渲染处理,像素地质贴图可来源于现场实际图像;4)以第一人称视角进行地形浏览,可以更加沉浸于场景之中,了解地形地貌特征。5)导入勘察阶段抽样钻孔数据,生成地质层次结构,可实现对任意位置层次结构剖面查看,前期开发主要分为5种地质层次结构:耕植土层、强风化岩层、长石斑岩层、花岗岩石层、闪长斑岩层。
二、土方开挖施工层、施工段划分功能,主要特点可查看划分的指定区段总土石方量,各地质结构构成估算比例。前期主要估算耕植土、强风化岩、规格料比例。
1.3后期规划
以后该软件暂考虑两个方向发展:1)附加更多功能,如主要施工机械需求量计算及模拟,施工道路设计、自动最短路径优化,导入工程机械、车辆模型,进行施工模拟,道路交通模拟,堆场、生活区、办公区等场平布置模拟优化,4D进度计划模拟优化等;2)提高局部像素模型精度,达到cm级甚至mm级,满足建筑工程施工精度要求,拓宽至更多领域应用。
2 软件结构
主要包括六个模块:UI操作菜单模块,数据输入模块,数据处理模块,显示输出模块,环境模拟模块,浏览操作模块。
1)UI操作菜单包含:主菜单窗口、项目文件编辑窗口、项目操作窗口等。
2)数据输入模块包含:测量数据点云读入、抽样钻孔数据读入、外部(OBJ格式)模型读入等功能;
3)数据处理模块包含:DTM建模、布尔差运算、体积计算、钻孔数据插值运算、像素模型建模与编辑等功能;
4)显示输出模块包含:综合信息显示、运算进度显示、数据本地存储(像素模型本地存储尚未完善)等功能;
5)环境模拟模块包含:水域环境模拟、陆地环境模拟、天候变化模拟等功能;
6)浏览操作模块包含:第一人称视角显示与操作、重力/飞行模拟、碰撞检测等功能;
3 软件操作说明
3.1 软件主菜单
软件主界面见图1,主界面主要包括两个功能:1)点击“继续”或“项目文件”按钮进入项目文件管理界面;2)点击简介可显示本软件相关介绍,见图2。
图1 软件主界面
图2 软件简介
3.2 项目文件管理
在软件主界面,点击“项目文件”或“继续”按钮进入项目文件管理界面,见图3。在软件界面左侧文本输入框输入名称,然后点击“新建项目”按钮,可在右侧项目列表新建项目,鼠标移动到项目列表相应项目文件上可进行项目文件操作,包括打开进入项目、删除指定项目。
图3 项目文件管理界面
3.3 项目编辑
在项目文件管理界面选择相应项目文件,点击“打开”按钮,读取指定项目数据,进入该项目界面,见图4。项目界面左上角为综合信息显示窗口,显示必要的数据与操作状态。左侧为折叠菜单面板。
3.3.1 导入数据面板
本软件附示例文件以供参考,包括测量点云数据、钻孔数据、设计面文件,试验运行请选择“project01.csv”,“project02.csv”数据量较大,若电脑配置较低可能会卡顿死机。
折叠菜单面板第一级为导入数据面板,该面板主要进行场景选择与测量数据导入操作,新建项目初始化场景为水域环境见图4,选择陆地选项效果见图5。电脑配置较低建议选择陆地环境,水域环境更适合高配置电脑。
图4 项目界面
图5 陆地环境
导入地表数据,可选取两种模式:1)选择“导入点云”,是指选择原始地形测量数据文件,数据文件格式是后缀为*.csv的电子表格,电子表格数据格式见图6;2)选择“导入模型”,是指选择导入其它软件生成的三维立体图形,文件格式为OBJ文件。
图6 测量数据格式
抽样钻孔数据文件是用于创建像素模型时,生成层次结构模型。钻孔数据文件格式是后缀名为*.csv的电子表格格式,数据内容格式见图7,第1列为钻孔点点号,第2~4列为钻孔点坐标,第5列为钻孔点孔口高程取整,第6列之后为相应钻孔深度地质类型,地质类型代号见图8。
图7 钻孔数据格式
图8 地质类型代号
选择地表数据文件、地质钻孔数据文件完成后,需要进行设计开挖面设置。开挖面设置包括两种形式:1)导入模型,仅支持obj格式三维模型,对于复杂开挖面,应使用其它软件,例CAD、3dsmax、犀牛等软件进行设计开挖面建模,导出为obj格式模型文件,在建立转换模型过程中,注意设置基准点为本软件综合信息显示窗口的基准点坐标,才能导入至准确位置;2)对于设计开挖面为平面的项目,选择“输入高程(m)”选项,输入相应的设计开挖面高程。水平面高程设置用于陆地或水域平面高程设置。导入数据面板设置完成状态见图9。
图9 导入数据面板设置
3.3.2 三维浏览操作
本软件使用第一人称沉浸式地形浏览,更加具有代入感,地形浏览效果见图10、图11。按下鼠标右键,移动鼠标进行镜头旋转与俯视仰视操作;滑动鼠标滚轮进行镜头缩放;键盘“W”、“S”、“A”、“D”进行前、后、左、右操作,同时按下“左Shift”键进行加速;按“左Ctrl”键开启/关闭重力模式;在开启重力模式下按Space键进行跳跃操作,关闭重力模式下,按Space键提升飞行高度。建模水平面高程设置可更改水面/地面高程,效果见图12。
图10 重力地形浏览
图11 飞行俯视
图12 修改水平面标高效果
3.3.3 建模工具面板
“导入数据”面板设置完成后进入“建模工具”面板,单击“DTM”按钮,使用测量数据文件进行三维地形建模,建模过程见图13,建模完成后效果见图14。
图13 DTM三维地形建模
图14 DTM地形模型效果
生成像素模型。在DTM三维地形模型创建并检视确认后,按建模工具面板“像素模型”按钮,转换DTM地形模型为带地质结构的像素模型,创建过程及效果见图15、图16。
图15 像素模型建模过程
图16 像素模型效果
三维模型布尔差运算。初步完成剖切算法、剖切后三维体积计算。例:使用地形测量数据生成三维地形模型见图17中白色三维地形模型,导入设计开挖面模型见图17中棕色模型。剖切效果见图17,剖切过程见图18。布尔运算代码有待优化,运算时间较长,导入的设计面必须要大于剖切模型剖切面,且设计面法线方向须向上。
具体操作步骤为:1)在导入数据面板设计开挖面选项勾选“导入设计面(obj)”;2)单击“打开”按钮,打开文件浏览目录,类型选择“(obj)”,导入设计面模型;3)在浏览窗口确认设计面是否正确导入,鼠标选择设计面模型,在属性面板可以对设计面位置、缩放进行调整,旋转请勿调整,调整后计算过程中不会计算旋转角度;4)点击“布尔差”按钮,模型进行剖切运算。
图17 模型剖切
图18 剖切过程
三维体积计算。选择布尔差运算后的模型或者待计算的像素三维模型,然后单击“选择域体积”,就可以完成体积计算,计算结果在建模工具面板中显示,见图19、图20。
图19 DTM模型体积计算
图20 像素模型选择域体积
3.3.4 属性面板
模型浏览窗口中一些模型是允许选择的,以便进行属性查看、修改的,包括导入的设计面模型(obj),生成的像素模型。当选择单个对象时,属性面板可以查看、修改选择的对象信息,包括位置坐标信息,旋转角度信息(旋转角度相对于基点0,0,0),缩放信息。在操作过程中,一般请勿修改对象属性,修改后易引发后续操作、运算错误。
3.3.5 编辑面板
编辑面板提供像素模型编辑修改功能,包括隐藏选择对象、取消隐藏、删除选择对象、取消选择、增加像素块、删除像素块命令。像素模型修改效果见图21。
图21 像素模型编辑功能
4 应用实例
4.1 应用一
采用示例文件夹中示例文件,进行原始地貌开挖至设计面工程量计算。
步骤1:运行本程序,在项目管理界面新建一项目工程,名称“项目1”,并进入项目;
步骤2:展开“导入数据”面板,场景选择“陆地”,地表数据文件选择示例文件夹中“project01.csv”,地质钻孔数据选择示例文件夹中“zk_data.csv”,设计开挖面选择示例文件中“project01.obj”,建模水平面输入“18”m;
步骤3:展开“建模工具”面板,先点击“DTM”建模,然后单击“布尔差”,等待运算结束,选中新生成的模型,再单击“选择域体积”按钮,计算结果见图25,原始地貌开挖至设计面DTM模型体积为77.4万m3;
图25 DTM模型体积
步骤4:单击建模工具面板“像素模型”按钮,进行像素沙盒模型建模,建模结束后,框选所有像素块,再点击“选择域体积”,运算结果见图26,原始地貌开挖至设计面像素模型总体积为76.0万m3,修正系数i=DTM模型体积÷像素模型总体积=77.4/76=1.018,耕植土、强风化岩、岩石像素体积分别乘以修正系数i,得到最终结果分别为4.07万m3,12.43万m3,60.86万m3。
图26 像素模型体积
本软件也可以拓展用于两期土方计算,首先需要两期测量数据点云具有相同的边界,然后分别计算两期测量数据至水平面0m的体积,最后两期体积相减得到两期土方工程量。
在计算过程中也可以对像素模型进行编辑修改,删除超边界或不需要计算得像素块,然后计算体积。
4.2 应用二
指定施工层段土石方量计算。
以应用一中生成的像素模型为例,施工层划分为20米一层(更改施工层高划分,可在生成像素模型前,修改像素层高参数),施工段亦是20米方格划分,选择需要查询的施工段,边选择边隐藏对象,见图27,待完成查询区域选择工作,单击“全部取消隐藏”按钮,再单击“选择域体积”按键,完成指定施工层段土石方量计算,结果见图28,第一层第一区域土石方量为0.53*1.018(修正系数i)=0.54万m3,其中耕植土、强风化岩、岩石分别估算构成百分比为24.1%,31.7%,44.2%。
图27 隐藏指定层段模型
图28 指定层段体积查询
软件下载地址:https://pan.baidu.com/s/1ATQF3iMOYZrzSauEmvm5jQ
提取码:413h
解压码:1991