帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
行動3D遊戲繪圖技術發展現況與未來
 

【作者: 鄭育鎔、尤國彰、李宗翰】   2004年07月26日 星期一

瀏覽人次:【5181】

手機行動遊戲的蓬勃發展是最近這兩三年的事,目前我們在台灣所看到的行動遊戲多是以2D方式呈現的Java Download Game居多,但其實行動3D遊戲已經在日本或某些歐洲國家,如芬蘭等漸漸的成熟並被消費者所接受。本文將向各位讀者介紹行動3D遊戲繪圖技術的發展現況,包括一些重要規格的發展現況、硬體的發展現況與趨勢,以及遊戲內容未來可能的發展,讓讀者可以對此領域有更進一步的瞭解。此外,本文所探討的行動3D技術將會以普羅大眾所使用的手機平台為主。


行動3D內容起飛的關鍵 – OpenGL ES

在過去,手機平台之上一直缺乏3D繪圖介面的標準(API),造成內容開發業者開發行動3D遊戲的不便。直到去年8月OpenGL ES標準發表後,這個問題才獲得解決。OpenGL ES規格是由Khronos組織所主導,結合多家行動裝置大廠及圖學組織,包括NOKIA、Motorola、ERICSSON、SGI、ATI、Sun、ARM、TI等公司,並參考目前的OpenGL架構加以刪減而成,其目標是發展出適合於嵌入式系統上輕簡且低階的3D顯像API。


根據三維計算中有理數的使用方式,OpenGL ES訂定了Common – Lite及Common兩種Profile。其中,Common – Lite Profile是使用定點數(Fixed Point)方式來處理有理數的運算,而Common Profile則是使用浮點數(Floating Point)方式來處理有理數運算。這兩種Profile的制定,是針對具備不同能力的嵌入式系統所設計。


現在的嵌入式系統在成本的考量上,大多不會配備浮點數計算硬體,並以軟體方式模擬浮點數的加減乘除運算。這種模擬浮點數方式的運算速度極慢,很難用在需要大量數學運算功能的應用上。


因此,Common – Lite Profile直接將有理數以一個32 bits大小的長整數取代,定義整數與小數位各為16位元(16.16),整數位還須容納一個正負符號,因此最大值為0x8fff.ffff(約為32768.999..)最小單位為0x0000.0001(為1/65536,約為10的負5次方)。在這種模式下,雖然可表示的有理數範圍有限,精準度也不甚高,但由於其內的加減乘除運算,均可由長整數的運算構成,整體計算速度才能達到三維圖學要求。反之,Common Profile為針對已有浮點數運算能力的硬體平台所設計,有理數的數學運算仍用浮點數方式處理,所以可表示的有理數範圍極大,但若在無浮點運算能力的平台上執行,將無法達到要求的速率。


OpenGL ES目前所制訂的版本為1.0版。此版係由OpenGL 1.3版所修改而來,OpenGL ES 1.0版將OpenGL 1.3版的部份較複雜功能移除,留下最核心的基本顯像繪製能力。底下針對幾個重要的3D繪圖功能來說明OpenGL ES1.0版的功能特色。


幾何資料部分:

OpenGL ES考量速度需求將原OpenGL 1.3版的glBegin及glEnd函式從規格中拿掉,不再提供單點單點指定幾何資料的模式,而完全採用幾何資料陣列(Vertex Array)的方式來指定幾何資料。應用程式須將所有幾何資料,包含幾何點座標(Position)、法向量(Normal)、貼圖座標(Texture Coordinate)、顏色值(Color)等。並以每點為單位,存入幾何點陣列中,再根據應用程式的陣列使用旗標(glClientEnable),來決定是否使用這些陣列資料,同時配合glDrawArray及glDrawElement函式,將幾何點陣列資料做繪製。


在三角片顏色繪製的部分:

可指定是由單一顏色(使用glColor)、貼圖效果(Texturing)、光源效果計算(Lighting),或以貼圖與光源兩種效果合成。另外,每個三角片可指定背面測試(Back Face Culling)或視空間切割(View Volume Clipping)。為了在小螢幕上達到較佳的繪製效果,三角片邊界的繪製甚至提供了消除鋸齒(Antialiasing)規格以供使用。


在幾何資料的座標轉換上:

仍然使用堆疊的置入(Push)、取出(Pop)方式來做轉換矩陣的架構管理,矩陣堆疊的大小在幾何資料轉換上(Model-View Matrix),至少得有16層、在視點投影矩陣上(Projection Matrix),至少得有2層,而在貼圖座標矩陣上(Texture Matrix),也至少得有2層。


在貼圖資料的指定上:

可使用的貼圖均須展開為原始顏色資料(Raw Data)。可支援的貼圖模式包括RGB888、RGB565、RGBA4444,與RGBA5551這四種模式,而貼圖的大小至少須支援到64 x 64 Pixels。此外,還可在貼圖上指定小範圍做小貼圖(Sub Image)置換工作。


在光源計算上:

OpenGL ES允許於虛擬3D環境中設定多盞光源,而各光源效果可累加。光源的模式可分為點光源(Point Light)、直射光源(Directional Light)、聚光光源(Spot Light)。與OpenGL相同的是,依照Phong Model、光源和物體材質的參數具有反射光效果(Specular Term),散射光效果(Diffuse Term),環境光效果(Ambient Term),材質上並多了自體發光的效果(Emission Term)。幾何三角片的光源效果計算上,則具有速度較快,以平面法向量計算整片三角片的平面著色(Flat Shading)方式,及速度較慢,以每點法向量計算三角片各點顏色,並以內插法算出其內顏色的平滑著色(Smooth Shading)方式。


除上述之功能外,OpenGL ES 1.0版還包括Scissor Test、Alpha Test、Stencil Test、Depth Test、Alpha Blending、Fog與Polygon offset等功能。


在未來發展藍圖上:

Khronos預計於2004年8月的圖學技術年度國際研討會SIGGRAPH中,發表OpenGL ES 1.1版的規格,並於2005年發表OpenGL ES 2.0版規格。從其規劃方針來看,1.1版的規格主要著重於讓嵌入式硬體的有理數計算能與OpenGL ES得到更多結合,而2.0版則更打算將繪製語言(Shading Language)加入規格中。如(圖一)所示:


《圖一 OpenGL與OpenGL ES的未來發展藍圖》
《圖一 OpenGL與OpenGL ES的未來發展藍圖<資料來源:2003 Siggraph technique overview, Neil Trevett, “Bringing 3D Graphics to Embedded Systems”>》

未來行動3D內容主要的執行平台 – JSR184

目前許多手機如Nokia 6600、Nokia 6100等,都有提供下載與執行Java應用程式(Midlet)的功能。手機之所以能執行Java應用程式(Midlet),是因為手機上搭載了可以即時解譯Midlet內容,及執行的虛擬機器(KVM)。至於手機能執行那些功能的Midlet,則取決於該手機有搭載哪些Profile及Package,例如目前的Java手機都會搭載Mobile Information Device Profile(MIDP)這個Profile。


在2003年的11月,負責制訂Java Profile規格的JCP組織公布了一個可於行動平台上執行3D功能的Package – Mobile 3D Graphics API。Mobile 3D Graphics API簡稱M3G,其Java Specification Request(JSR)的標號為184,是由Nokia這家手機大廠所主導制訂。其它的專家群(Expert Group)成員包括SonyEricsson、Motorola、Siemens、Sun、ARM、Intel、Texas Instruments、HI、Hybrid Graphics、Superscape、Symbian、France Telecom等,舉凡手機大廠、晶片大廠、遊戲開發大廠、嵌入式系統、電信業者等都為專家群(Expert Group)的一份子,可見此規格受重視的程度。在M3G規格底定後,未來的手機將可以隨時下載Java 3D遊戲。M3G的實作架構如(圖一)所示。


《圖二 M3G的實作架構》
《圖二 M3G的實作架構》

除了前面介紹的M3G這個行動平台的Java 3D繪圖函示庫外,JCP組織為了因應某些廠商希望能直接使用OpenGL ES來開發手機Java應用程式的需求,最近開始著手制訂一個Java介面的OpenGL ES Package。此標準的JSR標號為JSR 239,目前第一輪的投票已經通過,整個規格預計在2004年的11月定案。若此標準成立,則本段提到的M3G也將可以實做於JSR 239之上,意即前面架構圖中的Low – Level API是JSR 239,而High – Level部分則是完全以Java透過JSR 239來實作。


行動3D硬體的發展現況

由於OpenGL ES的標準確立,讓許多IC設計廠商也開始投入行動平台3D繪圖晶片的開發。不過與PC平台不一樣的地方是,行動平台的體積必須輕薄短小,且必須能夠節省電力達到長時間使用之目的。因此行動平台3D繪圖硬體的發展,將朝向與其他多媒體功能整合,如整合型單晶片(System on a Chip,SoC)架構,或獨立一顆與基頻IC搭配的Co – Processor架構。


目前此領域的領先者是Imagination Technologies公司,其2D/3D PowerVR MBX技術已經廣為許多大廠所採用,如Nokia、任天堂。而過去大家所熟知PC領域的IC設計大廠Intel,也有取得PowerVR MBX的授權,並開發出符合OpenGL ES標準的繪圖晶片 – Intel 2700G。


PC領域的3D繪圖晶片領導廠商ATi最近也推出了一系列的行動3D繪圖晶片 – Imageon 2300。此晶片更獲得CDMA手機晶片廠商Qualcomm的採用,並將其整合至Qualcomm的MSM 7系列的基頻解決方案中。另一家PC領域的3D繪圖晶片大廠nVidia,則是在今年的3GSM大會發表可程式化行動3D繪圖技術 – AR10。其中特別的是,AR10並非一顆實體晶片而是智材(Intellectual Property,IP)。nVidia將授權AR10核心給其他廠商開發SoC。另一個值得一提的是, TI也在去年取得PowerVR MBX的授權,並將其整合進TI OMAP 2之中,以提供3D繪圖的功能。


國內部分,目前矽統科技已成功開發出一款名為Glamo的Multimedia Co – processor。這顆Glamo具備2D/3D Graphics功能、JPEG Codec、MPEG4 Codec、LCD Controller,以及照相所需的影像處理功能。在3D功能部分,Glamo每秒最高可以處理128萬個多邊型資料(Polygon/Sec),並有每秒3千3百萬個圖素的填色效能(Pixel/sec),其效能已經遠遠超越PS遊戲機的3D處理效能。(圖二)是Glamo的架構說明。


《圖三 Glamo的架構說明》
《圖三 Glamo的架構說明<資料來源:矽統科技>》

隨著照相手機成為漸漸成為標準、未來消費者對於無線影音的需求,及兼具節省用電與體積等考量下,日後的中高階手機上面都可能搭載一顆能夠處理Audio、Video、2D/3D Graphics,以及照相與影像處理功能的多媒體處理器。而專注於不同領域的IC設計業者,如照相手機Backend IC與音效IC等業者將透過取得授權的方式(如ARM的MCU、Imagination 的PowerVR)來整合出這樣的多功能多媒體處理器。


行動3D遊戲的未來可能發展的型態

讀者看到這裡應該有個感覺,就是整個手機環境的軟、硬體發展似乎已經很適合開發3D遊戲了,但實際上要開發手機行動3D遊戲仍然有些問題需要克服,第一個問題是手機上的儲存空間並不多。


目前絕大多數的手機都使用Flash來存放應用程式與資料,Flash記憶體的價格短時間內並無法降到如PC硬碟機的這種超低價格(Kbytes/元)。且在手機上同時會有許多的應用程式,如MMS或Video都要使用Flash記憶體,因此即便手機上有32MB的Flash記憶體,但遊戲程式真正能用的空間並不多。


另一個問題是如何把遊戲程式與遊戲資料安裝到消費者的手機上,在目前熱門的PC或是遊戲機平台這方面,玩家都是到特定商店購買燒錄於CD片中的遊戲,然後再回家進行安裝。不過手機是消費性產品,其重要的特色就是隨身攜帶與方便使用,因此讓消費者取得遊戲程式與資料的方式,必須要隨時隨地且容易的取得與安裝。


要解決上述問題就必須要善用未來雙網環境的WLAN Channel或WCDMA的高頻寬,並藉由動態下載的方式來取得遊戲程式與遊戲場景。如果是Java應用程式,則可以直接利用Over-The-Air(OTA)的方式來得到遊戲程式,並直接透過Java Application Manager來安裝,爾後該遊戲程式再透過MIDP所提供的HTTP功能去取得遊戲場景。


如果是一般的嵌入式環境,則手機上必須預先搭載一個類似遊戲播放器的程式,然後再透過TCP/IP或HTTP等網路通訊協定來取得遊戲資料。此種動態下載遊戲資料的另一個好處是,玩家可以隨著遊戲劇本的設定,源源不絕的取得最新的遊戲內容,甚至還可將遊戲與玩家所在地結合,讓玩家在不同的地點玩不同的遊戲場景。


《圖四 不同展現方式的手機3D人機介面》
《圖四 不同展現方式的手機3D人機介面》

結語

過去幾年有許多研究機構宣稱行動遊戲將在這幾年內會產生很高的產值,然而礙於許多環境面的因素,行動遊戲這個產業在台灣目前的表現仍不理想。至於行動平台上之3D環境的成熟與行動3D遊戲的普及是否會真正帶起行動遊戲的整體產值,則仍有很大的爭論。不過筆者個人認為,其中的一個重要關鍵,是在於遊戲內容與介面的設計必須要站在消費者的角度去思考。


行動遊戲應利用手機隨身攜帶與隨時連網的特性,來協助消費者能夠在短暫的空檔裡利用遊戲愉快的打發時間,或是讓喜愛線上遊戲的玩家可以在沒有PC的環境裡,繼續享受線上遊戲所帶來之群體互動的感受。而在輸入介面的設計上更應力求易學與易用,如此喜愛行動遊戲的玩家群才會增加。


除了行動3D遊戲之外,3D環境的成熟也將讓手機的人機介面以3D的方式呈現,甚至是個人化的3D表現方式,(圖三)是資策會所開發的手機3D介面雛形。@參考資料:註:目前資策會網多所發展出符合OpenGL ES與JSR184標準的Mobile 3D Engine,網多所同時並協助開發雙網環境的行動3D線上遊戲。讀者如果在行動3D繪圖技術有任何的問題或需要更進一步的資訊,歡迎透過E – Mail來與筆者聯絡。


《圖五 資策會網多所開發之手機3D連線賽車遊戲(MS Pocket PC Phone Edition平台)》
《圖五 資策會網多所開發之手機3D連線賽車遊戲(MS Pocket PC Phone Edition平台)》

<作者群為資訊工業策進會 網路多媒體研究所成員,聯絡方式:appleman@iii.org.tw>


延 伸 閱 讀
行動裝置雖然進步飛快,在手機或PDA上玩遊戲打發時間已經是常見的事,但卻很少見到有人在小小的螢幕上執行畫面複雜、高硬體需求的3D遊戲。雖然目前少見,但3D遊戲確實已經出現在行動裝置上,而且產值還以驚人的速度提昇中。相關介紹請見「行動裝置的3D天堂」一文。
在2D遊戲中,由於行動的空間和方式受到很大的限制,玩者是依靠遊戲良好的操作性和自己的思維力、想像力彌補現場感的缺失。而在3D遊戲中,行動的自由度和靈活度有了質的飛躍,玩者能夠借由身體和視線的移動獲得對遊戲世界的直接感知,從而加強感官刺激與認知理解之間的聯繫。你可在「3D vs. 2D」一文中得到進一步的介紹。
行動遊樂器已漸漸從單純的遊戲機走向多媒體播放器,由新一代行動遊樂器強大的繪圖技術和功能來看,PDA與手機等行動裝置在單一功能的發展下,終有一天會被取代。在「從娛樂走向多元的行動遊樂器」一文為你做了相關的評析。
相關組織網站
資策會網路多媒體研究所官方網站
Java Community Process官方網站
Java Specification Requests名單官方網站
相關文章
出口管制風險下的石墨替代技術新視野
用Arduino 打造機器人:循跡、彈鋼琴、下棋都行!
樹莓派推出AI攝影機、新款顯示器
智慧充電樁百花齊放
充電站布局多元商業模式
comments powered by Disqus
相關討論
  相關新聞
» Nordic和Sisvel協力簡化蜂巢式物聯網 SEP 許可流程
» 中華電信拓展數位簽章應用 促進服務更便捷安全
» 趨勢科技網路資安平台擴充AI輔助功能 防止遭誤用與外部濫用
» 遠傳電信營運每年減碳5萬噸 獲施耐德電機永續發展影響力獎肯定
» AI人工智慧再升級 探究國際網路社群治理層面


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.18.119.14.235
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw