成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

全面認識J2ME 3D技術

開發 前端
這里向大家描述一下J2ME 3D技術簡介,對于J2ME程序而言,Mobile3DGraphicsAPI(JSR184)的出現,使得為手機應用程序添加3D功能成為可能。

本文和大家重點學習一下J2ME 3D技術,3D技術對我們來說已經非常熟悉了,最常用的3DAPI有OpenGL和Microsoft的Direct3D,在桌面游戲中早已廣泛應用。

J2ME 3D技術簡介

3D技術對我們來說已經非常熟悉了,最常用的3DAPI有OpenGL和Microsoft的Direct3D,在桌面游戲中早已廣泛應用。對于J2ME程序而言,Mobile3DGraphicsAPI(JSR184)的出現,使得為手機應用程序添加3D功能成為可能。

◆JSR184標準(M3G:Mobile3DGraphics)為Java移動應用程序定義了一個簡潔的3DAPI接口,J2ME程序可以非常方便地使用M3G來實現3D應用比如游戲等等。M3G被設計為非常輕量級的,整個API的完整實現不超過150kb。

M3G是J2ME的一個可選包,以OpenGL為基礎的精簡版,一共有30個類,運行在CLDC1.1/CLDC2.0上(必須支持浮點運算),可以在MIDP1.0和MIDP2.0中使用。目前,支持M3G的手機有Nokia6230/3650/7650/6600、SiemensS65/CX65/S55/M55、Sony-EricssonK700i/P800/P900、Moto220/T720等。M3G只是一個Java接口,具體的底層3D引擎一般由C代碼實現,比如許多手機廠商的3D引擎采用的便是SuperScape公司的Swerve引擎,這是一個專門為移動設備設計的高性能3D引擎。

類似于Microsoft的D3D,M3G支持兩種3D模式:立即模式(immediatemode)和保留模式(retainedmode)。在立即模式下,開發者必須手動渲染每一幀,從而獲得較快的速度,但代碼較繁瑣;在保留模式下,開發者只需設置好關鍵幀,剩下的動畫由M3G完成,代碼較簡單,但速度較慢。M3G也允許混合使用這兩種模式。

◆3D模型可以在程序中創建,但是非常繁瑣。因此,M3G提供一個Loader類,允許直接從一個單一的.m3g文件中讀入全部3D場景。m3g文件可以通過3DStudioMax之類的軟件創建。

如果熟悉OpenGL,那么M3G是非常容易理解的。在M3G中,Graphics3D是3D渲染的屏幕接口,World代表整個3D場景,包括Camera(用于設置觀察者視角)、Light(燈光)、Background(背景)和樹型結構的任意數量的3D物體。3D對象在計算機中用點(Point,Pixel)、線(Line,Polyline,Spline)、面(Mesh)來描述,具體存儲和運算(如旋轉、投影)都是矩陣運算和變換。

SUN的WTK2.2已經內置了M3G的實現包,如果安裝了WTK2.2,就可以在模擬器上運行3DMIDP程序??梢詤⒖糤TK2.2的示例demo3d。

◆下面是一個最簡單的M3G程序,來自Sony-Ericsson的示例代碼,它創建一個旋轉的金字塔,可以從此處下載完整代碼并在WTK2.2中運行。

首先,我們要獲得唯一的Graphics3D實例,用于渲染3D場景。Graphics3D是一個Singleton實現,可以在任何地方獲得:

  1. g3d=Graphics3D.getInstance();  
  2.  

然后,在Canvas中渲染:

  1. publicclassMyCanvasextendsCanvas  
  2. {  
  3. publicvoidpaint(Graphicsg){  
  4. try{  
  5. g3d.bindTarget(g);  
  6. ...updatethescene...  
  7. ...renderthescene...  
  8. }finally{  
  9. g3d.releaseTarget();  
  10. }  
  11. }  
  12.  

 接下來創建一個World并設置Camera:

  1. world=newWorld();  
  2. camera=newCamera();  
  3. world.addChild(camera);  
  4. //Thewidthandheightofthecanvas.  
  5. floatw=getWidth();  
  6. floath=getHeight();  
  7. //Constructsaperspectiveprojectionmatri
  8. xandsetsthatasthecurrentprojectionmatrix.  
  9. camera.setPerspective(60.0f,w/h,0.1f,50f);  
  10. world.setActiveCamera(camera);  
  11.  

 接著,在createPyramid()方法中創建一個Mesh,代表金字塔,并添加到World中:

  1. privateMeshpyramidMesh;//thepyramidinthescene  
  2.  
  3. pyramidMesh=createPyramid();//createourpyramid.  
  4. pyramidMesh.setTranslation(0.0f,0.0f,-3.0f);
  5. //movethepyramid3unitsintothescreen.  
  6. world.addChild(pyramidMesh);//addthepyramidtotheworld  
  7.  

 ***,在一個線程中讓金字塔繞Y軸旋轉起來: 

  1. publicvoidrun(){  
  2. Graphicsg=getGraphics();  
  3. while(true){  
  4. //rotatethepyramid1degreearoundtheY-axis.  
  5. pyramidMesh.postRotate(3.0f,0.0f,1.0f,0.0f);  
  6. draw3D(g);  
  7. flushGraphics();  
  8. }  

【編輯推薦】

  1. J2ME平臺中Cookie技術的應用
  2. J2ME Snake腳本引擎使用手冊
  3. 解析Javascript對select下拉列表操作
  4. 技術分享 如何識別控制DHTML和JS中的頁面元素
  5. 深入學習JavaScript中Function對象語法 

 

責任編輯:佚名 來源: sudu.cn
相關推薦

2010-09-30 10:25:40

J2ME3D

2010-09-30 10:31:43

J2ME3D

2010-09-29 08:57:04

J2ME前景

2010-09-30 13:28:55

J2ME圖形

2010-10-09 14:43:46

J2MEJUnit

2010-09-29 13:50:31

J2MEJ2SE

2010-09-29 09:19:39

J2ME開發工具

2010-10-09 15:58:36

J2ME圖形

2010-09-29 16:06:02

J2ME Unit單元

2010-10-09 15:40:19

CookieJ2ME

2011-05-12 14:34:55

cookieJ2ME

2009-03-22 09:38:03

Android移植J2ME

2010-09-30 09:56:26

J2ME Polish

2009-06-23 11:30:16

RMSJ2ME

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2009-05-26 17:20:51

多線程J2METhread

2009-07-09 16:06:10

JDK J2EE J2

2010-09-28 16:05:36

J2ME技術J2MEWTK

2010-09-29 10:41:18

J2MEJVM

2010-09-29 13:09:48

OTAJ2ME程序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲综合色视频在线观看 | 精品人伦一区二区三区蜜桃网站 | 欧美视频 亚洲视频 | 毛片一级黄色 | 成年人黄色一级毛片 | 视频一区二区三区中文字幕 | 欧美日韩成人在线观看 | 91看片网 | 九九在线| 综合天天久久 | 中文字幕一区二区三区日韩精品 | 91精品国产91久久久久久 | 婷婷色国产偷v国产偷v小说 | 国产亚洲精品一区二区三区 | 韩国欧洲一级毛片 | 国产小视频在线观看 | 精产国产伦理一二三区 | 天天弄天天操 | www天天操 | 福利网址 | 日本一区二区三区在线观看 | 久久久久久精 | 伊人久久精品 | 国产午夜在线 | 久久久久黑人 | 尤物在线精品视频 | 成人午夜精品 | 久久久久久久久国产 | 懂色av一区二区三区在线播放 | 国产精品日日做人人爱 | 两性午夜视频 | 亚洲黄色国产 | 精品成人av | 欧美一级二级三级视频 | 日韩在线综合网 | 久久精品超碰 | 99国内精品 | 毛片一区二区 | 国产精品高潮呻吟久久 | 9191av| 99re视频在线观看 |