第34卷 第1期 VoL34 No.1 计算机工程 2008年1月 January 2008 Computer Engineering ・开发研究与设计技术・ 文章编号:1oo -3428(2oo8)o1-_027 一J3 文献标识码:A 中图分类号。TP391 虚拟三维场景与二维电子地图交互系统研究 孙轶红,赵增慧 (北京石油化工学院机械工程学院,北京102617) 摘要:提出并建立了一个虚拟三维场景与二维电子地图交互系统。介绍了系统的组成和各部分实现的功能。对虚拟场景的数据组织、场 景数据读入、观察者位置的确定及交互功能的实现等给出解决方案,给出了实现的代码及画面。该系统利用二维电子地图简洁性、宏观性 的特点,通过与虚拟三维场景间的互响应减少观察者在虚拟三维场景中漫游所产生的迷失感,在实际应用中取得了较好的效果。 关健诃:虚拟场景;交互;二维电子地图 Research on Dynamic Response System Between 3D Virtual Scene and 2D Digital Map SUN Yi-hong,ZHAO Zeng-hui (College ofMechanical Engineering,Beijing Institute ofPetrochemical Technology,Beijing 102617) [Abstract]This paper presents an idea to construct a virtual scene system,which can respond with 2D digital map system one another,introduces the details of system’S lame and ffunctions.It puts forward the method used to structure datum of vitualr scene,the way to read in datum,how to get the accurate position of observer and how to realize the response function,and gives the program code and pictures.This dynamic response system resolves the limitation of 2D digital map and 3D vitualr scene.It also combines the advantage of 2D digital map with the advantage of 3D vitualr scene,which overcomes the abstraction of wandering astray of 3D virtual scene. [Key words]vitrual scene;dynamic response;2D digital map 虚拟三维场景为用户提供了仿佛置身于现实世界的临境 感,同时用户可通过交互工具与三维场景进行交互操作。它 可以把抽象、复杂的事物以直观的、用户熟悉的方式表达出 来,极大地满足了人们认识客观抽象事物的需求。但是在虚 拟三维场景漫游时,观察者常常会迷失方向,不知道自己当 前所在的位置。二维电子地图是近年来人们认识地理环境、 获取并分析应用地理信息的主要手段之一,并在社会各个领 域发挥着越来越大的作用。它具有宏观性、整体性和简洁性 的特点。但二维地图从本质上来说是一个基于抽象符号的系 适当比例显示的功能;地图操作模块可分为地图缩放子模块、 地图图层开关子模块、测距子模块。查询模块主要完成对数 字地图所包含的地理信息进行查询的工作;标注模块主要实 现对行进方向、行进路线、目的地的标注。 统,因此不能给人身临其境的真实感受。为了弥补虚拟三维 场景和二维电子地图各自存在的缺陷,笔者可以利用二维电 子地图宏观性、整体性和简洁性的特点,使观察者通过二维 电子地图了解自己当前所在的位置及周围的大致情况,再利 用虚拟三维场景具有真实感的特点,通过三维虚拟场景增加 对周围环境三维的、直观的认识,从而实现二者的优势互补。 要实现虚拟三维场景与二维电子地图间的优势互补,就要实 图1 交互系统组成示意图 虚拟三维场景模块主要实现与二维电子地图所对应的三 现二者间的互响应,通过观察者在二维电子地图中的位置来 确定三维虚拟场景中所显示的内容,当观察者在三维场景中 漫游时,其位置也在二维电子地图中显示出来,以使观察者 了解自己所在的位置,减少迷失感。 维场景的显示和漫游。对该场景进行漫游的操作主要通过操 作鼠标来完成的。按下鼠标左键并沿 轴方向移动鼠标,则 当前的漫游状态是水平移动视点位置;按下鼠标左键并沿y 轴方向移动鼠标,则当前的漫游状态是前后移动视点位置; 按下鼠标右键并沿顺时针方向移动鼠标,则当前的漫游状态 是视点沿顺时针方向旋转;按下鼠标右键并沿逆时针方向移 动鼠标,则当前的漫游状态是视点沿逆时针方向旋转。 作者简介:孙轶红(1972一),女,博士,主研方向:计算机图形学, 虚拟现实;赵增慧,副教授 1交互系统的设计 在上述思想的指导下,笔者建立了一个交互系统。该系 统由3个主要模块构成,分别为二维电子地图模块、虚拟三 维场景模块和互响应模块。其组成如图1所示。 二维电子地图模块包括地图显示模块、地图操作模块、 地图查询模块、标注模块。其中地图显示模块主要是完成需 要显示的数字地图文件的选择及选定的数字地图在界面上按 牧稿日期:2007—01—08 E-mail:sunyihong@bipt.edu.cn 维普资讯 http://www.cqvip.com
互响应模块主要实现虚拟三维场景的调用及二维数字地 图与虚拟三维场景的互响应操作。二者间进行互响应的具体 方式主要有: 息及与之相关的纹理信息和颜色信息等。当要根据视点选择 地物表达的LOD模型时,可在地物节点下产生LOD节点。 场景数据文件是按各矩形区域在场景中的位置,按从上 (1)根据观察者当前在二维电子地图中的位置,在虚拟三 维场景中以一定的视角范围显示观察者周围的地形地物; (2)当在二维地图中选定某一需要查询的物体时,在三维 到下,从左到右的顺序,分别储存每个区域的数据。在将场 景数据载入时,在场景的根节点下分别生成各个矩形区域的 子节点。在各个区域的子节点下,按读入地物类型的不同分 场景中要显示与其相对应的场景; (3)在虚拟三维场景中漫游时,随着观察点位置的改变, 在二维地图中显示当前观察者的位置。互响应方式见图2。 图2系统互响应方式示意图 2交互系统实现的关键技术 2.1虚拟三维场景的数据组织 对应于虚拟GIS三维场景的组织结构,在对场景中的数 据进行组织时,笔者采用树型结构来存放与场景结构相关的 数据。该树型结构由根节点、子区域节点、组节点、内容节 点等具有不同功能的节点组成。其中根节点是场景结构的进 入点,对整个场景的各种操作都始于该类型节点。在一个场 景数据结构中根节点是唯一的。分区域节点是根节点的继承 节点,表示组成整个场景的各个分区域的入151。组节点在树 型结构中处于中间位置,它将一些单独的节点或单独的变化 节点组合起来,封装这些节点,共享一些状态,如位置、灯 光效果等。内容节点是场景树型结构的叶子节点,该节点又 可细分为几何图元节点、光源节点、BillBoard节点、位置变 换节点。几何图元节点包含构成场景中实体的类型、数量、 几何数据、特征参数、颜色、纹理及材质等信息。光源节点 包括了描述光源的各种参数信息,位置变换节点包括了位置 信息,用于几何图元和光源位置的变换…。 2.2 虚拟三维场景数据的读入及场景树的建立 由于显示的三维场景范围大,则构成该三维场景需要大 量的网格。如果对网格不加简化就全部送到显示设备中,任 何计算机也难以承受。在现实世界中观察者的视野范围有限, 显示的视野范围只是占整个三维场景的--d,部分,因此可采 用场景分块调度技术,把大面积的场景分成许多小的场景块, 然后根据视点的运动对这些场景块进行调度,保证视点永远 位于调入场景的。上面提到的虚拟三维场景的组织形式, 也满足了对场景分块调试的要求。具体实现时,将该视点所 在区域及与其相邻区域的数据调入内存,再可根据视点所在 位置来确定需显示的区域,并进行显示l2 J。 整个三维场景有一个根节点,在该节点下为构成该三维 场景的多个矩形区域的节点。该节点包含该区域的位置信息 及包围盒数据。在每个矩形区域节点下,由构成该矩形区域 的各地物节点及地物子节点构成。地物节点包含该地物的类 型、包围盒数据等。当地物由多个部分组成时,由地物子节 点表示。地物子节点可包含表示地物几何特征的几何节点信 别生成各个地物节点及其下的地物子节点。而地物的几何节 点及纹理、颜色节点则分别建立与之对应的线性结构 J。 2.3三维场景中观察者位置的确定 当需要根据观察者所在二维地图中的位置显示相应的三 维场景时,可根据在二维电子地图上,鼠标的当前位置得到 视点在二维空间(即 轴和y轴方向)的坐标值,该坐标值与 三维场景中地形的 坐标和y坐标相对应。根据得到的二维 坐标值求解视点在z轴方向上的坐标。然后再利用OpenGL 提供的观察变换函数来完成三维场景的显示。当需要实现视 点在三维场景的位置在二维电子地图的表达时,只需用当前 视点的三维坐标中的 y坐标即可。因此,实现互响应功能 的关键问题就集中在视点z坐标的求解上。 要确定视点z坐标值,就要先根据当前视点的 y坐标 确定视点在构成地形网格的哪一个面片上。再利用所查询到 的面片3个顶点的坐标值用插值的方法来求得视点的z坐标 值。在本虚拟三维场景中地形的生成是用三角形中点位移法 分形生成的,构成地形的是三角形面片。因此,对地形面片 的查找就需要设计相应的算法来求解。 为了简化计算,在进行确定视点所在三角形面片的计算 时,可将这个三维空间计算问题转化为二维空间进行计算, 即通过计算视点在水平面上的投影点与构成地形的三角形面 片在水平面上的投影三角形的位置关系来确定。图3说明了 地形生成的基本方法。其中,图3(a)表示经一次分形后形成 4个三角形面片及其在水平面上的投影;图3(b)表示继续对 其中的一个面片进行分形后生成的结果;图3(c)表示三角形 面片及其在水平面上的投影。 (a)4个三角形面片及其在水平面上的投影 (b)Ctg ̄N生成的结果 (c)面片及其在水平面上的投影 图3 三角形边界细分法生成分形布朗曲面及其在水平面上的投影 结合图3,该算法说明如下:图中的△0l2是构成地形框 架的根三角形,&A1B,&ABC,&OAC,&CB2是&012进行 _27l一 维普资讯 http://www.cqvip.com 一次分形后所形成的4个三角形面片。再进行下一次分形迭 代计算时则是分别对这4个三角形面片进行迭代计算。向量 A—B, ,C~A是AABC在水平方向的投影按逆时针方向 所取的向量。该算法的思路是先从存储地形数据的根节点开 始遍历,判断视点的投影点在构成地形框架的哪个根三角形 中,并得到视点所在三角形的数据指针;然后通过该数据指 针判断视点的投影点相对于3个向量A~B,B’c’,C’ ’的位 置,若在向量A~B的右侧则视点投影在△A1B中,若在向量 B—C的右侧则视点投影在ACB2中,若在向量C~A的右侧则 视点投影在AOAC中,若均不在这3个向量的右侧,则视点 投影在AABC中。从而得到视点所在三角形的数据指针;再 按上述方式进行循环计算,直至找到当前地形显示采用的层 次模型所在层节点为止。在找到视点所在三角形面片后,即 可得到这个三角形面片3个顶点的坐标值,再通过插值计算 即可得到视点的高度值了。 2.4实现交互响应的通信机制 二维电子地图与虚拟三维场景在实现时是两个相互 的部分,为了完成二维电子地图与虚拟三维场景间的互响应, 就必须把包含二维电子地图的操作界面作为二者通信与连接 的纽带,通过建立操作界面与二维电子地图的通信和操作界 面与虚拟三维场景的通信,来实现二维电子地图与虚拟三维 场景间的数据交互。通过建立操作界面与二维电子地图间的 通信实现用户对二维电子地图的操作及查询,并向界面发出 查询当前点对应的三维场景的要求。操作界面在接收到这一 要求后,采用相应的通信机制与虚拟三维场景联系,以实现 该要求;三维场景可通过相应的通信机制与操作界面联系, 发出显示观察者在二维电子地图中位置的请求。在接到信息 后,操作界面再与二维电子地图通信,实现该请求 。 为了实现操作界面与二维电子地图的通信,笔者采用了 OLE自动化技术和回调技术来实现;为了实现操作界面与虚 拟三维场景的通信,笔者采用了多线程技术与消息传递的方 式来实现。具体的通信方式如图4所示。 一 系 进程间的 盛 维 OLE自动化技术 统 消息机制 辑 电 操 媒 … 子 回调技术 作 ∞ 地 面 界 毫 0 图 螳 图4实现互响应的通信机倒 3交互系统的实现 3.1二维地图生成与操作的实现 为了完成对二维电子地图的管理及操作,需要使用现有 的通用地理信息系统平台来实现。笔者在对多个常用的地理 信息系统进行比较后采用Maplnfo作为实现二维电子地图的 工具。由于Maplnfo和Vc++都对OLE自动化技术提供了良 好的支持,因此在实现时将Maplnfo作为自动化服务器, Vc++开发的系统操作界面作为自动化控制器,来实现二维电 子地图与系统操作界面的集成,从而也实现了二维电子地图 与操作界面的通信 l。笔者基于OLE自动化技术实现了二维 电子地图在操作界面的集成。 3.2虚拟三维场景的生成 应用前述生成虚拟三维场景的关键技术,生成了一个虚 拟三维场景,如图5所示。 272一 图5在虚拟三堆嚣景中漫游的茸西 3.3互响应的实现 采用本文所提到的交互过程中的关键技术,实现了本系 统所设计的交互功能。在本交互系统中,对于虚拟三维场景 的调用是通过操作界面上的按钮来启动的。其实现的代码为: { SHELLEXECUTEINFO ShExeclnfo={0); ShExeclnfo.cbSize:sizeof(SHELLEXECUTEINF0); ShExeclnfo.fMask:SEEMASK—N0CL0SEPR0CESS: ShExeclnfo.hwnd:NULL; ShExeclnfo.1pVerb:NULL; ShExeclnfo.1pFile:”scene.exe’’: ShExeclnfo.1pParameters:… : ShExeclnfo lpDirectory ”e:\\gisscene\\’’: ShExeclnfo.nShow:SW—SHOW; ShExeclnfo hlnstApp:NULL; ShellExecuteEx(&ShExeclnfo); } 当实现虚拟三维场景对二维电子地图的响应时,先通过 界面上的“视点选择”按钮,启动在二维电子地图中点选当 前视点位置的操作,再通过应用程序间发送消息的方式,将 当前视点坐标发送至虚拟三维场景应用程序,然后在该应用 程序中定义相应的函数来响应这一操作。其主要实现代码为: { CString str=”虚拟GIS场景”;,,寻找定义的消息接收窗口 CWnd pWnd=CWnd::FindWindow(NULL,str); if(pWnd)//如果找到窗口 { pWnd一>PostMessage(WM—COMM,0,pointx);//发消息 pWnd一>PostMessage(WM—COMM,1,pointy); }} OnReceiveMsg(WPARAM wParam,LPARAM lParam) { if(wParam==0) mview.x=lParam; if(wParam==1) mview.y=lParam; mview.z=terrian一>GetCurrentHeight(mview.x,mvi ew.y); Invalidate(); ) 当实现在二维电子地图上显示用户当前在虚拟三维场景 中位置的功能时,该事件由在虚拟场景中鼠标抬起事件触发, 此时应用程序向主程序发送当前视点位置的消息,该消息触 发主程序中对应的响应函数,该函数调用Maplnfo的相关绘 制语句来实现这一功能。 (下转第275页) 维普资讯 http://www.cqvip.com 者,根据“种子”文件,两者分别向对方告知自己已经有的 块,然后交换自己没有的数据。此时不需要Trackel‘服务器参 自动消失。这些特性为实现BT文件分布系统带来了困难, 某一终端设备只能同有限的几个临近的对等实体建立连接, 且连接不稳定,会随着网络拓扑结构随时发生变化,造成数 据吞吐率低。因此,移动Ad.Hoc网络更适合实现临时会议 系统、分布式命令与控制系统等P2P应用。 与,客户端只是每隔一段时间向Tracker服务器报告自己的 下载进度,同时获取其他下载者的状态信息。如果客户端已 经没有可连接的对端,可提前向Tracker服务器发出请求, 获得其他对端的信息。下载全过程如图5所示。 基于IMS的BT文件分布系统具有网络结构简单的特点, 不需引入新的网络节点,只需对现有Internet中BT文件分布 系统的节点进行改造即可。有利于保护现有投资,从而有利 “种_f”文件 SIP请求 对端列表 建意连接 应答 于业务推广。另一方面,移动通信网与互联网有机而高效地 连接起来,使移动终端用户可访问互联网上的海量信息,并 且PC终端的高传输能力极大地提高了BT文件分布系统的整 体吞吐率。 数据传输 4结束语 随着移动设备的发展和人们对移动过程中资源共享的需 、 ̄Tracke啦 信间隔到时 报告状态 求,在移动环境中实现P2P应用,特别是实现BT文件共享 系统的要求日益突出。本文根据BT协议的特点和3G网络的 实际情况,提出了一种基于IMS的BT文件分布系统架构, 应答 )F载完毕 、 关闭连接 并与其他类似体系结构进行了对比分析。将手机终端引入BT 文件分布系统,使用SIP承载BT协议属性,并将Tracker服 务器的功能作为一种SIP应用部署在SIP应用服务器中,将 报告状态 图5下羲全过程 它的物理位置从互联网迁移到了IMS域,实现了手机与PC 的BT下载。同时,移动环境中的BT文件分布系统同样面临 着版权问题和安全问题,需要进一步研究。另外,移动网络 的带宽还不能跟互联网相比,需要对BT协议中的流量控制 算法进一步优化,以便合理利用网络资源。 客户端下载完成后,关闭所有对端的连接,然后向 Tracker服务器报告状态,表明已经完成下载。此时客户端开 始作为“种子”,可以为其他对端提供下载。 不同体系结构的比较分析: 扩展eDonkey体系引入了检索服务器、缓存节点和 参考文献 …程久军,李玉宏,程时端,等.移动P2P体系结构与关键技术的 研究【J1北京邮电大学学报,2006,29(4):86—89. [21 Hossfeld Tutschku K.Andersen F U.Mapping of File—sharing onto Mobile Environments:Feasibility and Performance of eDonkey Crawler等网络节点,使系统具有较高的整体性能。但是,这 些节点增加了实现BT文件分布系统的复杂度。特别是缓存 节点,其对检索率高的资源进行缓存,需要消耗大量存储空 间,Crawler对硬件设备也具有较高要求,从而需要对现有网 络设备进行大规模改造和投资。 with GPRS[Cj//Proc.of Wireless Communications and Networking Conference.Wurzburg,Germany:Is.n.】,2005,4:2453—2458. 移动代理服务器方式存在着相同的问题。移动代理的设 置主要有两种方式:一组移动节点对应一个移动代理和每个 移动节点对应一个移动代理。前一种方式效率较高,但移动 代理可能成为网络性能的瓶颈。后一种方式会引入过多的移 动代理节点。 f3]宋蜻移动环境中的P2P应用….广东通讯技术,2006,26(7): 26—29 f4]Cheng Rong,Jin Ha1.Shi Ke An Anycast—based P2P Roudng Protocol for Mobile Ad Hoc Networks[Z1.(2005—09—2 1).http:// ieeexp lore.ieee org/servlet/opac‘?punumber=10649. 移动Ad—Hoc网络是由自治移动终端组成的动态分布式 网络,节点之间可以在任何时问、任何地点且不需要基站支 持情况下进行移动协同计算。移动Ad Hoc网络的节点可以 自由移动,这使得网络的拓扑结构会随时发生变化,且这种 变化是不确定和不可预知的。另外,移动Ad—Hoc网络具有 周文莉,雷振明.BitTorrent文件共享系统的流量模型与文件评估 方法….计算机工程,2006,32(13):15 17. [61 Tang B.Evolving to Wireless and Wiretine Convergence——An Overview of IMS,Wireless and Optical Communication[EB/0L]. (2005—04—23) http://ieeexplore ieee.org/xpl/tocresult.jsp?isnamber= 3 07l 生存时问短的特点,在有特定需要时临时创建,使用结束后 …………………………………………………………………………………………………~ (上接第272页) 4 结束语 本文在分析虚拟三维场景和二维电子地图各自优、缺点 的基础上,提出并建立了一个虚拟三维场景和二维电子地图 间的交互系统,对实现这一系统中所采用的关键技术进行了 介绍,给出了实现的结果。该系统充分发挥了虚拟三维场景 和二维电子地图的优势,消除了虚拟三维场景中漫游的迷失 感,已应用于实际的软件编制中并取得了较好的效果。 机工程与应用,2002,38(7):107—109. [21罗自荣.面向虚拟环境的场景管理关键技术及其实现研究…. 系统仿真学报,2003,15(6):891-897. 【3]张晶.城 地理信息三维可视化研究….系统仿真学报,2003, 15(1 2):1771—1777. [4]刘 光.地理信息系统二次开发教程一喵言篇【M].北京:清华 大学出版社,2003. f5】罗云启.数字化地理信息系统建设与MapInfo高级应用 ].北 京:清华大学出版社.2003. 参考文献 …郝爱民.一种虚拟室内场景调度策略与碰撞处理方法….计算 ~275—
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务