行動3D技術日趨成熟,硬體運算速度也持續升級,行動3D遊戲勢將成為基本娛樂配備。隨著雙螢幕、觸控式螢幕、硬體能力提升,以及J2ME技術的發展,手機3D遊戲程式將逐漸成為主流。從行動3D人機介面的發展來看,未來手持式裝置採用3D介面也是大勢所趨,3D化將是未來手持裝置內容應用的必然發展方向,更活潑且多元的3D數位內容將在手機平台上展現。
行動3D技術日趨成熟,硬體運算速度也持續升級,行動3D遊戲勢將成為基本娛樂配備。隨著雙螢幕、觸控式螢幕、硬體能力提升,以及J2ME技術的發展,手機3D遊戲程式將逐漸成為主流。從行動3D人機介面的發展來看,未來手持式裝置採用3D介面也是大勢所趨,3D化將是未來手持裝置內容應用的必然發展方向,更活潑且多元的3D數位內容將在手機平台上展現。
隨著多媒體手機的普及,越來越多相關應用被開發出來,除了可作為照相機、隨身聽外,更可作為掌上型遊戲機。目前手機內建的遊戲受限於硬體規格與效能,大多以二維(2D)方式呈現,但隨著行動三維(3D)技術日趨成熟,配合硬體規格的升級,行動3D遊戲勢將成為基本娛樂配備,因此3D化將是未來手持裝置內容應用的必然發展方向。
本文針對目前的手機3D技術,包括JSR184、OpenGL ES,以及微軟Direct3D Mobile等,介紹行動3D繪圖技術發展現況,包括現行一些重要規格與相關軟硬體發展現況和趨勢。此外,本文探討的行動3D技術以一般大眾使用的手機平台為主。
行動3D遊戲尚無統一標準
愈來愈多消費者開始在不同的手機平台上體驗3D遊戲的快感,而以目前的裝置平台來看,主要有微軟Windows CE、嵌入式Linux、Palm、Symbian等作業系統,分別都有各自支援的繪圖函式庫,但是對於內容開發業者來說,沒有一個統一的標準,在行動 3D遊戲的開發上會造成不便,在繪圖標準上,也存在很大的分歧。
在行動3D遊戲的發展上,資策會網多所亦於2003年自行開發行動3D引擎(Mobile 3D Engine),並協助開發雙網環境的行動3D線上遊戲(圖1)。
微軟Direct3D Mobile日益壯大
由於微軟在行動裝置上的Windows CE家族日漸龐大,並占有一席之地,因此微軟便將其在個人電腦平台上推展成功的DirectX移植到Windows CE上,並且在目前最新的5.0版之中已可見到。
Windows CE中的3D開發平台稱為Direct3D Mobile,提供以Windows CE平台為架構的3D圖學應用程式,是移植自個人電腦平台的簡化行動版。由此觀之,微軟希望利用DirectX在個人電腦平台上的優勢,一舉整合手持式作業系統的繪圖平台的意圖相當明顯。
Direct3D Mobile支援多項繪圖處理功能,包括後台緩衝(Back Buffers)、畫面交換(Page Flipping)和點陣傳送(Blitting)等,而且除了全螢幕模式之外,也支援視窗模式。與個人電腦平台上的Direct3D相比,其差異性在於 Direct3D Mobile並不能進行直接存取視訊記憶體的動作,因此在程式設計方面會受到些許限制。
基本上,Direct3D Mobile的開發是以DirectX 8的繪圖函式為基礎,並加入一部分DirectX 9功能,以元件物件模型(Component Object Model, COM)為基礎的程式開發模型,以確保程式開發人員能夠任意結合各種應用程式與3D介面。
Direct3D Mobile試圖整合繪圖標準的立意相當不錯,但由於本身屬於微軟的封閉式產品,也只能在微軟作業系統中使用,因此對於應用程式開發廠商在開發跨平台的3D視覺應用程式上,造成移值性不足的缺憾。
雖然採用微軟Windows CE作業系統的手持式裝置,目前市占率已經達到三成左右,但是非微軟作業系統的手持式裝置仍舊占有絕大部分,這一點和微軟在個人電腦平台上具有的絕對優勢仍有不小的差距。封閉性的問題,使得開放式、跨平台的繪圖標準無法實現,因此軟體開發廠商大多使用另一個共通的繪圖標準-OpenGL ES(OpenGL for Embedded Systems),來作為硬體與軟體的研發與推展標準平台。
開放式標準OpenGL ES解決API互通問題
行動電話業者為了避免在個人電腦3D遊戲市場早期使用各種專用應用程式介面(API)所造成的問題,因此結合主要手機製造商、晶片供應商、繪圖引擎及軟體供應商、遊戲開發商,以及基礎設備開發商等,針對這些潛在問題進行廣泛合作,以確保能夠採用一致的API。
在此需求下,一個開放式、跨平台的行動3D繪圖標準-OpenGL ES在2003年8月問世,並解決了上述的問題。OpenGL ES規格是由Khronos組織主導,結合多家行動裝置大廠及圖學組織,包括諾基亞、摩托羅拉、易利信、視算科技(SGI)、ATI、昇陽(Sun)、安謀(ARM)、德州儀器等公司,並參考目前的OpenGL架構加以刪減而成,目標是發展出適用於嵌入式系統上輕簡且低階的3D顯示應用程式介面。
Khronos組織提出的OpenGL ES為廠商提供跨平台的3D繪圖應用程式介面,專門用來滿足行動裝置的軟體需求和硬體能力。OpenGL ES也是一套開放式的跨平台嵌入式繪圖標準,提供與作業系統無關的標準繪圖函數中介層,以供應用程式及繪圖晶片使用,除了提供相當於標準OpenGL的繪圖函式功能以外,並可大幅減少記憶體使用量,在最佳化的情況之下,甚至可將應用程式的體積減到50kB以下,這對於記憶體空間錙銖必較的手持式裝置而言,是非常重要的一項好處。
根據三維計算中有理數的使用方式,OpenGL ES訂定了Common-Lite及Common兩種設定檔(Profile)。其中,Common-Lite設定檔是使用定點數(Fixed Point)方式來處理有理數的運算,而Common設定檔則是使用浮點數(Floating Point)方式來處理有理數運算。
這兩種設定檔的制定,是針對具備不同能力的嵌入式系統所設計。資策會網多所目前已發展出符合OpenGL ES 1.0版的繪圖引擎,並致力於行動3D遊戲與行動3D人機介面的開發。另外針對精確度更嚴謹的航空,軍事等特殊領域的需求,制定了另一種Safety Critial設定檔。
目前OpenGL ES已經發展到2.0版,主要是基於著色引擎Shader的標準,將繪製語言(Shading Language)加入規格之中,不但在架構上有一番變動,而且並不回溯支援舊的1.1與1.0版。由於OpenGL ES 2.0的可程式化Shader引擎,因此讓內容開發者能充分控制繪圖管線,並精確的定義如何處理頂點(Vertex)或畫素(圖2)。
M3G陣營大廠雲集
許多手機都提供下載與執行Java應用程式(Midlet)的功能。之所以能執行Java應用程式,是因為搭載了可即時解譯Midlet內容並執行的虛擬機器(KVM)。至於手機能執行哪些Midlet,則取決於該手機搭載的設定檔及套件,例如目前Java手機都具備行動資訊裝置設定檔(MIDP)。
在2003年11月,負責制訂Java設定檔規格的JCP組織公布了一個可於行動平台上執行3D功能的套件-行動3D圖形應用程式介面(Mobile 3D Graphics API, M3G),其Java規格要求(JSR)的標號為184,是由諾基亞主導制訂。
其他專家群成員包括索尼愛立信、摩托羅拉、西門子、昇陽電腦、安謀、英特爾、德州儀器、HI、Hybrid Graphics、Superscape、Symbian,以及法國電信等。
舉凡手機大廠、晶片大廠、遊戲開發大廠、嵌入式系統與電信業者都是專家群的一分子,可見此規格受重視的程度。在M3G規格底定後,未來手機將可隨時下載Java 3D遊戲(圖3)。
JSR184在一個套裝軟體中提供三維圖形功能,適用於支援最為廣泛採用的J2ME、有線連接設備配置(CLDC)和行動資訊設備描述(MIDP)設備。 JSR184規範了在行動裝置上的3D應用程式介面,這組應用程式介面跟Java3D的能力差不多,不過其目標主要是針對手機之類的平台,一方面主要是受於手機計算能力大幅進步之賜,另一方面則可利用此規格來將輸出用的3D模型的檔案格式予以最佳化。JSR184目前已是中高階手機在Java 3D上的標準規格,在JSR184的開發上,資策會網多所已於2005年完成JSR184的實作,並技轉給手機廠商(圖4)。
除了JSR184行動平台的Java 3D繪圖函式庫外,2004年JCP組織也為了因應某些廠商希望能直接使用OpenGL ES來開發手機Java應用程式的需求,而制訂了一個Java介面的OpenGL ES套件。此標準的JSR標號為JSR239,定義了一個幾乎與OpenGL ES的C介面相同的Java應用程式介面,使現有OpenGL ES 內容的移植更為容易。
目前諾基亞正提出J2ME 3D的新版本API-JSR297,不但增加新款可程式化繪圖晶片的支援,同時改善效率上的表現。JSR297可說是JSR184的更新與提升版本。
手持式裝置3D介面漸成主流
從行動3D遊戲的發展來看,隨著雙螢幕、觸控式螢幕、互動性、處理大量畫素等硬體速度能力的提升,以及J2ME技術的發展,手機3D遊戲程式將逐漸成為主流,更可能威脅任天堂及新力等遊戲機公司。
為了提供消費者更多樣化的遊戲,並滿足手機隨身攜帶與方便使用的特性,可善用雙網環境的WLAN通道或WCDMA的高頻寬,並藉由動態下載的方式來取得遊戲程式與遊戲場景。
如果是Java應用程式,則可以直接利用無線傳輸的方式來得到遊戲程式,並直接透過Java應用程式管理員來安裝,爾後該遊戲程式再透過MIDP提供的HTTP功能取得遊戲場景。
如果是一般的嵌入式環境,則手機上必須預先搭載一個類似遊戲播放器的程式,然後再透過TCP/IP或HTTP等網路通訊協定來取得遊戲資料。
此種動態下載遊戲資料的另一個好處是,玩家可以隨著遊戲劇本的設定,源源不絕取得最新遊戲內容,甚至可將遊戲與玩家所在地結合,讓玩家在不同的地點玩不同的遊戲場景。
另一方面,從行動3D人機介面的發展來看,由於遊樂器以及個人電腦遊戲軟體幾乎已經全面3D化,再加上微軟即將推出的視窗Vista作業系統中的提供了Flip 3D介面與特效(圖5)。以未來的發展應用而言,手持式裝置採用3D介面似乎更顯有其必要性。
由於手機平台的螢幕解析度通常不高,使用傳統2D介面時,為了確保每個圖示及文字都能清楚辨識,在大小外觀上通常都採用固定不變的方式,而在處理應用程式時,為了取得最大的可視範圍,軟體一開啟執行便是全螢幕模式,幾乎沒有調整的空間,這對於有同時開啟數種應用程式作業習慣的使用者而言,會造成相當大的不便。
如果採用3D方式來設計人機介面,便可以利用3D空間概念中的Z軸,形成虛擬的空間,不論在執行視窗的堆疊、切換、便可利用更有效率的方式進行。或許有人會對手機平台引入3D視覺設計的必要性產生懷疑,畢竟以目前的硬體效能來看,3D運算處理會是對於手機平台的效能及電池殺手。不過在新款獨立繪圖晶片紛紛問世,處理能力及省電效果不斷改善,以及手機平台本身的記憶體及儲存空間可以擴充,加上電池技術的持續發展,在主客觀環境逐漸成熟之下,這方面的應用相當值得期待。
隨著數位行動的時代來臨,大眾對行動電話的需求與日俱增,由於硬體效能的不斷提升,在手機平台上,更活潑且多元的3D數位內容將隨之而起。不過有一點要特別注意的是,遊戲內容與介面的設計必須站在消費者的角度去思考,如此一來才能更貼近消費者,讓消費者感覺到3D視覺化介面有其存在的必要。
行動遊戲應利用手機隨身攜帶與隨時連網的特性,來協助消費者能夠在短暫的空檔裡利用遊戲打發時間,或是讓玩家可在沒有個人電腦的環境裡繼續享受線上遊戲。而在輸入介面的設計上,更應力求易學與易用,如此喜愛行動遊戲的玩家群才會增加。除了行動3D遊戲之外,3D環境的成熟也將讓手機的人機介面以3D方式呈現,甚至是個人化的3D表現方式。