謝欣海
(天津天大求實(shí)智慧物聯(lián)科技有限公司 天津市 300384)
在現(xiàn)代化發(fā)展不斷加快的過(guò)程中,科學(xué)技術(shù)的發(fā)展逐漸成為了衡量國(guó)家綜合實(shí)力¥的重要標(biāo)準(zhǔn),科學(xué)技術(shù)也給人類社會(huì)帶來(lái)的巨大的改變。當(dāng)前計(jì)算機(jī)技術(shù)的發(fā)展正逐漸成為科學(xué)的前沿技術(shù),在此過(guò)程中其他相關(guān)的科學(xué)技術(shù)的延伸也是得到了長(zhǎng)足的發(fā)展。虛擬現(xiàn)實(shí)技術(shù)便是在計(jì)算機(jī)技術(shù)快速發(fā)展的背景下被廣泛的應(yīng)用到了各個(gè)領(lǐng)域,在此過(guò)程中,虛擬現(xiàn)實(shí)技術(shù)成為了諸多領(lǐng)域不可或缺的一部分。依據(jù)相應(yīng)的虛擬現(xiàn)實(shí)技術(shù)科學(xué)家逐漸設(shè)計(jì)出適用于不同類型下的虛擬現(xiàn)實(shí)應(yīng)用程序,針對(duì)不同的場(chǎng)景使用不同的虛擬現(xiàn)實(shí)應(yīng)用程序,因而虛擬應(yīng)用程序的跨平臺(tái)運(yùn)行研究十分有必要。所謂虛擬現(xiàn)實(shí)應(yīng)用程序的跨平臺(tái)運(yùn)行主要指的是某些操作系統(tǒng)下所開(kāi)發(fā)的應(yīng)用程序稍加修改或是不修改便可以在其他的系統(tǒng)中實(shí)現(xiàn)運(yùn)行,目前很多的商業(yè)公司所研發(fā)的虛擬現(xiàn)實(shí)程序開(kāi)發(fā)軟件都已經(jīng)具備了基本的跨平臺(tái)能力,因而在此過(guò)程中跨平臺(tái)性逐漸成為了整體跨平臺(tái)的關(guān)鍵所在。
FLTK 是一種基于C++語(yǔ)言的CUI 跨平臺(tái)軟件工具包,其能夠應(yīng)用于多種不同的系統(tǒng)之中,此外,CUI 功能還能夠通過(guò)OpenGL及其GLUT 組件來(lái)支持3D 圖形的渲染,相較于其他類型的GUI 工具M(jìn)FC 及TQ,F(xiàn)LTK 具有諸多方面的優(yōu)點(diǎn),主要表現(xiàn)在以下幾方面,分別是簡(jiǎn)潔、快速、以及具有良好的跨平臺(tái)應(yīng)用性能。不僅如此,F(xiàn)LTK 還是一種基于C++語(yǔ)言的GUI 開(kāi)發(fā)工具,因而在此過(guò)程中可以應(yīng)用于所有采用C++語(yǔ)言開(kāi)發(fā)的應(yīng)用程序之中。當(dāng)前使用FLTK進(jìn)行了一系列基礎(chǔ)部件類的定義,主要包括菜單、按鈕以及窗口等,這些不見(jiàn)都可以直接性的嵌入到GUI 應(yīng)用程序中,同時(shí)也能夠利用相應(yīng)的信息處理功能以及各個(gè)部件的信息來(lái)實(shí)現(xiàn)部件之間的連接,在此過(guò)程中需要利用到相應(yīng)的反饋功能??缙脚_(tái)性能作為虛擬現(xiàn)實(shí)應(yīng)用程序的重要標(biāo)準(zhǔn)之一,該性能在對(duì)于虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用有著十分重要的影響,因而在虛擬現(xiàn)實(shí)應(yīng)用程序跨平臺(tái)問(wèn)題的解決過(guò)程中,需要將FLTK 應(yīng)用到虛擬現(xiàn)實(shí)應(yīng)用的開(kāi)發(fā)過(guò)程中。同時(shí)在運(yùn)用FLTK 的過(guò)程中還需要將FLTK 對(duì)其中的三種最為主要的虛擬現(xiàn)實(shí)渲染軟件的整合方式進(jìn)行深入的研究分析,并由此正和提出了多線程整合方法,現(xiàn)實(shí)的應(yīng)用情況表明,改種方法對(duì)于跨平臺(tái)運(yùn)行的虛擬現(xiàn)實(shí)程序開(kāi)發(fā)具有十分重要的參考意義。本文中對(duì)于多線程整合方法的介紹主要是從其主要結(jié)構(gòu)入手進(jìn)行分析,其中第二部分主要是提供了一系列的多線程整合方法,其作用是將OpenGL、Performer 以及Vega 三種開(kāi)發(fā)軟件充分的應(yīng)用到了FLTK 之中,并在第三部分中詳細(xì)的介紹了Onyx300 圖形工作站的硬件結(jié)構(gòu)。
圖1:Onyx300 立體顯示硬件結(jié)構(gòu)
近些年來(lái)我國(guó)虛擬現(xiàn)實(shí)的應(yīng)用主要是在城市規(guī)劃、大型工程漫游、數(shù)字化酒店等方面比較廣泛,同時(shí)也有著較為顯著的發(fā)展趨勢(shì),取得了較好的成效。就目前的房地產(chǎn)市場(chǎng)發(fā)展形式而言,正處于高速的發(fā)展階段,在此過(guò)程中房產(chǎn)市場(chǎng)有著十分激烈的競(jìng)爭(zhēng),這就需要不斷的引入高新先進(jìn)同時(shí)易于常人操作的宣傳方式,而虛擬現(xiàn)實(shí)平臺(tái)的應(yīng)用則能夠很好的解決這方面的問(wèn)題。正對(duì)當(dāng)前房地產(chǎn)市場(chǎng)發(fā)展情形進(jìn)行了相關(guān)的研究,主要是針對(duì)C++結(jié)合Direct X 技術(shù)獨(dú)立進(jìn)行了一套虛擬現(xiàn)實(shí)平臺(tái)的設(shè)計(jì)研發(fā),并在此過(guò)程中綜合性的將軌跡動(dòng)畫(huà)、虛擬漫游等進(jìn)行了結(jié)合,因而在應(yīng)用的過(guò)程中取得了較好的結(jié)果。不僅如此,國(guó)際上的諸多研究者還嘗試著以陷阱的導(dǎo)航技術(shù)作為研究的模板,由此來(lái)為虛擬現(xiàn)實(shí)平臺(tái)開(kāi)發(fā)出全新的符合自身實(shí)際需求的新式導(dǎo)航功能,這也是導(dǎo)航系統(tǒng)領(lǐng)域的重大革新。鑒于該設(shè)計(jì)研發(fā)平臺(tái)的實(shí)用性以及創(chuàng)新性,對(duì)此進(jìn)行了虛擬現(xiàn)實(shí)應(yīng)用的進(jìn)一步深入研究,主要針對(duì)FLTK 與VR 程序進(jìn)行了一定的整合分析,由此來(lái)研究虛擬現(xiàn)實(shí)平臺(tái)在各個(gè)領(lǐng)域的應(yīng)用前景以及仍需進(jìn)一步加強(qiáng)改進(jìn)的地方。
通過(guò)長(zhǎng)期的分析研究可知,將FLTK 應(yīng)用于VR 程序的關(guān)鍵之處在于將3D 虛擬場(chǎng)景結(jié)合到FLTK 的窗口部件之中,在此過(guò)程中實(shí)現(xiàn)三維虛擬場(chǎng)景在FLTK 窗口部件中的顯示。不僅如此,對(duì)于FLTK 與VR 程序的整合還可以通過(guò)其他的FLTK 部件對(duì)虛擬場(chǎng)景進(jìn)行一定的控制,以下主要是針對(duì)當(dāng)前三種較為常見(jiàn)的虛擬現(xiàn)實(shí)開(kāi)發(fā)軟件的虛擬場(chǎng)景嵌入進(jìn)行分析,這三種虛擬現(xiàn)實(shí)開(kāi)發(fā)軟件分別是OpenGL、Performer 以及Vega,將其嵌入到FLTK 窗口部件是當(dāng)前的重點(diǎn)研究?jī)?nèi)容。以下對(duì)三種虛擬現(xiàn)實(shí)開(kāi)發(fā)軟件的嵌入進(jìn)行分別介紹分析。
OpenGL 嵌入到FLTK 窗口部件主要是通過(guò)如下措施實(shí)現(xiàn)的,其中首先是有FLTK 提供了一個(gè)特殊的窗口類FI-GI-Window,并將之應(yīng)用到了FLTK 窗口中展示出了OpenGL 場(chǎng)景,在此過(guò)程中,F(xiàn)IGI-Window 很大程度上能夠?qū)崿F(xiàn)直接嵌入到FLTK 的主窗口之中。此外,相應(yīng)的開(kāi)發(fā)者還可以根據(jù)OpenGL 的相應(yīng)功能進(jìn)行其子類功能函數(shù)生成新場(chǎng)景的重新設(shè)置,由此來(lái)最終實(shí)現(xiàn)對(duì)于OpenGL 場(chǎng)景在FLTK 主窗口中的嵌入。由此可見(jiàn),OpenGL 整合方法的應(yīng)用主要是通過(guò)FLTK 窗口的展示實(shí)現(xiàn)的,在此過(guò)程中,相應(yīng)的場(chǎng)景展示起到了很大的作用,最終OpenGL 場(chǎng)景在FLTK 主窗口中的嵌入的實(shí)現(xiàn)對(duì)于實(shí)際的應(yīng)用有著十分顯著的影響,因而該方面的研究有必要進(jìn)一步的深入。
當(dāng)前國(guó)際對(duì)于虛擬現(xiàn)實(shí)技術(shù)的研究已經(jīng)有了一定的進(jìn)展,相關(guān)的研究仍在不斷的深入過(guò)程中,近些年來(lái)關(guān)于虛擬現(xiàn)實(shí)技術(shù)的研究成果包括以下幾點(diǎn),Vega 以及OpenGL Performer 都是實(shí)時(shí)的3D 仿真軟件,這也是當(dāng)前應(yīng)用最為廣泛的仿真軟件。目前工業(yè)生產(chǎn)過(guò)程中對(duì)于仿真技術(shù)的應(yīng)用也有著很大的需求,工業(yè)仿真的相關(guān)研究很早之前便開(kāi)始進(jìn)行,但當(dāng)前的研究過(guò)程中仍然存在著很多的問(wèn)題,在此過(guò)程中FLTK 與OpenGL 存在著不同之處,其中FLTK 并沒(méi)有將Vega 以及Performenr 提供特殊類型的函數(shù)并將虛擬場(chǎng)景嵌入到FLTK 的主窗口之中,此外和可以先將Vega 或是OpenGL Performer虛擬場(chǎng)景嵌入到FI-GI-Window 之中,在此過(guò)程中將該類加載到FLTK 的主窗口之中,由此來(lái)實(shí)現(xiàn)最終的嵌入過(guò)程。其中多線程整合方式主要包括FLTK 以及3D 場(chǎng)景兩種線程,同時(shí)將Vega 或是OpenGL Performer 渲染的虛擬場(chǎng)景嵌入到FLTK 程序中的具體操作如下:首先第一步的操作是將應(yīng)用FLTK 的FI-GI-Window 類為程序建立的主窗口,在此之后便需要將新建立的FI-GI-Window 以及FLTK 放置到主窗口之中,最后一步所要做的便是顯示主窗口,該步驟中還需要運(yùn)行3D 場(chǎng)景線程,Vega 或是OpenGL Performer 均可,沒(méi)有十分嚴(yán)格的限制。接下來(lái)所要做的是將最后所獲取的顯示窗口嵌入到FLTK 線程的FI-GI-Window 中。3D 場(chǎng)景的線程步驟比較簡(jiǎn)單,只有以上所介紹的兩個(gè)重要步驟,通過(guò)以上對(duì)于FLTK 線程步驟以及3D 場(chǎng)景線程步驟的介紹,可以發(fā)現(xiàn),F(xiàn)LTK 線程與Vega 或是OpenGL Performer 線程的啟用步驟類似,其中存在著很多的相似之處,但也有著明顯的不同之處,不同的地方在于3D 場(chǎng)景線程能夠把所獲取的3D 虛擬場(chǎng)景的顯示窗口嵌入到FI-GI-Window 中。
對(duì)于硬件結(jié)構(gòu)來(lái)說(shuō),在此過(guò)程中主要是在Onyx300 圖形工作站中的應(yīng)用。三維虛擬場(chǎng)景的立體顯示過(guò)程中,主要應(yīng)用的是基于Onyx300 圖形工作站的立體顯示原理,在此過(guò)程中也已經(jīng)研究出了相應(yīng)的流程圖。對(duì)于Onyx300 立體顯示硬件結(jié)構(gòu)的研究可以根據(jù)圖示進(jìn)行分析,其中主要包括以下幾種結(jié)構(gòu),首先是投影幕布,投影幕布作為硬件結(jié)構(gòu)中最為基本的一部分,其在水平方向上135 度有柱形幕,此外,三個(gè)立體的投影儀將圖形工作站處理完成之后的圖像投射到柱形幕布上。三維虛擬場(chǎng)景的立體結(jié)構(gòu)還包括一臺(tái)具有多種功能的特殊類型計(jì)算機(jī),該計(jì)算機(jī)包含的功能方方面面,主要包含數(shù)字非線性幾何矯正、數(shù)字四邊邊緣通河、數(shù)字色平衡以及數(shù)字熱點(diǎn)補(bǔ)償?shù)龋话愕?,該特殊?jì)算機(jī)安裝的位置比較固定,往往是裝在圖形工作站以及多投影機(jī)系統(tǒng)之間,由此能夠是現(xiàn)在相應(yīng)的幕布上得到相應(yīng)的亮度連續(xù)、色度均勻的三維圖像,出了以上所介紹的基本硬件結(jié)構(gòu)之外,虛擬現(xiàn)實(shí)應(yīng)用程序還包括柱形幕布上方所安裝的三個(gè)用于控制立體眼鏡的紅外發(fā)射器。以上所介紹的便是虛擬現(xiàn)實(shí)應(yīng)用程序基本的硬件結(jié)構(gòu)。
立體顯示設(shè)計(jì)流程主要是依據(jù)視差進(jìn)行的,視差主要指的是人類雙眼所形成的立體視覺(jué)的核心所在,其中圖形工作站的主要工作原理便是通過(guò)多臺(tái)投影機(jī)系統(tǒng)在其所投影的幕布上形成不同的位置以及視角下的類似與人眼視差的圖像,在此過(guò)程中相應(yīng)的計(jì)算機(jī)由程序所控制的紅外發(fā)射器通過(guò)其所發(fā)射的紅外線以一定的評(píng)論所控制下的鏡片交替透明,并最終將處理過(guò)的有視差特征的圖像傳輸?shù)接^察者的雙眼,由此幫助形成三維的立體虛擬場(chǎng)景。以上所介紹的便是當(dāng)前我國(guó)三維立體虛擬場(chǎng)景的實(shí)現(xiàn)原理,這也是當(dāng)前3D 電影中所使用到的最為根本的技術(shù)。然而對(duì)于Onyx300 來(lái)說(shuō),其立體顯示主要是依據(jù)當(dāng)前已有的硬件和軟件,并將這些軟件作為立體顯示的基礎(chǔ),具體的立體顯示設(shè)計(jì)的流程圖如圖所示,據(jù)此可以觀察到每個(gè)窗口都設(shè)置了兩個(gè)通道,分別分為主通道以及副通道,這兩個(gè)通道都是通過(guò)對(duì)于人眼視差的模擬所得出的,主要是根據(jù)人眼視差找到了設(shè)計(jì)過(guò)程中不同視覺(jué)的位置以及角度,同時(shí)還需要進(jìn)行主副通道切換頻率的設(shè)置,該頻率的設(shè)置主要是用來(lái)控制將兩個(gè)通道所對(duì)應(yīng)的圖像分別傳輸?shù)娜说淖笥已?,并在此過(guò)程中模擬視差來(lái)形成立體視覺(jué)。
對(duì)于本文中所介紹的虛擬現(xiàn)實(shí)應(yīng)用程序跨平臺(tái)方法,相關(guān)的科學(xué)研究表明其具有一定的有效性以及實(shí)用性,首先第一個(gè)驗(yàn)證的實(shí)驗(yàn)例子是Vega 和FLTK 的整合。不僅如此,OpenGL Performer 與FLTK 之間的整合也可以實(shí)現(xiàn),這些都是相關(guān)的是驗(yàn)證明所得出的最終結(jié)果??偟膩?lái)說(shuō),以上所介紹的兩點(diǎn)實(shí)驗(yàn)都是為了證明本文中所采用的虛擬現(xiàn)應(yīng)用程序跨平臺(tái)方法具有實(shí)用性,在實(shí)際的操作過(guò)程中切實(shí)可行。
本文中主要針對(duì)虛擬現(xiàn)實(shí)應(yīng)用程序跨平臺(tái)方法進(jìn)行了深入的研究分析,在此過(guò)程中為了解決虛擬現(xiàn)實(shí)應(yīng)用程序GUI 跨平臺(tái)問(wèn)題,給出了相應(yīng)的多線程整合方法,該種方法主要是將三種常見(jiàn)的平臺(tái)程序進(jìn)行渲染后的三維虛擬場(chǎng)景成功的嵌入到了跨平臺(tái)工具包FLTK 種,由此也給GUI 跨平臺(tái)問(wèn)題提供了一定的參考,能夠據(jù)此研究出一定的解決辦法。