一种虚拟现实应用程序跨平台方法的研究

2016-05-03 02:46王灿运刘逢时
智能计算机与应用 2016年2期
关键词:程序开发跨平台部件

王灿运 刘逢时

摘 要: 为了解决虚拟现实应用程序GUI(图形用户界面)跨平台问题,该文提供了一种多线程整合方法,实现了将OpenGL、Vega及OpenGL Performer渲染的三维虚拟场景嵌入到跨平台图形用户界面软件FLTK中,为其他虚拟现实程序应用FLTK跨平台渲染提供参考。基于已有图形工作站硬件结构,该文给出了三维虚拟场景立体显示的工作原理及设计流程。同时,应用几个典型事例证明了该方法的有效性和实用性。

关键字:虚拟现实;跨平台GUI;立体显示;FLTK

中文分类号:TP391.9 文献标识码 A 文章编号:2095-2163(2016)02-

A Cross-platform integration method for Virtual Reality applications

WANG Canyun1 LIU Fengshi2

(1 Department of Electrical and Automation, Shandong Labor Vocational and Technical College, Jinan 250022, China;

2 School of Mechanical Engineering, Shandong University, Jinan 250061, China)

Abstract: To solve cross-platform problem of GUI(Graphical User Interface) in virtual reality applications,this paper presented a multi-thread integration method which can embed 3D scene rendered in OpenGL,Vega and OpenGL Performer into a cross-platform GUI named FLTK.The presented method provides a source of reference for other cross-platform virtual reality rendering engines to be integrated with FLTK.Based on hardware configuration of an existing graphic workstation,the principles and design flow of stereo display are also given.Several experiments are conducted to prove the presented method is effective.

Keyword: Virtual Rreality; cross-platform GUI; stereo display; FLTK

0引 言

随着计算机技术的发展,虚拟现实技术已经被广泛地应用在各种领域。在不同的计算机操作系统中,采用各种场景渲染软件开发了很多虚拟现实应用程序,因此,虚拟现实应用程序的跨平台运行是其非常重要的特征之一[1-2],即在某操作系统下所开发的应用程序,通过稍加修改或不予修改就可以在另外一种操作系统中实现运行。目前,很多商业或免费的虚拟现实程序开发软件已经具备一定的跨平台能力,所以GUI(图形用户界面)跨平台性就成为整体跨平台的关键所在;很多GUI开发工具包跨平台运行能力相对较弱;例如,在windows系统下用MFC开发的程序就不能在Onyx300图形工作站Irix系统下直接运行。

FLTK(Fast Light Tool Kit)是一种基于C++语言的GUI跨平台软件工具包,能够应用于UNIX○R、Microsoft○R Windows○R及MacOS○R X系统中。FLTK提供了非常简洁的GUI功能,并通过OpenGL○R及其GLUT组件支持3D图形的渲染[3];与其他GUI工具MFC及TQ相比,FLTK具备更加简洁、快速及良好的跨平台应用的优点。

FLTK是一种基于C++语言的GUI开发工具,因此,可以应用于所有采用C++语言开发的应用程序中。FLTK定义了很多基础部件类,如菜单、按钮和窗口等,这些部件可以直接嵌入到GUI应用程序中,其信息处理功能及各部件的信息都可以通过反馈功能部件链接起来。

为了解决虚拟现实应用程序GUI的跨平台问题,本文将FLTK应用于虚拟现实应用开发中;同时,运用FLTK对3种主流虚拟现实渲染软件OpenGL、Vega及OpenGL Performer的整合方式做了深入的研究,提出了一种多线程整合方法。这种方法为跨平台运行的虚拟现实程序开发提供了非常有用的参考。

本文的主要结构内容包括:第二部分提供了一种多线程整合方法,该方法可以将OpenGL、Vega及OpenGL Performer3种开发软件应用在FLTK中;第三部分介绍了Onyx300图形工作站的硬件结构,同时提出了基于该硬件结构的3D显示原理及流程设计;第四部分通过实验和讨论证明了本方法的有效性;最后一部分对本文作了总结。

1 FLTK与VR程序整合

将FLTK应用于VR程序的关键在于把3D虚拟场景嵌入到FLTK窗口部件中,实现三维虚拟场景在FLTK窗口部件中的显示;同时,也可以通过其他FLTK部件对虚拟场景进行控制。本节主要介绍如何将3种流行的虚拟现实开发软件包OpenGL、Vega及OpenGL Performer的虚拟场景嵌入到FLTK窗口部件中。

1.1OpenGL整合方法

FLTK提供了一个特殊的窗口类Fl_Gl_Window用于在FLTK窗口中展示OpenGL场景,Fl_Gl_Window能够直接嵌入到FLTK的主窗口(Fl_Window)中。开发者可以通过OpenGL重新设置其子类功能函数“Show()”生成新的场景,实现OpenGL场景在FLTK主窗口的嵌入。

猜你喜欢
程序开发跨平台部件
一款游戏怎么挣到全平台的钱?
浅析大学生在兼职小程序开发中遇到的问题
潜力双跨平台:进阶:谁将跨入下一个“十大”?
一种陀飞轮表的双秒轮结构
现代汉字的两种分析法与国家文字规范(四)
古文字中“口”部件的作用研究
基于C++语言的跨平台软件开发
VBA在Excel中的应用一例
利用OpenGL技术实现网格波动效果界面
将Widget小部件放到