3D虚拟仿真技术在体育馆购票系统开发中的应用研究

2017-01-11 14:14段思婧魏莉谢睿张哲源龚德良
计算技术与自动化 2016年4期
关键词:三维建模虚拟仿真

段思婧 魏莉 谢睿 张哲源 龚德良

摘要:传统体育馆售票方式无法使购票者在购票时实时感知座位的具体视角。本文提出一种解决思路,其基本思想是根据设计图纸提取场馆的拓扑结构和几何信息,并对场馆三维建模,虚拟仿真体育馆内部场景,再使用OpenGL库函数将模型导入系统来实现场景旋转、转换和购票等人机交互操作。为使用户在购票时更好地感受逼真的三维视角效果,运用画法几何中射线和三角形求交算法解决三维仿真交互中座位定位等问题。

关键词:虚拟仿真;OpenGL;三维建模;画法几何

中图分类号:TP391.9文献标识码:A

Abstract:The traditional way of ticketselling can not make buyers perceive the concrete perspective of the seat in real time when buying tickets. In this paper, we propose a solution, the basic idea is according to the design drawings, extracting the topology and geometry information of the stadium, and accomplishing threedimensional modeling of venues, virtually simulating the inner scene of the gym, then using OpenGL graphics library to import external model into the system to achieve scene rotation,conversion, ticketing and other manmachine interaction. In order to allow users to feel vivid 3D perspective better when buying tickets, we use ray and triangle intersection algorithm based on descriptive geometry to solve the problems of threedimensional simulation and interaction in seat positioning.

Key words:virtual simulation; OpenGL; Threedimensional modeling; descriptive geometry

1引言

传统购票方式,人们只能根据不同票的价格来判断看台座位的基本情况,无法感知所购座位的具体视角。其实同一票价的座位,其视角可能有很大的差别,而且不同的球迷有自己特有的喜好。因此,对于体育馆来说,如何根据用户心理需求,设计一个具有高度仿真体验的购票系统,以提高运营效率和服务质量显得尤为重要[1]。通过采用虚拟仿真技术和三维建模技术对体育场馆进行建模,构建3D虚拟仿真体育馆,使购票者购票时就能提前预览每个座位的真实视野范围,身临其境地感受和体验到所选座位的视角,充分调动广大球迷观看球赛和表演的欲望,提高门票的销售率,帮助体育馆运营商高效管理体育赛事。

2体育馆场景模型的构造

我们知道,建立场景模型要对实际场景进行抽象仿真,尽可能地符合真实情况。因此我们利用3Dmax根据设计图纸构造体育场馆的场景模型,再处理模型的光照和纹理映射对场景进行渲染[2]。建模数据来自场地、座位、区域、视角等,空间形态的参数主要有座位的三维坐标、二维场景平面,法向量等,场景中的物体基本上由简单几何体构成,接下来以某地体育场馆为实例进行设计说明。

2.1构建场地

根据体育馆的设计图纸构建模型,按一定的比例(此比例根据实际需求设定,可进行缩放)在场景中设计边线、端线、中线、三分投篮区、限制区、罚球线、罚球区等球场参数,均由平面构成,另设置材质、纹理信息。3Dmax中包含绘图编辑命令和修改命令以及点、线、面图例,通过图形元素来建立模型的场地模块。

2.2构建座位

在该场景中,座位主要分东、西、南、北四个区域,每个区域占三排,每排14个座位均匀排列,座位由小方格表示,共164个。由于实际需要,根据座位离中心点的距离对座位进行分类,每区前两排中间5个位置为视觉享受模式的座位、其余由座位的物理位置分为并排、尽量集中、价格便宜模式,后期用OpenGL的颜色渲染函数标记座位的售出、待售、未售三种不同的状态。

2.3构建区域

本体育场馆划分为四个区域,东西和南北两个区域分别对称,因此购票者在查看座位视角时,系统会根据中心对称原理拣选座位,其中对称位置的视角是一致的。

2.4构建视角

建模的目的主要是为了实现座位三维视角的实时查看,在切换过程中,每个座位会呈现不同的观测视角,该功能主要由OpenGL交互函数实现。在后期建模中要解决座位拣选问题,所以在3Dmax中要初步设计出座位的二维平面视角。如图1是在3Dmax中从场地、座位、区域、视角等方面对体育馆进行仿真后的模型场景图。3三维几何建模

利用3Dmax对虚拟场景建模,将体育场馆的几何信息和拓扑结构数值化,并定义实体模型的数据结构,以便在读取模型文件时组织和封装虚拟场景[3]。建模时应注意合理的拓扑结构能有效建立场景模型,优化空间数据,使用三维数据结构描述场馆时,要符合场馆的空间几何特点,才能准确表达出真实场景的几何形状。

通常在结构体中定义数据模型的点、面、材质、光源、颜色信息,用来保存从3DS文件中读取的数据。本系统的各结构体定义如下[4-5]:

4基于OpenGL的外部场景模型导入与重绘

在3Dmax中对体育场馆完成场景建模后,把文件以3DS格式导出,使用OpenGL函数库中相应函数文件导入系统[6]。

4.1场景模型的导入

为了读取和重绘3DS文件,需定义名为3DSload的类,在导入过程中,通过3DSload类中递归函数的组合,将3DS文件中的数据全部读出并存储在自定义的数据格式中。这三个递归函数如下:

//读取3DS文件

M3DSObject*Load3DSObject(char*filename);

//3DS模型重绘函数

void Draw3DSObject(M3DSObject*object);

//3DS模型归一化函数,将3DS模型归一化,即将模型平移到原点,并缩放到每个坐标均在[-1,1]的立方体中

void Unitize3DSObject(M3DSObject*object);

4.2场景模型的重绘

导入3DS文件后,3D虚拟体育馆模型的所有信息都保存在自定义的数据结构中,通过OpenGL函数调用这些数据,便可重新绘制体育馆三维模型,这样避免了大量绘制体育馆三维实景图像占用资源的问题,为设计和部署带来方便。

1)计算法向量

构造三维模型时法向量非常重要,与光照模型紧密相关,处理不当就会对三维模型的重现造成影响。通过自定义函数CalculateVertexNormals()计算对象的法向量,在函数中遍历对象的所有面和顶点,并通过规范化后将法向量添加到法向量列表中。重绘场景模型时,把列表中的每个数据元素传递给OpenGL函数OutGLAddVertex()来设置顶点的法向量。

2)绘制场景

OpenGL函数从存储了场景数据的数据结构中获取信息,以一定的绘制模式将模型重绘出来[7]。主要步骤包括:1)读入形体的数据结构;2)读入浮点型的颜色三元组;3)3DS模型重绘。

3)实现交互功能

系统要求与场景进行交互,除了对话框和菜单栏之外,大多通过鼠标来实现,OpenGL函数可实现交互功能[8]。将之前生成的3DS文件类导入三维模型,使用模型图的平移函数glTranslatef()和旋转函数glRotatef()实现平移、缩放、旋转等人机交互控制。

当用户在虚拟体育馆视图界面上用鼠标点击某个座位时,如果有函数响应鼠标的操作,则实时计算顶点坐标并生成该座位的三维视角,执行对场景的重绘。

5画法几何思想解决模型的座位定位

为了使用户购票时能够体验座位的三维可视化视角,本文运用画法几何中射线和三角形求交算法解决三维仿真交互中座位定位等问题。具体是:(1)3Dmax模型的读取;(2)3Dmax模型的OpenGL操作,比如旋转、缩放等;(3)3Dmax模型的定位。本文中主要涉及座位定位,射线和三角形求交算法应用情况如下:

图2是OpenGL中的坐标拣选[9],即从屏幕二维坐标到三维坐标的变换,利用近景点和远景点定位一条射线,如图3所示,近景点P和远景点P′构成了OPP′射线,利用这条射线和OpenGL模型中的每一个三角形相交确定三角形属于哪个座位,则屏幕上选择的就是这个座位。设空间平面方程为:

N·P+D=0(1)

这里是向量的点乘,N是平面的法向量,P是平面上的任意一点,D表示原点到平面的距离。

O是原点,x和y就是在这个坐标系下的坐标, 且对空间中的任意点,在此坐标系中的坐标都是唯一的。

取三角形的某个顶点作为仿射坐标系的原点,由此延伸出的两条边作为坐标轴的单位向量,则对于平面内的任意一点,通过其坐标数值就可判断点和三角形之间的关系。假设坐标是u、v,则在第一象限的点满足u>0、v>0,点在三角形内部则满足u+v≤1,由这个原理就可判定点是否在三角形内部。

具体计算方式:

三角形的三个顶点分别是P1,P2,P3,同平面的点P0,两个边向量就是 U=P2-P1,V=P3-P1,此坐标系内的坐标为:

P′0=P0-P1(6)

解这个方程就可以获得到仿射坐标系下的坐标:

P′0=u×U+v×V(7)

根据u,v判断交点是不是在三角形内。

6验证分析

为验证建模方法和定位算法的有效性,分别从两个参考指标进行测试评估:

1)虚拟仿真体育馆模型与实际场景在形态特征上是否相似。在实验中通过与实地的对比勘查可得:构建的虚拟体育馆与实际图纸及空间相似度为83%,误差来源于对纹理材质细节的粗糙处理。

2)运用定位算法形成的三维视角与实际观测的视角范围是否有较大的相关性。将在虚拟体育馆的四个区域随机获取的座位仿真视角数据,与实测数据利用统计分析软件SPSS进行相关性分析,结构表明两者间的相关系数较高,且南北方向座位比东西方向高,分别为0.90和0.85,说明模拟仿真具有一定精度。

7小结

本文将OpenGL图形函数库与三维几何建模相结合,设计3D虚拟仿真体育馆购票系统,提出一种能实现可视化实时预览场馆座位三维视角的方法,与现有的体育馆售票系统对接,使用户足不出户就能身临其境地选择座位,进一步激发人们去现场观看比赛的热情和欲望。但是,如何更有效地部署和优化体育场馆三维空间模型及座位定位算法,提高虚拟仿真精确度,是一个值得深入思考的方向。

参考文献

[1]张涛,姚俊锋,杨献勇.基于Web 3D的体育馆展示并售票系统的研究[J].计算机仿真.2006,23(9):236.

[2]徐岚.三维虚拟场景建模技术[J].湖北第二师范学院学报.2009,26(2):74-75.

[3]禇维翠.基于OpenGL的室内体育馆虚拟系统的研究与实现[D].合肥:安徽大学,2011:6-7.

[4]安葳鹏,蔡治邦.煤矿虚拟巷道三维几何建模的研究[J].微计算机信息,2010,26(8-1):224-225.

[5]侯湘.虚拟现实技术中的三维建模方法研究[D].重庆:重庆大学,2006:18-19.

[6]吴斌,段海波,薛凤武译.OpenGL编程权威指南[M].北京:中国电力出版社,2001.

[7]江早.OpenGL VC/VB图形编程[M].北京:科学出版社,2001.

[8]周长发.计算机图形学几何工具算法详解[M].北京:电子工业出版社.2005.

[9]蔡士杰,吴春镕,孙正兴等译.计算机图形学[M].北京:电子工业出版社.2002.

猜你喜欢
三维建模虚拟仿真
农用风力发电机叶片设计
中职畜禽解剖课程虚拟仿真实训教学资源的建设与应用
浅析虚拟仿真技术在海军院校教学中的应用
数控仿真系统三维建模技术研究
基于GIS的网络三维系统的构建及应用
虚实结合和科教融合的计算机实验教学体系
数字积分法插补仿真实验教学系统开发
网络虚拟仿真实验中心建设研究与实践
三维建模技术在家畜器官建模中的应用
基于CATIA的多功能运动轮椅三维数字化建模及其优化设计