三维校园电子地图设计Arky

以下是三维电子地图引擎设计的介绍,主要把整个三维电子地图引擎的创建过程描述了一遍,并没有对程序代码进行详述;它着重于三维地图的设计方法的介绍,对于开发制作三维地图系统还是很有参考价值的。

(Ps:若要转载请注明出处)

三维校园电子地图

Arky

关键词:三维建模;三维校园;地图引擎;DirectX

3DCampusElectronicMap

Abstract:3DcampuselectronicmapisanavigationalsystemdevelopedbaseonManagedDirectXSDK.Withsimulativemodeling,thesystemcollectivelyincludesvariousgeographicalinformationofthecampussuchascoordinatesandlandscape,thenitcanbuildthefull3Dmodelsaccordingthecoordinatesofthecampus'building,itanofferanintelligentplatformtoplanningtheconstructionofthecampus,helpingthevisitor,andpropagandizingtheschool,itgiveslotsofconveniencetoallthesystemusers.Thesystemalsobyusingreallyimagesofthecampustoconstructthe3Dsimulationenvironmentinordertopresentthe3Dvirtualnavigationsystemintheelectronicmap.

Keywords:3DModeling;3DCampus;MapEngine;DirectX

1引言

近几年来,随着计算机技术,特别是计算机图形学、三维仿真技术以及虚拟现实技术的飞速发展,传统的二维电子地图被注入了新的活力,三维电子地图正成为电子地图发展的一个重要方向。传统的二维电子地图只能以图形和符号的方式来描述一张地图,这种方式往往不能直观清晰的表示出目标所处位置的地理环境;采用三维电子地图的方式,通过建立场景的仿真模型,把现实场景进行虚拟再现,则具有真实、互动、身临其境的特点,这也是虚拟现实技术独特的魅力所在。

2三维地图引擎设计

构建三维校园电子地图引擎需要按照以下几个关键步骤来进行开发:

(3)三维模型建立:建立校园场景中的建筑模型、场景小品模型、天空环境模型和地形模型等;

(4)三维引擎构建:使用程序来实现模型导入、三维场景的漫游、导航功能。

系统总体设计框架如图1所示。

图1系统总体设计框架

三维校园电子地图漫游导航引擎作为该系统的核心部分,它主要实现的目标是:实现将3dsMax建立的模型导入引擎,把所有模型组合成一个校园整体,导入音乐,加载天空、地形以及环境小品等对象,构建成一个集音乐与用户交互的三维校园互动系统。

校园建筑的模型比例数据、贴图数据、布局位置全部是通过实地取材得来,由于学校东区面积比较大,建筑复杂多样,所以使用数码相机在校园各景点获取数码照片作为参照数据是最方便快捷的方式。在校区内采集数码照片近2000张,将校园所有景观囊括在内,力争最大限度的呈现真实校园。建筑轮廓基本是从高层楼顶拍摄,然后通过照片的对比和组合得到建筑的实际外形和轮廓数据,通过互联网的Google卫星图获取建筑之间的比例数据以及平面布局数据,通过照片的剪切获取景物的纹理贴图数据。

校园二维平面图的制作在三维校园电子地图的开发过程中是相当重要的一个环节,二维平面图制作的好坏直接影响到三维立体图的效果。因为三维地图的建模是完全基于二维平面图而建立的,如果二维平面图的比例不正确,就不可能制作出精确的三维地图。制作二维平面图图的另外一个作用就是生成导航引擎程序的小地图导航地图功能。由此可见二维平面图的制作对整个三维地图的准确性具有重要的意义。

(a)Google卫星图(b)CAD平面图

图2Google卫星图与CAD平面图

底图是通过Google卫星照片拼接而成,首先在电脑上安装Google_Earth_BZXV.exe。在搜索框中输入桂林电子科技大学的位置:25°17'5.05"N,110°19'53.89"E以获取校园的卫星照片。为了得到清晰的底图,获取图片是采取分次获取,然后使用Photoshop合并成一张完整的桂电东区校园底图。

获得了校园的平面底图GuetMap.jpg以后,将它导入进AutoCAD作为外部参照的地图,用CAD的直线和曲线绘制工具按照底图建筑的轮廓绘制出外形,然后使用延伸和裁减工具将模型修整完整。

为了使得建筑轮廓与其他物体区分开,在绘制建筑轮廓是单独创建一个building图层,用于绘制建筑,设定线条颜色为黄色。

绘制运动场平面框图的方法跟绘制建筑平面图一样,新建一个ground图层,以卫星照片为底图绘制出所有运动场的边框,然后再绘制出场地边界线。

根据卫星图的路径显示,在绘制校园道路是创建了一个以背景线条色为蓝色的path图层,专门用于绘制道路。将所有的元素绘制完成后,就得到一张CAD导出平面图guet.dwg文件。该文件的最终效果如图3所示:

图3校园平面图

有了这张平面地图,就能够使用3dsMax导入*.dwg文件作为底图参照,然后绘制出等比例的校园3D模型。

校园虚拟环境建模具体实施起来,可以按以下几个方面来进行:

(1)建筑模型

由于在学校的大多数建筑物,一般都是由正方体的形状构成,因此使用多边形来建立模型是最适合的。在建立模型之前首先观察建筑的形态,再建立出大概的轮廓,最后再使用多边形的修改命令来完善模型。在建筑物上会有许多凸起部分,本系统不能全部使用模型来实现它,使用贴图效果来充当凸起部分的面是三维程序惯用的手法,这样也能是一个平面看起来更加富有立体感。下面就以学校的图书馆为例子,介绍三维模型的建立过程。

1首先打开3dsMax导入先前已经完成的CAD底图guet.dwg,用于约束模型的比例和作为建立模型的参照,然后在顶视图的窗口建立出建筑物的大概轮廓。

2有了底图作为参照,按照图书馆数码相片的取材估算出图书馆的每层楼的大概高度,然后建立出组成图书馆的多边形组合。图书馆的主体主要是一个长方体,然后通过3Dmax的多边形修改器的cut命令在长方体上切割出分割线,再选择面工具的挤压(Extrude)命令来制作出突起面,如图4所示。

图4由长方体挤压出的图书馆主体

3在图书馆的主体中,有突出面也有塌陷的面,这里我使用到布尔运算的修改面板来制作出模型的塌陷面。

如果想用布尔运算在一扇墙上开窗户或门,最好把所有的窗户或门连接成一个对象,然后只用一次布尔运算来实现开窗户或门的操作;在对样条曲线进行布尔运算前,要确保所有的样条都被结合到了一起,否则它们是不会进行布尔运算的。

图书馆的背面有两处塌陷的位置,这时首先建立两个与凹陷位置大小相同的两个几何体,再把几何体放到需要减去的位置,最后使用相减的命令将这片区域给去除掉。

4制作完图书馆的主体以后,再使用正方形建模工具在主体的旁边建立出突起部分,再使用多边行修改工具挤压出楼梯、柱子、花坛等辅助模型,最后完成的图书馆三维模型如图5所示。

图5图书馆的3D模型

5在完成模型的建立以后,要检查模型是否有多余的面和不可见的面,这些面必须得全部删除,以确保模型的面达到最少,以减少程序导入三维模型的负荷。

(2)地形模型

桂林电子科技大学整个东区校园的地形样式比较丰富,由山坡、河流、以及高低不同的坡面,这个地形的模型制作加大了难度。在校园东区地形的创作中,我把整个学校当作一个区域,按照CAD地图建立一个大平面,然后在这个大平面上切割出64个小面,再通过多边形修改器来分区修改这些小面,得出高低不同的坡面以及河流等模型。图6是在全局底图的基础切割好的64个小平面。

图6地形模型1

在地形中,比较矮小的坡度(如:路边沿等)则不进行3D建模,而是使用贴图取而代之,这样将会最大程度上减小程序的开销。最终完成的地形图如图7所示。

图7地形模型2

(3)环境小品模型

建立模型之后的工作就是给模型赋予材质和贴图。在3dsMax中材质就是模型的灵魂,一个好的材质会使模型有生气。3dsMax中最简单的是Bitmap贴图。除此之外还有多种贴图形式。在三维校园图的制作中,位图是较为常用的一种二维贴图。在三维场景制作中大部分模型的表面贴图都需要与现实中的实体相吻合,而这一点通过其它程序贴图是很难实现的,也许通过一些程序贴图可以模拟出一些纹理,但这也与真实的纹理有一定差距。所以选择以数码相机拍摄手段获取的位图作为校园立体图对象的贴图。

制作过程如下:

从实地拍摄的数码相片中选取合适角度的照片在Photoshop中进行拉伸扭曲得到所需贴图单元,保存为JPG格式。在3dsMax中,调用经过处理过的图片进行贴图,初步贴上的图在建筑物上是很不规则的,所以需要运用修改工具中的UVW贴图坐标。贴上实地采集的相片使得所得图像与实际建筑物很接近如图。

对于材质中的二维贴图,物体就必须具有贴图坐标。这个坐标就是确定二维的贴图以何种方式映射在物体上。它不同于场景中的XYZ坐标系,而是使用的UV或UVW坐标系。

因为学校模型大多数建筑都是呈矩形,因此使用box与planar两种方式比较常用,比如说体育场馆的墙面就是用box方式来贴图的,在使用box与planar通常是用在重复的无缝贴图上面,比如说三教的窗口,就是使用一层楼的窗口重复贴图而完成整栋楼的窗口的。而Cylindrical贴图方式则常用在圆柱面的贴图上,比如说水池的贴图就是使用Cylindrical贴图方式来实现的。如图8所示。

(a)box贴图方式(b)Cylindrical贴图方式

图8模型贴图

UnwrapUVW贴图

使用UnwrapUVW贴图方式一般用于较复杂的模型贴图,因为它能够自定义UVW坐标的位置,所以它能够把几图片都集成在一张贴图上面,这样能省下不少资源。在校园建模过程中,东园餐厅就是以这样的建模方式建立的。

虚拟校园中有许多复杂结构模型。如果模型数据库中多边形数目超过系统的计算能力,在虚拟场景中漫游时,帧处理将无法及时完成,场景变换的平滑性会受到破坏。

为了提高运行系统的实时性,必须对模型进行简化处理,以减少数据库的多边形开销。我从下面几个方面对模型进行了简化:

(1)使用多细节层次(LevelsofDetail,LOD)表达复杂结构模型。虚拟校园中有许多复杂模型必须用LOD来表达,以使运行系统中的多边形数控制在预算之内,有利于提高运行系统的实时性。

(2)用纹理代替多边形表达结构细节。纹理映射能够在不增加多边形数目的前提下提高场景表达的详实程度。

(3)移除多边形的背面。虚拟校园环境中组成绝大多数模型的多边形都是单面可见,3dsMax能自动剔除多边形的背面而仅显示其前面。

通过一系列优化处理,得到建筑3D模型如图9所示。

图93dsMax模型

文中实现的三维漫游导航引擎主要具备以下功能:

(1)能对整个校园模型进行全局俯视以及任意视角的观察,以便让用户更加全面的了解校园每一处的地理信息;

(2)能够让用户自定义选择所需要加载的三维模型,以便适应显卡配置较低的用户,通过读写XML文件来保存用户的配置信息;

(3)能够设置不同的分辨率,以满足用户的需求;

(4)采用弗洛伊德(Floyd)算法计算校园每两个景点的最短路径,实现校园景点之间的智能导航功能;

(5)在导航模式中,实现小地图标示位置的功能;

(6)实现用户控制摄影机的移动功能,并且能控制移动的速度;

(7)实现三维漫游场景的音乐导入,使三维校园程序效果更加丰富;

(8)实现光照效果,使得场景模型更加富有层次感。

层级在三维电子地图执行的各个阶段中,包含了这个阶段所特有的元素和逻辑的对象。本引擎一共使用了四个层级:菜单层级、Loading层级、设置层级和主程序层级。每个层级往往有自己特定的更新和渲染函数。

在整个程序中,主要创建了以下几个层级:

图10层级的继承关系

在三维校园地图引擎中,需要导入由3dsMax创建的模型,而这些模型都是在创建以后导出为*.X文件格式,这种格式的文件是能够支持DirectX的模型文件,它记录了模型的所有顶点位置、贴图的纹理路径以及模型在世界坐标系中的坐标等信息。引擎中包含的MeshLoader类用于加载使用3dsMax导出的*.X模型文件,它将X文件中的模型数据抽取出来,为3D程序渲染物体提供所需要的资源。

为了丰富三维校园程序,在程序运行时,会加入背景音乐,以更好的渲染出环境的气氛;而加载音乐是通过Music.cs文件中的Music类来实现。该类包含了音乐的加载、播放、停止和暂停的控制函数,用于实现背景音乐的播放功能。

智能导航在三维电子地图程序中是难点部分,它将自动的寻找出用户所需到达的目的地的最短路径,并且进行跟踪导航。为了实现最短路径的搜索功能,本引擎采取基于结点的最短路径算法——弗洛伊德(Floyd)算法。

Floyd算法核心代码如下所示:

三维校园电子地图的场景中,除了有地形和建筑物还需要有周围天空环境的烘托,这样才能使得三维环境更加的真实。本系统采用的是天空盒技术制作场景的环境,天空盒是一个长方体,它是由六个面构成一个天空盒,贴上云彩和山水图片,就可以实现一个矩形面的天空。天空盒是由六张无逢贴图实现的一个盒子模型体,本系统使用的环境贴图如图11所示,1:顶面、2:左侧面、3:背面、4:右侧面、5:正面、6:底面。

图11天空盒贴图

在3dsMax里面,给天空盒模型贴图时要注意的是贴图贴在长方体的内,所以建立模型时要将长方体的六个面进行一次flip操作,使得图片贴在盒子的内部。建立好天空盒模型以后,同样是导出X文件,在程序中,创建天空盒必须得使用SkyObj类来实例化天空模型对象,因为天空环境跟普通模型不一样,它永远是跟随着摄像机移动的,但是它不会随着摄像机的旋转而转动。所以在场景中,摄影机永远无法移动到天空尽头,这样就能创建出一个无边界的广阔环境。

在渲染天空的时候,不能像普通模型那样去渲染天空,因为场景中添加了光照,直接渲染的话,会出现明显的边界线,对比图如图12所示。因此,在渲染天空模型的时候必须关闭光照,待渲染完毕以后,再将灯光开启。渲染时,还需要开启贴图的延展模式,否则在天空盒的接缝处同样会出现边沿线。天空盒的渲染代码如下:

(a)有光照渲染(b)无光照渲染

图12有无光照渲染天空的对比

3效果

三维校园电子地图采用桂林电子科技大学东区校园为实例,建立了三维校园电子地图智能导航程序。该程序实现了桂林电子科技大学的(东区)的三维校园电子地图的功能。除此之外,在可视化的基础上实现了一些虚拟现实的交互操作和空间分析,如:校园景物的查看、校园路径导航、三维动态漫游校园等。本程序建立的实体模型比例精确、仿真度高、三维效果逼真场景、场景内容丰富;给需要了解桂林电子科技大学校园用户提供了极大的便利。系统运行效果如图13所示。

图13系统运行效果

4结论

本文从从整个三维校园电子地图项目的设计总体流程,程序结构框架,主要功能模块的设计等几个方面详细介绍了整个项目的开发流程以及核心功能的实现。

在三维校园电子地图程序中,引入DirectX3D技术,使得程序执行效率大副提升,操作更加简单,三维场景内容更加丰富,整体效果更加完美。最终实现了仿真度极高、兼备智能导航和虚拟漫游功能的三维校园电子地图系统。

Postscript:

看到这么多博友的留言我很开心。很多博友提出把安装文件放上来,其实我很想把程序的安装包上传上来,只是无奈程序的安装文件过大,无法上传到这里,我正在想别的方式上传。

还有就是源代码的问题,由于这个程序是给学校做的,所以三维地图程序的源码也不好公开,请谅解;

现在ManagedDirectX已经被XNA替代,如果还有朋友想去学ManagedDirectX可以去看看BeginningC#GameProgramming和ManagedDirectX_SamsKickStart-GraphicsAndGameProgramming这两本书,还有学习微软官方的游戏开发教程,有了这些知识开发这个程序不成问题。

开发DirectX的3D程序我还是比较推荐用C++开发的,Introductionto3DGameProgrammingwithDirectX9.0是一本入门级的好书,非常简单易学,网上都可以下载到电子版。

THE END
1.如何用图片和没有尺寸的户型图快速画出cad平面图的方法展示CAD(计算机辅助设计)软件在景观平面图的制作中可以达到高度精确和详细的程度。通过CAD软件,可以实现以下功能: 1. 地形细节:CAD可以精确绘制地形和地貌特征,包括地势高低、水体和植被分布等。 2. 建筑和结构:CAD可以绘制建筑物、桥梁、围墙等结构物,并确保其准确实物比例。 https://zxyys.cn/jyan/202412-350.html
2.简易平面图制作软件以下是一些简易平面图制作软件的推荐: 1. Microsoft PowerPoint:虽然它是一个演示文稿制作软件,但可以轻松地创建简单的平面图。它提供了各种绘图工具和形状库,可以创建和编辑各种几何形状、符号和箭头。 2. Lucidchart:这是一个在线绘图工具,专为制作平面图和流程图而设计。它提供了许多预定义的模板和形状库,可以帮助http://www.360doc.com/content/24/0222/19/75092861_1114857603.shtml
3.简易平面图制作教程 完成以上步骤,一张精美的小清新平面图就制作完成啦!快来试试吧!0 0 发表评论 发表 作者最近动态 张小慧明净如水的眸 2024-11-22 2025跨年朋友圈文案:这些句子太赞了!全文 +3 张小慧明净如水的眸 2024-11-22 畅言普通话APP:普通话测试必备工具全文 +2 张小慧明净如水的眸 2024-11-22 https://mbd.baidu.com/newspage/data/dtlandingsuper?nid=dt_3659657572422916088
4.挑战CAD画2D/3D计算器图纸?你敢接招嘛!使用浩辰CAD旋转平面视图为三维视图。使用三维拉伸命令【EXT】将按键向上拉伸距离2,并将旋转对象向上拉伸距离95。 画3D计算器模型 使用三维旋转命令【3R】将竖直对象旋转90°后,使用对齐命令【AL】将按钮放置到拉伸对象上。接着将矩形对齐到拉伸对象屏幕的位置,并使用拉伸命令EXT,拉伸距离为2。 https://zhuanlan.zhihu.com/p/12846052517
5.96.施工图家装地坪图绘制哔哩哔哩01.设计师成长之路初级设计师岗位(课程介绍) 04:39 50.量房-现场的各种管道、设备该怎么量 34:41 60.提案-一版方案就想骗客户签单?如何深化第二版方案 25:35 100.施工图-家装图纸中的节点图绘制 16:24 96.施工图-家装地坪图绘制 15:17 分享你的职场年终秘诀,夸克AI邀请你瓜分万元奖金 https://www.bilibili.com/video/BV1q7kjY9Ecf/
6.资料fsx简易机场制作教程.pdfFSX 简易机场制作教程 前言前言 前言前言 我的家乡机场开始进行了扩建,但是默认机场依然是那个单跑道的地景,怎么办? 我的家乡机场迁址了(你们都知道,最近 的机场很快就要使用新的了),但是现在还没有新的机场地景,怎 么办? 我 的机场地景 不完全,不好用,怎么办? 国外制作的插件机场太卡了,但是我又想飞这个机场https://max.book118.com/html/2021/0817/8111030020003135.shtm
7.房地产户型图渲染彩色平面图设计制作室内平面图填色PS制作代画做(咨询特价)只是为了方便拍单设置的单价,并不代表总价。具体价格根据图纸和复杂简易程度来报价哦 我们的平面图由10年建筑设计公司经验的专业设计师绘制,本着对客户对自己负责的工作态度,全程一对一服务,保障售后,除图纸变更以外的微调整都可以免费给予修改的哦。满意为止,图纸保留源文件365天。 http://witcp.com/shop/c83/t151c619db19.html
8.AutoCAD制作消防平面图.pdf文档介绍:该【AutoCAD制作消防平面图 】是由【DATA洞察】上传分享,文档一共【6】页,该文档可以免费在线阅读,需要了解更多关于【AutoCAD制作消防平面图 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:https://m.taodocs.com/p-1103518274.html
9.翰文施工平面图绘制系统下载5、简易易用的图层作用,还可以将已绘图好另一半放置适合的图层。 6、可对图层开展中移动、编写、拷贝、黏贴、缩放等实际操作。 7、 文档可存为通用性的格式文件,非常的好用。 8、有着强劲的复印作用,可以适用各种各样尺寸的复印机。 翰文平面图制作软件v17.6.21破解版作用特点: http://www.winwin7.com/soft/4163.html
10.cad平面效果图制作教程资料下载大全本专题为土木在线cad平面效果图制作教程专题,全部内容来自与土木在线文档论文资料库精心选择与cad平面效果图制作教程相关的资料分享,土木在线为国内专业的土木工程垂直站点,聚集了1700万土木工程师在线交流,土木在线伴你成长,更多cad平面效果图制作教程相关资料请访问https://www.co188.com/jh/a10431.html
11.第14课提前规划并制作一个简易花园设计图(课件)全国通用六年级下册3. 制作简易花园设计图的步骤测量花园尺寸在开始设计之前,需要测量花园的尺寸。可以使用直尺和量角器测量花园的长、宽以及各个角度。将测量结果准确记录下来,以便后续制作设计图时能够按照实际尺寸进行绘制。 3. 制作简易花园设计图的步骤绘制花园平面图根据测量结果,使用铅笔在白纸上绘制花园的平面图。首先可以用直尺画https://www.zxxk.com/soft/40907002.html
12.项目前期工作范文12篇(全文)2、应备资料: 1)请审报告 2)总平面图(2份) 3)所有单体平、立、剖分层图(2套)4)放大样图 5)土地证原件(复印件一份)6)电子光盘 7)现势性地形图3份 8)日照分析成果 9)上轮扩出批复 10)各部门扩出批复 11)缴费凭证 12)网上公示及现场公示牌制作 https://www.99xueshu.com/w/ikey4ru8q6ez.html
13.3月19日苏州园区人才市场机械模具电子通讯IT现场招聘会2、懂PLC编程,能根据需求制作自动控制线路。 3、有一定机械基础,能根据需求设计简单机械结构。 BROTHER机修 1名 1、2年以上Broter机器异常原因分析及简易维修。 2、能独立简单调试。 新产品导入工程师 1名 1、本科学历,机械/机械电子/、模具、材料相关专业。 2、有产品设计相关经验佳。 3http://www.xszrcw.com/news/news-show-5921.htm
14.初中地理综合实践作业设计方案七年级(一)制作简易地球仪某同学用乒乓球、铁丝、胶布等材料制作了一个简易地球仪。读图回答下面小题。 1.图中乒乓球顶部,铁丝穿过的点,叫做() A.地心B.地轴C.北极D.直射点 2.在图中乒乓球上所画的平行圆圈中,最长的是() A.赤道B.回归线C.极圈D.本初子午线 2020-07-20更新|671次组卷|11卷引用:湖南省岳阳市2020年中考地理试题https://zujuan.xkw.com/thematiclist/9pt2931ct8231.html
15.湖南省农业技术规程政策文件为了规范超级晚稻有序(点)抛秧栽培技术,制定本规程。 1 产地条件 1.1产地环境 应符合NY5116的规定。 1.2土壤条件 土壤肥沃,排灌方便。 2品种选择 通过品种审定适应湖南省作双季稻栽培的超级晚稻品种。 3 育秧 3.1种子用量 每亩大田种子用量杂交稻1.25~1.5公斤,常规稻2.0~2.5公斤。 https://www.dongkou.gov.cn/dkxnyj/zcwj/201701/08dee662a68945ee99be7ecd15fa5ab9.shtml
16.新颖的活动策划集合15篇给予每组队伍为期一周的时间,对自己的科技设想着手实施,进行科技的制作与平面图的简易制作,并形成书面提案,以备初赛大屏幕展示。 9、4月29日初赛: 各组参赛团队根据前期实地测量及考察成果,针对各自的方案,先把相应的word文档以附加图片的方式向评委呈递并加以说明,再以ppt、cad等形式向评委和观众进行现场解说,经评https://www.yuwenmi.com/fanwen/huodongcehua/4036632.html
17.大学活动策划书(15篇)给予每组队伍为期一周的时间,对自己的科技设想着手实施,进行科技的制作与平面图的简易制作,并形成书面提案,以备初赛大屏幕展示。 9、4月29日初赛: 各组参赛团队根据前期实地测量及考察成果,针对各自的方案,先把相应的word文档以附加图片的方式向评委呈递并加以说明,再以ppt、cad等形式向评委和观众进行现场解说,经评https://www.yjbys.com/cehuashu/2657759.html