国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于游戲引擎的圖形用戶界面集群渲染系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2016-02-23 03:41:24宋輝姜忠鼎
微型電腦應(yīng)用 2016年10期
關(guān)鍵詞:圖形用戶界面畫布控件

宋輝,姜忠鼎

基于游戲引擎的圖形用戶界面集群渲染系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

宋輝,姜忠鼎

圖形用戶界面是圖形顯示系統(tǒng)重要的信息呈現(xiàn)和交互方式?,F(xiàn)有分布式圖形顯示系統(tǒng)對圖形用戶界面集群渲染技術(shù)討論不足。深入分析Unity引擎圖形用戶界面系統(tǒng),圍繞面向LCD拼接屏的圖形用戶界面多屏顯示技術(shù)以及基于游戲?qū)ο蟮慕缑婵丶綑C(jī)制等關(guān)鍵技術(shù)點(diǎn)展開討論,設(shè)計(jì)并實(shí)現(xiàn)了基于游戲引擎的圖形用戶界面集群渲染系統(tǒng)。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)支持二維和三維圖形用戶界面開發(fā),具有較強(qiáng)的實(shí)用性;系統(tǒng)對游戲引擎影響較小,具有良好的系統(tǒng)性能。

圖形用戶界面;游戲引擎;集群渲染

0 引言

隨著圖形算法和圖形硬件的不斷發(fā)展,計(jì)算機(jī)圖形應(yīng)用已經(jīng)廣泛應(yīng)用于教育、仿真、娛樂和科學(xué)數(shù)據(jù)可視化等重要領(lǐng)域。普通圖形顯示系統(tǒng)使用單臺(tái)PC和單顯示器的系統(tǒng)配置,顯示尺寸小,視角窄,分辨率低,顯示能力非常有限,無法滿足大數(shù)據(jù)時(shí)代海量數(shù)據(jù)高效可視化的需求以及人們對娛樂體驗(yàn)日益增長的需求。相比之下,分布式圖形顯示系統(tǒng)使用集群驅(qū)動(dòng)的大規(guī)模顯示環(huán)境,呈現(xiàn)大尺寸、廣視角、高分辨率的連貫畫面。無論是顯示海量的科學(xué)數(shù)據(jù)還是呈現(xiàn)高度沉浸的虛擬場景,分布式圖形顯示系統(tǒng)都是一種有效的解決方案。

分布式圖形顯示系統(tǒng)的關(guān)鍵技術(shù)包括虛擬場景和圖形用戶界面集群渲染、高分辨率大規(guī)模顯示等。其中圖形用戶界面是系統(tǒng)重要的信息呈現(xiàn)和交互方式。MiddleVR for Unity[1]是一款基于Unity引擎分布式圖形系統(tǒng)開發(fā)中間件。MiddleVR使用HTML開發(fā)圖形用戶界面,并使用Chromium瀏覽器引擎開發(fā)網(wǎng)頁視圖(WebView)插件,將網(wǎng)頁渲染到虛擬場景中。MiddleVR網(wǎng)頁視圖不支持鼠標(biāo)輸入和彈出窗口,應(yīng)用場景有限;使用同步圖像的方式同步用戶界面,當(dāng)用戶界面分辨率高時(shí)同步開銷大。CaveUDK[2]是基于UDK引擎的沉浸式虛擬現(xiàn)實(shí)框架。CaveUDK使用引擎的異步不可靠遠(yuǎn)程調(diào)用同步數(shù)據(jù)。不可靠網(wǎng)絡(luò)協(xié)議只適用于系統(tǒng)同步幀率高、丟失少量數(shù)據(jù)不影響系統(tǒng)正確性的情景。對于圖形用戶界面同步,鼠標(biāo)點(diǎn)擊事件丟失將使集群節(jié)點(diǎn)執(zhí)行不同邏輯,導(dǎo)致界面狀態(tài)不同步。

游戲引擎是互動(dòng)圖形應(yīng)用開發(fā)的集成開發(fā)工具。游戲引擎提供豐富的功能,高性能的基礎(chǔ)系統(tǒng)和高效的開發(fā)流程,應(yīng)用越來越廣泛。Unity游戲引擎[3]是目前主流的商業(yè)游戲引擎之一。在圖形用戶界面開發(fā)方面, Unity UI系統(tǒng)[4]提供界面編輯器設(shè)計(jì)UI控件和布局,使用腳本處理界面事件,執(zhí)行功能邏輯。盡管引擎UI系統(tǒng)功能強(qiáng)大且開發(fā)效率高,但引擎本身對分布式圖形顯示系統(tǒng)開發(fā)支持不足,不支持多屏UI畫面生成和顯示,不支持UI控件同步, UI系統(tǒng)不能直接用于分布式圖形顯示系統(tǒng)。

本文工作 基于現(xiàn)有分布式圖形顯示系統(tǒng)在圖形用戶界面開發(fā)和集群同步方面的問題,本文結(jié)合Unity技術(shù)文檔和UI系統(tǒng)源代碼,分析了Unity引擎UI系統(tǒng),設(shè)計(jì)并實(shí)現(xiàn)了基于游戲引擎的圖形用戶界面集群渲染系統(tǒng)。本文系統(tǒng)使用游戲引擎實(shí)現(xiàn)圖形用戶界面集群渲染,利用引擎UI系統(tǒng)和UI設(shè)計(jì)工具提升界面開發(fā)效率,保證界面渲染性能和畫面質(zhì)量;系統(tǒng)支持開發(fā)高分辨、可交互的二維和三維圖形用戶界面,適用于數(shù)據(jù)可視化和虛擬現(xiàn)實(shí)等多種應(yīng)用類型;系統(tǒng)實(shí)現(xiàn)LCD多屏顯示,提供大尺寸、廣視角的連貫畫面,能同時(shí)呈現(xiàn)大量數(shù)據(jù),具有良好的信息呈現(xiàn)能力。

1 系統(tǒng)架構(gòu)

本文分布式圖形顯示系統(tǒng)的體系結(jié)構(gòu)如圖1所示:

圖1 分布式圖形顯示系統(tǒng)體系結(jié)構(gòu)

系統(tǒng)包括3個(gè)核心子系統(tǒng),包括虛擬場景、集群渲染系統(tǒng)和多屏顯示系統(tǒng)。

虛擬場景是系統(tǒng)的基本組成部分。虛擬場景內(nèi)容根據(jù)應(yīng)用具體需求開發(fā),例如虛擬場景可以呈現(xiàn)二維圖形,用于播放視頻、閱讀文本,以及顯示二維圖形用戶界面;虛擬場景也可以呈現(xiàn)三維圖形,用于三維數(shù)據(jù)可視化和沉浸式虛擬現(xiàn)實(shí)游戲。圖形用戶界面是虛擬場景的重要組成部分,用戶通過界面獲取系統(tǒng)呈現(xiàn)的信息,并通過界面和虛擬場景做交互。

集群渲染系統(tǒng)采用Master-Slave架構(gòu),集群由一個(gè)主節(jié)點(diǎn)和多個(gè)顯示節(jié)點(diǎn)組成,其中主節(jié)點(diǎn)完成虛擬場景的主要邏輯計(jì)算,并把場景狀態(tài)同步到從節(jié)點(diǎn);從節(jié)點(diǎn)負(fù)責(zé)場景渲染,并使用連接到節(jié)點(diǎn)的顯示設(shè)備把畫面輸出到屏幕上。集群渲染采用lock-step的集群同步機(jī)制,使用心跳信息標(biāo)識(shí)場景完成狀態(tài)同步, 使用幀交換同步柵欄使顯示節(jié)點(diǎn)同時(shí)更新畫面[5]。為保證狀態(tài)同步和事件同步的可靠性,本文使用文獻(xiàn)[6]中面向并行繪制游戲系統(tǒng)的可靠同步傳輸協(xié)議,協(xié)議同步流程如圖2所示:

圖2 同步數(shù)據(jù)傳遞流程

多屏顯示系統(tǒng)使用LCD拼接屏作為顯示設(shè)備,系統(tǒng)根據(jù)物理屏幕的擺放分配集群節(jié)點(diǎn)的顯示區(qū)域,根據(jù)顯示器邊框減小顯示區(qū)域,使用離軸投影的虛擬相機(jī)渲染場景,最后使用引擎Multi-display多屏顯示技術(shù)[7],將渲染結(jié)果顯示到對應(yīng)LCD顯示器上,呈現(xiàn)連貫畫面。

系統(tǒng)基于Unity引擎提供的新UI系統(tǒng)設(shè)計(jì)并實(shí)現(xiàn)。新UI系統(tǒng)功能豐富,支持2D界面和3D界面開發(fā),且容易集成動(dòng)畫系統(tǒng)等引擎核心子系統(tǒng)。引擎提供UI設(shè)計(jì)工具,用于高效編輯UI控件和界面布局。新UI系統(tǒng)包含幾個(gè)核心概念,即畫布、布局、可視化控件和交互控件。實(shí)現(xiàn)UI集群渲染需要考慮兩個(gè)關(guān)鍵問題,即如何將畫布顯示到多個(gè)顯示器上以及如何在集群節(jié)點(diǎn)間同步UI控件狀態(tài)。下文將圍繞畫布多屏顯示技術(shù)和UI控件同步兩個(gè)關(guān)鍵問題展開討論。

2 畫布多屏顯示技術(shù)

畫布是圖形用戶界面的容器,包含布局元素和控件元素等所有界面元素。UI系統(tǒng)基于游戲?qū)ο髮?shí)現(xiàn),畫布對象本質(zhì)是游戲?qū)ο?。畫布具有空間變換(Transform),可以像操作其它游戲?qū)ο笠粯涌刂飘嫴荚趫鼍爸械奈恢谩⒊蚝涂s放比例。引擎提供屏幕覆蓋模式(Overlay Screen Space)、相機(jī)綁定模式(Camera-based World Space)以及世界坐標(biāo)模式(World Space)等畫布渲染模式,支持二維/三維界面渲染。其中屏幕覆蓋和相機(jī)綁定模式能有效地實(shí)現(xiàn)二維界面,充分保留界面的功能性,提供用戶和虛擬世界的信息傳輸接口;世界空間渲染模式則能實(shí)現(xiàn)三維用戶界面,將界面融入虛擬場景,設(shè)計(jì)敘事性界面,能有效地增加應(yīng)用沉浸感[8]。

分布式圖形系統(tǒng)的顯示屏幕由多個(gè)顯示節(jié)點(diǎn)共同顯示,單個(gè)節(jié)點(diǎn)只顯示屏幕的一部分區(qū)域。使用引擎UI系統(tǒng),需要考慮畫布顯示區(qū)域分配問題[9]。本文基于節(jié)點(diǎn)連接的LCD顯示器排列,分配節(jié)點(diǎn)顯示區(qū)域,適用于使用世界空間模式的三維界面開發(fā)和使用相機(jī)綁定模式的二維界面開發(fā)如圖3所示:

圖3 三維顯示區(qū)域分配

圖3a顯示了集群驅(qū)動(dòng)的圖形顯示系統(tǒng)俯視圖,其特點(diǎn)為多顯示節(jié)點(diǎn)、單個(gè)節(jié)點(diǎn)多屏顯示;每個(gè)節(jié)點(diǎn)負(fù)責(zé)屏幕部分區(qū)域的畫面生成和顯示,所有節(jié)點(diǎn)顯示畫面拼接在一起,呈現(xiàn)完整連貫的畫面。

首先,對于世界坐標(biāo)模式下的三維界面開發(fā),本文系統(tǒng)采用以下步驟生成和顯示畫面:

步驟一、根據(jù)物理屏幕配置,對每個(gè)LCD顯示器在虛擬場景中放置虛擬平面。LCD顯示器存在邊框,虛擬平面需要相應(yīng)減小尺寸;

步驟二、為每個(gè)虛擬平面,在觀察位置創(chuàng)建一個(gè)虛擬相機(jī),使用虛擬平面作為虛擬相機(jī)的成像平面,計(jì)算相機(jī)離軸投影;

步驟三、虛擬相機(jī)渲染場景后,使用引擎Multi-display多屏顯示技術(shù)[4],將渲染結(jié)果顯示到LCD顯示器上。

其次,對于相機(jī)綁定模式下的二維用戶界面開發(fā),本文采用和上文三維界面開發(fā)一樣的流程。但為了將畫布覆蓋在屏幕上,需要修改上文步驟一中虛擬平面的擺放方式。把屏幕展開到二維平面,映射到畫布上,如圖4所示:

圖4 二維顯示區(qū)域分配

3 UI控件同步機(jī)制

UI系統(tǒng)使用畫布作為容器包含控件,控件則是組成用戶界面的基本單元??丶饕梢暬丶徒换タ丶?。3.1 可視化控件同步

可視化控件[3]用于信息呈現(xiàn),主要包括文本和圖像等。文本的主要屬性包括文字內(nèi)容、字體、字體大小、對齊方式和文本顏色等。圖像的主要屬性包括紋理資源(顯示的圖片)、紋理坐標(biāo)等。可視化控件使用游戲?qū)ο髮?shí)現(xiàn),引擎腳本能直接讀取和更新控件狀態(tài),這是可視化控件集群同步的基礎(chǔ)。本文采用同步控件屬性的同步機(jī)制,即主節(jié)點(diǎn)讀取控件屬性發(fā)送給從節(jié)點(diǎn),從節(jié)點(diǎn)使用同步數(shù)據(jù)更新控件屬性。

以文本同步為例,文本同步示意代碼如圖5所示:

圖5 文本同步示意代碼

同步的屬性包括文本內(nèi)容、字體、字體大小和文本顏色等。同步字體時(shí),主節(jié)點(diǎn)發(fā)送字體標(biāo)識(shí)符,從節(jié)點(diǎn)使用字體標(biāo)識(shí)符獲得字體對象,如使用引擎提供的CreateDynmaic

FontFromOSFont 方法動(dòng)態(tài)創(chuàng)建操作系統(tǒng)已安裝的字體。圖像同步采用相同的方式實(shí)現(xiàn),圖像同步的屬性包括圖像內(nèi)容和紋理坐標(biāo)。其中圖像內(nèi)容使用引擎二維紋理表示,二維紋理使用EncodeToJPG方式編碼成JPG格式的二進(jìn)制數(shù)據(jù),使用LoadImage方法加載數(shù)據(jù)進(jìn)行更新。

3.2 交互控件同步

交互控件[3]主要用于處理用戶輸入,包括按鈕、單選框、滑塊、滾動(dòng)條、下拉框、輸入框、滾動(dòng)視圖等。交互控件基于鼠標(biāo)輸入更新控件狀態(tài),觸發(fā)界面事件,這是交互控件集群同步的基礎(chǔ)。本文采用同步鼠標(biāo)狀態(tài)和事件相機(jī)狀態(tài)的同步機(jī)制,保證鼠標(biāo)相關(guān)的控件狀態(tài)和控件觸發(fā)的界面事件保持同步。

(1)交互控件狀態(tài)

交互控件狀態(tài)包括正常狀態(tài)、高亮狀態(tài),、按下狀態(tài)和未激活狀態(tài)。不同狀態(tài)下控件具有不同屬性,例如不同顏色或者不同空間變換等。鼠標(biāo)輸入能觸發(fā)控件發(fā)生狀態(tài)變化。

除了在正常狀態(tài)、高亮狀態(tài)等四個(gè)狀態(tài)間過渡,一些交互控件還維護(hù)其它狀態(tài)。包括:

1)基于鼠標(biāo)輸入更新的狀態(tài),如滑塊、滾動(dòng)條和滾動(dòng)視圖可以被拖動(dòng),其狀態(tài)根據(jù)鼠標(biāo)位置計(jì)算得到;下拉菜單可以展開下拉框,狀態(tài)變化由鼠標(biāo)點(diǎn)擊事件觸發(fā);

2)其它方式更新的狀態(tài)或?qū)傩裕巛斎肟虻墓鈽?biāo)位置,根據(jù)鍵盤輸入和鼠標(biāo)輸入計(jì)算得到;滑塊的最大最小值等控件屬性,創(chuàng)建控件時(shí)初始化,使用腳本直接修改。

交互控件狀態(tài)變化后,能觸發(fā)相應(yīng)的界面事件,并調(diào)用引擎腳本處理界面事件。如按鈕觸發(fā)OnClick事件,單選框、滑塊、滾動(dòng)條、下拉框、輸入框觸發(fā)OnValueChanged事件等。

(2)鼠標(biāo)同步

鼠標(biāo)是常用的界面交互設(shè)備,鼠標(biāo)輸入處理流程如圖6所示:

圖6 使用鼠標(biāo)位置計(jì)算目標(biāo)控件示意圖

步驟一、UI系統(tǒng)獲得鼠標(biāo)屏幕空間位置和滾輪變量,以及鼠標(biāo)按下、釋放等按鍵狀態(tài);

步驟二、根據(jù)鼠標(biāo)位置計(jì)算鼠標(biāo)指針下的控件:

a)系統(tǒng)使用事件相機(jī),將鼠標(biāo)映射到場景射線;

b)使用射線和畫布上控件求交得到相交控件列表;

c)取距離事件相機(jī)最近的控件作為目標(biāo)控件;

步驟三、根據(jù)鼠標(biāo)按鍵狀態(tài)處理鼠標(biāo)按下、釋放以及拖動(dòng)事件,將鼠標(biāo)輸入傳遞給目標(biāo)控件,交互控件更新控件狀態(tài)。

集群系統(tǒng)下使用鼠標(biāo)進(jìn)行交互的關(guān)鍵是,區(qū)別對待事件相機(jī)和渲染相機(jī)。如圖6中主節(jié)點(diǎn)步驟A.1和從節(jié)點(diǎn)步驟B.2所示,事件相機(jī)使用鼠標(biāo)窗口坐標(biāo),和畫布求交,得到當(dāng)前鼠標(biāo)指針下的控件。系統(tǒng)使用相機(jī)函數(shù)ScreenPoint ToRay實(shí)現(xiàn)鼠標(biāo)窗口坐標(biāo)到三維射線的映射,為了使主節(jié)點(diǎn)和顯示節(jié)點(diǎn)映射到相同的射線,首先,由于主節(jié)點(diǎn)和顯示節(jié)點(diǎn)的窗口分辨率不同,鼠標(biāo)坐標(biāo)使用窗口分辨率進(jìn)行歸一化;如圖7所示(15-18行):

圖7 鼠標(biāo)同步示意代碼

其次,需要同步事件相機(jī)的空間變換和投影矩陣,事件相機(jī)本身不渲染畫布,畫布渲染由渲染相機(jī)完成。根據(jù)2節(jié)畫布多屏顯示技術(shù)的顯示區(qū)域分配機(jī)制,每個(gè)顯示節(jié)點(diǎn)負(fù)責(zé)渲染畫布的部分區(qū)域,渲染結(jié)果輸出到顯示器上。從節(jié)點(diǎn)顯示的鼠標(biāo)是一個(gè)三維游戲?qū)ο?,其位置為射線和畫布的交點(diǎn)。系統(tǒng)中,事件相機(jī)和渲染相機(jī)相互獨(dú)立,如圖6所示,從節(jié)點(diǎn)渲染相機(jī)覆蓋區(qū)域小于事件相機(jī)區(qū)域。

(3)輸入框同步

對于不隨鼠標(biāo)輸入更新的控件屬性,如滑塊的最大最小值等屬性,以及由鍵盤更新的輸入框的文本等,本文直接在主節(jié)點(diǎn)獲取這些屬性值,并同步到從節(jié)點(diǎn)。輸入框同步的屬性包括輸入框文本和文本類型等(代碼參見圖5文本同步示意代碼)。主節(jié)點(diǎn)獲取輸入框的文本發(fā)送到從節(jié)點(diǎn),從節(jié)點(diǎn)更新文本,觸發(fā)OnValueChanged事件。

4 應(yīng)用實(shí)例及實(shí)驗(yàn)結(jié)果

4.1 實(shí)驗(yàn)環(huán)境

本文系統(tǒng)硬件配置如下:Intel? Core i5-2320 3.00GHz四核處理器,4GB DDR3內(nèi)存,NVIDIA? GeForce? GTX 670圖形顯示卡,千兆局域網(wǎng)網(wǎng)絡(luò)連接,全高清液晶顯示器;系統(tǒng)的開發(fā)和運(yùn)行軟件環(huán)境如下:Microsoft Windows 7 Service Pack 1 32位操作系統(tǒng),Microsoft Visual Studio 2013旗艦版, Microsoft .Net Framework 3.5,Unity Personal 5.3.1f游戲引擎。用于實(shí)驗(yàn)的系統(tǒng)由四個(gè)節(jié)點(diǎn)組成,其中包括一個(gè)主節(jié)點(diǎn),顯示完整畫布,并連接鼠標(biāo)用戶交互;三個(gè)從節(jié)點(diǎn)從左往右并排排列,并依次顯示畫布的部分區(qū)域,呈現(xiàn)完整畫面。

4.2 實(shí)驗(yàn)結(jié)果

本節(jié)從系統(tǒng)運(yùn)行機(jī)制、系統(tǒng)性能、系統(tǒng)功能等3個(gè)方面進(jìn)行實(shí)驗(yàn)。

(1)系統(tǒng)運(yùn)行機(jī)制實(shí)驗(yàn)

本文系統(tǒng)使用游戲引擎實(shí)現(xiàn)圖形用戶界面集群渲染,在同步按鈕和單選框等交互控件時(shí),系統(tǒng)同步鼠標(biāo)狀態(tài)和事件相機(jī)狀態(tài),并在顯示節(jié)點(diǎn)運(yùn)行相同的鼠標(biāo)輸入處理邏輯。實(shí)驗(yàn)如圖8所示:

圖8 顯示節(jié)點(diǎn)渲染不同數(shù)量的按鈕

畫布上擺放3組按鈕,按鈕個(gè)數(shù)分別為50、150和300,主節(jié)點(diǎn)顯示完整畫布,每個(gè)顯示顯示節(jié)點(diǎn)分別顯示一個(gè)組按鈕。系統(tǒng)更新一幀內(nèi)界面同步相關(guān)的時(shí)間如表1所示:

表1 系統(tǒng)更新幀內(nèi)界面同步相關(guān)時(shí)間

可以看到,輸入處理時(shí)間為1.67ms左右,符合不同節(jié)點(diǎn)執(zhí)行相同處理邏輯的機(jī)制(主要開銷用于控件求交運(yùn)算)。主節(jié)點(diǎn)和三個(gè)從節(jié)點(diǎn)幀同步時(shí)間差異相對較大,但總時(shí)間都是5.03ms左右,符合幀同步使不同節(jié)點(diǎn)同時(shí)結(jié)束一幀的機(jī)制。

(2)系統(tǒng)性能實(shí)驗(yàn)

本實(shí)驗(yàn)用于測試系統(tǒng)隨控件數(shù)量增加時(shí)的性能變化。畫布上擺放3組按鈕,每組按鈕數(shù)量相同。主節(jié)點(diǎn)顯示完整畫布,顯示節(jié)點(diǎn)顯示一組按鈕。此外,系統(tǒng)每一幀都模擬觸發(fā)點(diǎn)擊事件。實(shí)驗(yàn)結(jié)果如圖9所示:

如圖9a所示,隨著按鈕數(shù)量的增減,單機(jī)系統(tǒng)和集群系統(tǒng)每一幀耗時(shí)線性增加??傮w上看,集群系統(tǒng)耗時(shí)比單機(jī)系統(tǒng)平均高2.31ms。圖9b顯示了集群系統(tǒng)幀同步耗時(shí)占集群系統(tǒng)額外耗時(shí)的比例,可以看到,隨按鈕數(shù)量增加,幀同步比例維持在98.6%左右,說明本實(shí)驗(yàn)中幀同步是造成性能差異的主要因素。但從圖9c幀同步開銷占總時(shí)間的比例來看,隨按鈕數(shù)增加,幀同步占總時(shí)間比例減小,說明隨著系統(tǒng)趨于復(fù)雜,系統(tǒng)渲染、事件處理等其它方面開銷高于幀同步。

圖9 性能測試實(shí)驗(yàn)結(jié)果

(3)系統(tǒng)功能實(shí)驗(yàn)

本實(shí)驗(yàn)用于說明本文系統(tǒng)功能,實(shí)驗(yàn)中畫布上擺放大量各種類型的UI控件,如圖10所示:

圖10 功能測試實(shí)驗(yàn)結(jié)果框

圖10a為主節(jié)點(diǎn)顯示畫面,圖10b為顯示節(jié)點(diǎn)畫面。使用鼠標(biāo)在主節(jié)點(diǎn)操作界面,從節(jié)點(diǎn)的界面狀態(tài)更新如圖10c中展開的下拉框以及圖10d文本框內(nèi)的文字。系統(tǒng)運(yùn)行穩(wěn)定,平均幀率為102幀/秒。實(shí)驗(yàn)表明,本文系統(tǒng)支持復(fù)雜的圖形用戶界面開發(fā),且系統(tǒng)性能良好。

此外,本文系統(tǒng)已成功應(yīng)用到文獻(xiàn)[9]中的第一人稱射擊游戲,使用本文UI集群渲染技術(shù)在游戲場景中增加圖形用戶界面,包括三維的游戲菜單等如圖11所示:

圖11 第一人稱射擊游戲

5 總結(jié)

基于對Unity引擎UI系統(tǒng)架構(gòu)的分析,本文使用Unity引擎設(shè)計(jì)并實(shí)現(xiàn)了圖形用戶界面集群渲染系統(tǒng)。系統(tǒng)面向LCD拼接屏,按照顯示器排列分配顯示節(jié)點(diǎn)的畫布渲染區(qū)域,實(shí)現(xiàn)圖形界面多屏顯示。系統(tǒng)基于游戲?qū)ο蟮腢I控件同步機(jī)制,使用同步腳本讀取和更新可視化控件屬性,同步可視化控件;通過同步鼠標(biāo)狀態(tài)和事件相機(jī)狀態(tài),同步交互控件狀態(tài)。實(shí)驗(yàn)結(jié)果表明,本文基于游戲引擎的圖形用戶界面集群渲染系統(tǒng)支持復(fù)雜的二維和三維圖形用戶界面開發(fā),具有較好的實(shí)用性;系統(tǒng)對Unity引擎性能開銷影響較小,具有良好的系統(tǒng)性能。未來系統(tǒng)將集成體感交互設(shè)備,探究圖形用戶界面的自然人機(jī)交互技術(shù),提升系統(tǒng)交互性和沉浸感。

[1] Graphical User Interfaces[OL]. [2016-04-15]. http:// www.middlevr.com/doc/current/# GUI.

[2] Lugrin J, Charles F, Cavazza M. CaveUDK: a VR game engine middleware[J]. Virtual Reality Software and Technology, 2012.

[3] Unity Game Engine[OL]. [2016-04-15]. http://www.unity 3d.com/.

[4] UI[OL].[2016-04-15].http://docs.unity3d.com/Manual/UIS ystem.html.

[5] 羅璇, 馮一洲, 姜忠鼎. 一種面向網(wǎng)絡(luò)游戲的沉浸式顯示框架[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2011, 28(12):1-4.

[6] 謝文斌. 基于游戲引擎的沉浸式立體顯示游戲框架設(shè)計(jì)與實(shí)現(xiàn)[D]. 復(fù)旦大學(xué), 2013.

[7] Multi-display[OL]. [2016-04-15].http://docs.unity3d.com/ Manual/MultiDisplay.html.

[8] Yokoyama S, Ishikawa H. Parallel distributed rendering of HTML5 canvas elements[J]. International Conference on Web Engineering, 2011.

[9] Game UI Discoveries: What Players Want [OL]. [2016-04 -15].http://www.gamasutra.com/view/feature/4286/game_ ui_discoveries_what_players_.php?print=1,

Design And Implementation of Cluster GUI Rendering System Based on Game Engine

Song Hui, Jiang Zhongding
(School of Software, Fudan University, Shanghai 201203, China)

Graphical user interface is an important way of presenting information and interaction for graphical application. The current distributed graphical display system hasn’t fully discussed about cluster rendering of graphical user interface. We present a cluster GUI rendering system based on game engine. We analyze Unity’s UI system, and present key design of the system, including cluster rendering of graphical user interface for LCD array display and UI control synchronization based on game object. Experimental results show that the cluster GUI rendering system is applicable that it can be used to develop both 2D and 3D user interfaces, and has small impact on game engine so that it can provide high performance.

Graphical User Interface; Game Engine; Cluster Rendering

TP311

A

1007-757X(2016)010-0005-05

2016.04.21)

國家自然科學(xué)基金項(xiàng)目(60803064)

宋 輝(1990-),男,復(fù)旦大學(xué),軟件學(xué)院,碩士研究生,研究方向:計(jì)算機(jī)圖形學(xué),上海 201203姜忠鼎(1976-),男,復(fù)旦大學(xué),軟件學(xué)院,副教授,研究方向:計(jì)算機(jī)圖形學(xué),上海 201203

猜你喜歡
圖形用戶界面畫布控件
商業(yè)模式畫布
商界評論(2022年12期)2022-03-06 16:43:01
為什么要在畫布上割一刀?
讓鮮花在畫布上盛開
圖形用戶界面外觀設(shè)計(jì)專利保護(hù)問題探析——以“奇虎訴江民案”為例
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
淺談圖形用戶界面(GUI)技術(shù)專利現(xiàn)狀
電子測試(2018年9期)2018-06-26 06:46:34
圖形用戶界面法律保護(hù)問題與對策
大師的畫布
就這樣玩會(huì)VBA中常見的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
MiniGUI在基于OMAP5912開發(fā)板上的移植
平原县| 邯郸市| 四川省| 灵宝市| 巴林左旗| 庆元县| 论坛| 兴安盟| 焦作市| 大石桥市| 永定县| 镇康县| 寿阳县| 新泰市| 漳浦县| 凭祥市| 宣汉县| 古蔺县| 安吉县| 安义县| 元朗区| 安国市| 成安县| 武宣县| 定兴县| 阿拉尔市| 昭通市| 呼伦贝尔市| 唐海县| 普安县| 永年县| 葫芦岛市| 宜黄县| 融水| 长丰县| 新田县| 普宁市| 饶平县| 大庆市| 青铜峡市| 博湖县|