分享一款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

分享一款Unity3d软件设计开发实例相关推荐

  1. 微课竞赛系统的设计与实现所需工作条件_启升微课丨从软件设计开发着手准备医疗器械软件描述文档...

    启升微课--第四课! 大家好!今天是启升微课的第四课,本微课将跟大家分享的是"从软件设计开发着手准备软件描述文档". 首先,我们要清楚一个问题:有哪些医疗器械需要准备软件描述文档? ...

  2. 软件设计开发思想总结

    起源:这段关于软件设计开发的想法源于两年前和同学刘某某一起逛资源论坛时,无心一句玩笑话而来,昨晚突然回忆起这个片段决定把这个细节通过文字记录下来,希望能够在今后软件开发的道路上陪伴我一起成长. 详细描 ...

  3. 自己拿项目,软件设计开发,释放你的力量

    自己拿项目,软件设计开发,释放你的力量,链接地址 http://un.zhubajie.com/r/?u=4674706&l=http://u.zhubajie.com/user/buyer ...

  4. SharePoint无代码工作流设计开发实例——交通费报销流程(一)

    开发环境: (1)SharePoint Designer 2010 (2)SharePoint Online(Office 365) 关于Office 365和SharePoint Online的相关 ...

  5. 计算机二级虎贲跟未来教育那个好,考计算机二级的都看看,分享几款模拟软件...

    计算机二级考试是全国计算机等级考试四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能. 考试内容 1.  选择题20分(包括二级基础公共知识10分.计算机基 ...

  6. 免费配音软件有哪些?分享三款配音软件,配音娱乐两不误

    免费配音软件有哪些?分享三款配音软件,配音娱乐两不误 小时候,很多小伙伴就非常喜欢跟着电视剧的人物说话,他们的腔调.语气.台词--似乎都给我们带来了不少乐趣.长大之后,配音软件层出不穷,无论是用于娱乐 ...

  7. 软件设计开发笔记3:基于QT的Modbus RTU主站

      Modbus是一种常见的工业系统通讯协议.在我们的设计开发工作中经常使用到它.在这一篇中我们将简单实现一个基于QT的Modbus RTU主站上位工具. 1.概述   Modbus RTU主站应用很 ...

  8. 手机尺子测量器app有哪些?分享两款计数软件给你

    不知道有没有小伙伴在装修房间的时候遇到跟我一样的烦恼:找不到能够设计出自己喜欢的装修风格.因为一直找不到喜欢的装修风格,所以一直拖到现在,后来我家里人想还不如自己动手设计风格算了. 前期的家具选购.木 ...

  9. SharePoint无代码工作流设计开发实例——交通费报销流程(三)

    4.SharePoint Designer无代码工作流的设计 开发工具为SharePoint Designer 2010 新建"列表工作流",绑定"交通费报销单" ...

最新文章

  1. 网络推广期间遇到页面无效收录情况网络推广专员如何应对?
  2. C++类模板(二)用类模板实现可变长数组
  3. Eclipse CDT Hello World工程makefile分析
  4. 使用JSON模式验证来映射稀疏JSON
  5. [Leetcode][第98 450 700 701题][JAVA][二叉搜索树的合法性、增、删、查][递归][深度遍历]
  6. matlab struct 结构体
  7. 网络安全法对计算机人员的影响,网络安全法的基本原则-网络安全论文-计算机论文.docx...
  8. 代码生成的思考:MyMeta提供数据库架构,反射、Emit提供构建的提供动态创建的环境...
  9. .net 2.0安装包打不开_腾讯悄悄发布 Linux QQ,版本 2.0 Beta
  10. web项目使用的前后端技术
  11. 皮尔斯晶振电路的参数计算
  12. 获取二维数组的长度和宽度
  13. 饿了么被上海市市场监督局予以警告处分
  14. NEMA数据经纬度转换
  15. java dataoutputstream_Java DataOutputStream类
  16. C语言中求指定位数的水仙花数
  17. html5+canvas+javascript开发打灰机小游戏
  18. 记一次微信公众号后台数据抓取
  19. Bootstrap 思维导图
  20. OpenGL入门教程-OpenGL介绍

热门文章

  1. 4*4矩阵键盘c语言,单片机 4*4 矩阵键盘应用
  2. MAZDA CX-50没现车怎么办?赶紧去VR看车啊!
  3. zencart paypal支付方式 先创建订单在支付插件(paypal漏单解决方案)
  4. 基于jsp+mysql+Spring+mybatis+Springboot的SpringBoot停车场停车位管理系统
  5. 【Qt】使用ffmpeg加载视频第一帧作为图标
  6. ArangoDB安装
  7. [AHK]获取同花顺客户端中正在浏览的股票代码
  8. solor中配置IK Analyzer分词
  9. 三相PWM四象限可控整流器,网侧电压与电流同相位
  10. Python 基础 CSV文件的操作