• 美文
  • 文章
  • 散文
  • 日记
  • 诗歌
  • 小说
  • 故事
  • 句子
  • 作文
  • 签名
  • 祝福语
  • 情书
  • 范文
  • 读后感
  • 文学百科
  • 当前位置: 柠檬阅读网 > 故事 > 正文

    基于OSG的体育场馆三维展示系统|智慧体育场馆系统

    时间:2019-05-07 03:31:54 来源:柠檬阅读网 本文已影响 柠檬阅读网手机站

      摘要:基于OSG技术设计实现了体育场馆的三维展示系统,对体育场馆和比赛场景建模。在该系统中,管理员可以对体育场馆的不同比赛场景进行编辑,对体育器械的摆放区域进行设定,用户可以多种方式和路径漫游体育场馆,如自动和手动漫游场馆,可以自己编辑漫游路线,也可以在权限范围内编辑场景,模拟训练。在本系统中,提出采用知识描述的方法来确定场馆内体育器械允许摆放的位置,并采用四元数来描述器械摆放的角度。该文对OSG技术在本系统中的关键应用,如OSG数学基础、OSG内存管理、OSG的场景显示等问题进行阐述。
      关键词:OSG;三维展示;虚拟现实
      中图分类号:TP391文献标识码:A文章编号:1009-3044(2012)12-2892-04
      The 3D Exhibition System of Gymnasiums and Stadiums Based on Open Scene Garph
      CHANG Lin-lin
      (Phisical Education College of Zhengzhou University, Zhengzhou 450000, China)
      Abstract: The 3D simulation system of gymnasiums and stadiums based on virtual reality is implemented based OSG.In this system, the ad ministrators can edit the different scenes of the sports and set the display area of sports equipment; meanwhile the users can ramble gymnasi ums and stadiums by all kinds of ways and paths, such as automatic and manual rambling. It can edit rambling routes and also can be within the purview of editing scenes, simulation training. It proposed using the method of knowledge description to set the allowance display area of the sports venues, and using the quaternion to describe the perspective of equipment display. This paper introduced the key application of OSG in this system, such as mathematics base of OSG, memory manager of OSG, scene displaying of OSG etc, it proposes the method to describe the knowledge of the location of the sports equipments.
      Key words: Open scene Garph; 3D exhibition; virtual reality
      本系统建立了一个体育场馆的三维展示系统,主要对场馆的比赛场地进行建模,包括田径比赛场地、足球比赛场地和其它表演用途等场景。用户可以通过漫游路径参观体育场馆,并对场景进行编辑。
      1系统设计
      系统分为四个主要的模块:
      器械建模模块:使用3D Max,得到体育场馆中的设施和器械的三维模型,以供其它模块使用。
      场景显示模块:显示体育场馆和器械,根据用户的视角的变化使场景发生不同的变化,例如:观察物体时拉近视角、拉伸视角、旋转视角等。
      场景编辑模块:对体育场馆内的器械进行编辑,例如:增加器械,减少器械,改变器械在体育场馆中的位置、角度。改变后的内容要反映到场景显示模块中。
      漫游路径模块:通过在场景显示模块中使用鼠标生成漫游路径,生成后的漫游路径要反映到场景显示模块中。
      2系统开发框架
      根据各模块的功能以及相互关系,提出下面的系统开发框架。大致分为以下几个部分:
      1)器材建模模块
      在器械建模模块中,使用3D MAX对各种训练器械和体育场馆进行建模,得到物体的基本模型库和环境的基本环境库。
      2)场景编辑模块
      在场景编辑模块中,使用OSG建立三维场景图,并且逐步根据位置的知识描述添加、删除或修改场景图中的器械。
      3)场景现实模块
      在场景显示模块中,用户通过对客户端进行操作,可以方便的放大、缩小或是旋转视角,以便更好的观察体育场馆中的器械和设施。
      4)位置控制知识
      位置控制知识是对场景中器械的位置描述的具体知识。确定器械能够放置的位置和不能够放置的位置,如果放置的位置有错,将会在场景显示模块中发出警告。
      (5)漫游路径模块
      通过漫游路径模块,可以定义任意的漫游路径,并且在场景显示中体现出来。
      用户通过客户端来观察体育场馆场景,还可以根据需要操作,或是设定好漫游路径后,自动的按照漫游路径观察体育场馆的细节。
      
      3关键技术
      3.1 OSG的数学基础3.1.1向量表示
      在OSG中设计了多种维度的向量实现,包括二维向量、三维向量以及四维向量,分别使用Vec2、Vec3和Vec4来表示;同时OSG还为每一类多维向量规定了多种数据类型,并采用于名称之后直接添加类型后缀的方式,定义了一系列可供用户使用的向量类,如表1所示。
      表1 OSG的向量表示
      
      3.1.2四元数
      在OSG中,大量使用四元数(Quaternions),它事实上是一种由3个复数和1个实数组成的复杂的数学概念,是由威廉·卢云·哈密顿(William Rowan Hamilton, 1805-1865)于1843年发现的。
      其优势在于:它可以准确衡量物体绕任意空间轴旋转的状态,与欧拉角度旋转和旋转矩阵的方法相比,四元数的效率较高,操作更灵活。
      OSG中表达四元数的类是Quat类,基本形式为osg::Quat。
      3.2位置的知识描述
      体育场馆可提供多种比赛场地,在体育场馆中器械的摆放位置不是随意的,因此采用一种知识描述的方法来确定器械允许摆放的位置是本系统的核心。
      本系统采用OSG开发,在设计时,应采用容易被OSG识别的数据结构。以下的数据结构可以很好的表示器械允许放置的位置:允许放置的位置区域:osg::Vec2 Point1,osg::Vec2 Point2
      由以上可知Vec2代表的是一个二维向量,用来代表平面的点,两点的连线以及过两点的水平线和垂直线围成的矩形区域就可以代表该器械允许放置的位置。如图2所示。
      另外,器械摆放的角度同样需要一个量来描述,采用四元数可以准确的表达物体当前的角度:物体摆放的角度:osg::Quat degree
      通过degree这个四元数来确定器械摆放的角度,改变degree中的量,也就改变了物体摆放的角度。
      3.3在MFC框架中使用OSG图形库
      MFC是由微软开发的框架,可以使用C ++语言编写客户端程序。它的特点是把Windows API封装成C++类,提供了一个可以直接开发的应用程序框架,从而减少了开发人员在编程时的工作量。其中包含Windows句柄封装类和Windows的内建控件和组件的封装类。
      
      使用面向对象的方法来调用Windows API是MFC的主要优点。因为采用了面向对象的方法,应用开发更加便捷、灵活,同时也能够将客户端程序开发中常用的功能自动化,额外提供了文档框架视图结构和活动文档,更有利于开发人员开发特定要求的客户端。MFC的消息映射机制也避免了使用性能较低的庞大虚函数表。
      OpenSceneGraph(简称OSG)是使用OpenGL技术开发的,基于C++平台的应用程序接口(API),它帮助程序员更加快速、便捷地创建高性能、跨平台的交互式图形程序。它作为中间件为应用软件提供了各种高级渲染特性,以及空间结构组织函数;而更低层次的OpenGL硬件抽象层(HAL)实现了底层硬件显示的驱动,提供了一系列场景管理和图形渲染优化功能的图形库。另外,它使用可移植的ANSI C++以及标准模板库(STL)编写,并使用OpenGL底层渲染API,具备良好的跨平台性。由于OSG是一个开源的平台,用户可以根据实际需要对其进行修改以及基于其上的二次开发。
      通过MFC和OSG的结合,可以实现通过键盘和鼠标方便的对场景中的图形、动画、流程进行控制。
      3.4 OSG的内存管理
      在OSG中,程序只保存一个指针指向根节点,并不保存场景中其它图形节点的指针。根节点“引用”场景图形中其它的节点。当程序不再需要场景图形时,需要释放场景中所有的图形节点指针以避免内存泄露。通常的方法是遍历整个场景,并编写代码依次删除所有的节点指针,但是其工作量很大而且在编写过程中容易出错。
      因此,OSG提供了一种用来释放内存的机制,可以自动的把需要释放的占用内存进行收集,它采用的是内存引用计数器(refer encecounted memory)的方式进行工作。在场景图形中的所有节点均采用引用计数(reference count )的方式,当计数的数值减为0时,那么这个对象将被自动释放。这样在删除场景图形时,我们只需要简单地释放根节点的指向指针,其引发的连锁效果,将会使场景中的所有图形节点指针一一释放。
      OSG内存管理系统包括以下两个部分:
      1)通用的基类,osg::Referenced。OSG所有的节点均继承自osg::Referenced类,它内部包含了一个整型的引用计数器。
      2)智能指针模板类ref_ptr<>。每当程序中一个Referenced对象指针赋予指针模板类ref_ptr<>时,Referenced类中的引用计数器的数值自动加1。因为OSG中的所有的节点类都继承自osg::Referenced类,那么采用ref_ptr<>来建立场景的结构图,当不需要场景图形时,删除根节点,就会释放场景图中所有关联的节点指针。
      内存管理示例:
      #include
      #include
      #include
      ...
      {
      //创建新的osg::Geode对象。将其赋予ref_ptr<>,
      //同时将引用计数器加一。
      osg::ref_ptr geode = new osg::Geode;
      //假设grp是指向一个osg::Group节点的指针。
      // Group也使用ref_ptr<>指向其子节点,
      //因此addChild()将再次把引用计数器加一,此时其值为2。
      grp->addChild( geode.get() );
      }
      // ref_ptr<>变量geode已经超过了其有效范围
      //此时把引用计数器减一,其值为1。
      3.5 OSG中的场景展示
      OSG中场景的组织通过BVH树的结构来实现,在OSG中的每一个节点都是用osg::Node来表示,更复杂的场景结构是通过三个基于它的子类osg::Geode, osg::Group, osg::PositionAttitudeTransform来实现的。
      在OSG中渲染一些图形通过osg::Drawable类的实例来实现。但是osg::Drawable自身并不是节点,不能在场景结构树中直接添加,因此需要使用一个几何节点osg::Geode来代替它。
      在OSG的场景图中不是所有的节点都需要父节点进行绑定,只需要在类osg::Group或其子类的实例下面添加新的节点就可以完成场景图的构建。如图3所示,就是使用osg::Geode以及一个osg::Group创建的场景图。
      
      图3场景图举例
      在应用时,如果足球的位置出现了错误,想要移动足球,就需要使用到osg::PositionAttitudeTransform类。osg::PositionAttitude Transform类不但与节点移动相关,还与节点缩放以及属性相关。
      4结束语
      本文阐述了对体育场馆三维展示的方法,提出了对场馆中器械位置的知识描述,可以方便描述器械允许放置的位置和摆放的角度;给出一个较为完善的系统开发框架,并介绍开发所用到的基础知识和技术,为系统的开发提供了比较完善的理论基础。
      参考文献:
      [1]申闫春,朱幼虹,曹莉,等.基于OSG的三维仿真平台的设计与实现[J].计算机仿真,2007(6).
      [2]温转萍、申闫春.基于OSG的虚拟校园漫游系统的设计与实现[J].计算机技术与发展,2009(1).
      [3]陈勇,马纯永,陈戈.基于VC/OpenGL的虚拟海大校园导航系统[J].计算机辅助设计与图形学学报,2007(2).
      [4]桂琳,殷宏,王金虎.虚拟校园环境的构造及漫游系统的实现[J].计算机与信息技术,2006(7).
      [5]刘雪梅,皇甫中民,陈海涛.基于VRML的虚拟校园浏览设计[J].华北水利水电学院学报,2005(4).

    相关热词搜索: 体育场馆 展示 系统 OSG

    • 文学百科
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章