王燦運 劉逢時


摘 要: 為了解決虛擬現實應用程序GUI(圖形用戶界面)跨平臺問題,該文提供了一種多線程整合方法,實現了將OpenGL、Vega及OpenGL Performer渲染的三維虛擬場景嵌入到跨平臺圖形用戶界面軟件FLTK中,為其他虛擬現實程序應用FLTK跨平臺渲染提供參考?;谝延袌D形工作站硬件結構,該文給出了三維虛擬場景立體顯示的工作原理及設計流程。同時,應用幾個典型事例證明了該方法的有效性和實用性。
關鍵字:虛擬現實;跨平臺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主窗口的嵌入。