程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> J2ME 3D技術簡介

J2ME 3D技術簡介

編輯:JAVA編程入門知識
  3D技術對我們來說已經非常熟悉了,最常用的3D API有OpenGL和Microsoft的Direct 3D,在桌面游戲中早已廣泛應用。對於J2ME程序而言,Mobile 3D Graphics API(JSR184)的出現,使得為手機應用程序添加3D功能成為可能。
  
  JSR184標准(M3G:Mobile 3D Graphics)為Java移動應用程序定義了一個簡潔的3D API接口,J2ME程序可以非常方便地使用M3G來實現3D應用比如游戲等等。M3G被設計為非常輕量級的,整個API的完整實現不超過150kb。
  
  M3G是J2ME的一個可選包,以OpenGL為基礎的精簡版,一共有30個類,運行在CLDC1.1/CLDC2.0上(必須支持浮點運算),可以在MIDP1.0和MIDP2.0中使用。目前,支持M3G的手機有Nokia 6230/3650/7650/6600、Siemens S65/CX65/S55/M55、Sony-EriCsson K700i/P800/P900、Moto 220/T720等。M3G只是一個Java接口,具體的底層3D引擎一般由C代碼實現,比如許多手機廠商的3D引擎采用的便是SuperScape公司的Swerve引擎,這是一個專門為移動設備設計的高性能3D引擎。
  
  類似於Microsoft的D3D,M3G支持兩種3D模式:立即模式(immediate mode)和保留模式(retained mode)。在立即模式下,開發者必須手動渲染每一幀,從而獲得較快的速度,但代碼較繁瑣;在保留模式下,開發者只需設置好要害幀,剩下的動畫由M3G完成,代碼較簡單,但速度較慢。M3G也答應混合使用這兩種模式。
  
  3D模型可以在程序中創建,但是非常繁瑣。因此,M3G提供一個Loader類,答應直接從一個單一的.m3g文件中讀入全部3D場景。m3g文件可以通過3D Studio Max之類的軟件創建。
  
  假如熟悉OpenGL,那麼M3G是非常輕易理解的。在M3G中,Graphics3D是3D渲染的屏幕接口,World代表整個3D場景,包括Camera(用於設置觀察者視角)、Light(燈光)、Background(背景)和樹型結構的任意數量的3D物體。3D對象在計算機中用點(Point, Pixel)、線(Line, Polyline, Spline)、面(Mesh)來描述,具體存儲和運算(如旋轉、投影)都是矩陣運算和變換。
  
  SUN的WTK2.2已經內置了M3G的實現包,假如安裝了WTK2.2,就可以在模擬器上運行3D MIDP程序。可以參考WTK2.2的示例demo3d。
  
  下面是一個最簡單的M3G程序,來自Sony-Ericsson的示例代碼,它創建一個旋轉的金字塔,可以從 此處下載完整代碼並在WTK2.2中運行。
  
  首先,我們要獲得唯一的Graphics3D實例,用於渲染3D場景。Graphics3D是一個Singleton實現,可以在任何地方獲得:
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved