专利名称:基于纹理映射技术的视景仿真系统矢量数据动态绘制方法
技术领域:
本发明涉及虚拟现实技术应用领域,特别是涉及在视景仿真系统中实现矢量数据的动态更新和实时绘制的方法。
背景技术:
矢量数据在视景仿真系统中的动态绘制,可将代表诸如城市、界域、河流水系、道路、管网等内容的矢量数据动态映射到用于视景显示的三维场景模型中,实现矢量数据与三维场景模型的有机融合、动态绘制和实时显示,可广泛应用于以城市规划、水利规划、战场态势、通讯网络、水油气电管网等为代表的视景仿真系统中。长期以来,矢量数据在视景仿真系统中的应用主要采用I)利用专业建模工具将矢量数据生成三维场景模型和2)利用专业图形处理工具将矢量数据叠加在纹理上再生成三维场景模型等静态绘制方法。场景模型一旦生成将很难改变,无法实现矢量数据的动态加载和动态绘制,无法在视景仿真系统中动态呈现以点、线、面为主要特征的矢量数据。纹理映射技术是一种为了显示表面几何无法表示的细节特征,而逐点改变表面属性的方法,可以在大幅减少场景多边形数的同时丰富场景表现。图形工业标准OpenGL支持多重纹理映射,即在同一个几何体上映射和混合多个纹理图像,最多可支持8个映射通道。这项技术为视景仿真系统中矢量数据的动态绘制提供了技术基础。
发明内容
本发明的目的是解决视景仿真系统中矢量数据的动态绘制问题,满足与实物沙盘、实物控制面板等控制系统的交互和实时动态控制。基于纹理映射技术实时将矢量数据所代表的点、线、面等信息通过正投影的方式叠加在三维场景模型中,可以有效实现代表不同含义的矢量数据在视景仿真系统中与三维场景模型进行有机融合,并能实时对矢量数据的数据源、颜色及状态进行改变和更新,从而实现对各种不同文化特征的矢量数据进行有效控制。本发明的目的可以通过以下技术方案实现。一种基于纹理映射技术的视景仿真系统矢量数据动态绘制方法,其包括以下步骤:步骤一:初始化视景仿真系统场景图和矢量数据库,创建和初始化用于矢量数据投影融合的场景模型节点,创建和初始化矢量数据节点及其矩阵节点,并将数据节点作为矩阵节点的子节点,完成场景树构建。其中,矢量数据以常见的*.Shp格式为代表。步骤二:创建并设置矢量数据矩阵节点的更新回调,动态改变矢量数据的加载、释放、数据节点属性(如位置、状态、颜色、材质、光照等)的获取和设置。更新回调主要保证矢量数据按需动态加载、节点属性动态更新等。步骤三:创建并链接与实物控制系统(如实物沙盘、专用控制面板或控制系统等)的串口数据通讯,实时接收控制数据,并通过步骤二创建的更新回调来控制矢量数据的动态绘制。步骤四:创建并设置覆盖节点,将步骤一创建的数据矩阵节点作为覆盖节点的覆盖场景图,设置覆盖节点的最低投影面高程,同时将步骤一创建的场景模型节点作为覆盖节点的子节点。步骤五:将覆盖节点作为子节点加入到场景树中,包含矢量数据在内的所有场景进行实时渲染绘制。需要注意的是,在本发明中,上述步骤一至五并非是严格按时间和/或先后顺序进行的,其中的不同步骤可以同时进行或者适当地调换顺序。本发明的优点在于通过将矢量数据以场景对象的方式动态加载到场景中,并使用多重纹理映射技术将矢量数据实时叠加在场景模型上,实现矢量数据在场景模型上的融合显示,并通过串口与实物控制系统进行数据通讯,进而控制视景仿真系统动态改变显示的矢量数据源、显示状态(如显示、隐藏、释放等)和显示属性(如颜色、材质、纹理、光照等)。相比于I)利用专业建模工具将矢量数据生成三维场景模型和2)利用专业图形处理工具将矢量数据叠加在纹理上再生成三维场景模型等静态绘制方法,该方法大幅度减少了场景多边形绘制数量和场景模型生成时间,解决了长期以来无法动态改变矢量数据的问题,提升了系统的实时性、可移植性和可扩展性。
图1为根据本发明的一个实施方式的视景仿真系统矢量数据动态绘制的应用场景图;图2为根据本发明的一个实施方式的视景仿真系统矢量数据动态绘制的流程图。图3为本发明的一个实施方式的视景仿真系统矢量数据动态绘制的各个节点间的关系图。
具体实施例方式下面结合附图对本发明的具体实施方式
作进一步详细的描述。本发明的一个实施方式的应用场景如图1所示。用户操作以实物沙盘、实物控制台等为代表的实物控制系统300,通过串口通讯向视景仿真系统200发送矢量数据显示或更新指令,视景仿真系统200收到相应指令后,利用每帧循环执行的矢量数据矩阵节点更新回调机制,实时、动态控制由江河湖泊、城市、线路、管网、道路、行政区域等多种表征不同内容的数据组成的矢量数据库100对相应源数据进行读取和属性更改,然后利用多重纹理映射技术自动的将更新后的的矢量数据叠加在三维场景中进行融合显示。图2和图3为本发明的一个实施方式的应用流程图和节点关系图,主要的工作包括:1、初始化场景图S100,初始化矢量数据列表SllO场景图是一个以逻辑组织和空间表述图形化场景为目标进行三维虚拟场景组织和管理的数据结构,是一个有向无环图,它采用一种自顶而下的、分层的树状数据结构来组织空间数据集,以提升渲染的效率。场景树是场景图最常用的表示方式,是图形或树状结构中节点的集合。场景树结构的顶部是一个根节点,从根节点向下延伸,各个组节点中均包含了几何信息和渲染状态信息。根节点和各个组节点都可以拥有零个或多个子成员。场景图的设置主要包括场景树的根节点、模型节点、矢量融合模型节点、矢量节点、覆盖节点、其它节点等节点的创建及其节点状态、所属关系等属性设置。系统中需要创建的节点及其描述如下表所示。创建的主要节点类型及其描述表
权利要求
1.一种基于纹理映射技术的视景仿真系统矢量数据动态绘制方法,其特征在于,所述方法包括以下步骤: 步骤一:初始化视景仿真系统场景图和矢量数据库,创建和初始化用于矢量数据投影融合的场景模型节点,创建和初始化矢量数据节点及其矩阵节点,并将数据节点作为矩阵节点的子节点完成场景树构建, 步骤二:创建并设置矢量数据矩阵节点的更新回调,动态改变矢量数据的加载、释放、数据节点属性的获取和设置, 步骤三:创建并链接与实物控制系统的串口数据通讯,实时接收控制数据,并通过步骤二创建的更新回调来控制矢量数据的动态绘制, 步骤四:创建并设置覆盖节点,将步骤一创建的数据矩阵节点作为覆盖节点的覆盖场景图,设置覆盖节点的最低投影面高程,同时将步骤一创建的场景模型节点作为覆盖节点的子节点, 步骤五:对包含矢量数据在内的所有场景进行实时渲染绘制。
2.根据权利要求1所述的方法,其特征在于, 失量数据的更新回调每帧都执行,根据接收到的控制指令实时对矢量数据的显示进行动态更新和控制。
3.根据权利要求2所述的方法,其特征在于, 更新回调的控制逻辑流程如下: 接收并解析控制指令,若 控制指令无效,直接返回,不执行遍历操作; 若控制指令有效,遍历场景树,获取矢量数据节点的当前信息; 实时更改和设置矢量数据节点的显示属性; 更新成功,返回。
4.根据权利要求1所述的方法,其特征在于, 覆盖节点的设置主要包括如下几个步骤: 创建覆盖节点; 设置覆盖节点的覆盖方式; 设置覆盖节点的持续更新; 将矢量数据节点设置为覆盖节点的覆盖图; 设置覆盖节点的投影高程; 将矢量融合模型节点以子节点的形式加入到覆盖节点中,并将覆盖节点加入场景树中。
5.根据权利要求4所述的方法,其特征在于, 所述覆盖节点的覆盖方式被设置为基于视图的正投影、基于对象的正投影或基于视图的透视投影。
6.根据权利要求5所述的方法,其特征在于, 所述投影高程的设置值小于矢量融合模型节点的最低点。
7.根据权利要求1所述的方法,其特征在于, 所述数据节点属性包括位置、状态、颜色、材质、光照中的一种或几种。
全文摘要
本发明涉及一种基于纹理映射技术的视景仿真系统矢量数据动态绘制方法,其包括以下步骤步骤一初始化视景仿真系统场景图和矢量数据库,完成场景树构建;步骤二创建并设置矢量数据矩阵节点的更新回调;步骤三创建并链接与实物控制系统的串口数据通讯,实时接收控制数据,并通过步骤二创建的更新回调来控制矢量数据的动态绘制;步骤四创建并设置覆盖节点,将步骤一创建的数据矩阵节点作为覆盖节点的覆盖场景图,设置覆盖节点的最低投影面高程,同时将步骤一创建的场景模型节点作为覆盖节点的子节点;步骤五对包含矢量数据在内的所有场景进行实时渲染绘制。
文档编号G06T13/20GK103218840SQ20121053650
公开日2013年7月24日 申请日期2012年12月13日 优先权日2012年12月13日
发明者杨方廷, 刘玉明, 宿春慧, 韩哲, 管文艳, 曹伟伟 申请人:航天科工仿真技术有限责任公司