NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Capitolo 69: J2ME e Mobile 3D.

 

Il package (opzionale) javax.microedition.m3g (M3G, Mobile 3D Graphics) consente la creazione di ambienti tridimensionali da visualizzare su dispositivi mobile.

 

L'API di riferimento ha sigla JSR 184 e definisce un modello di programmazione molto simile a quello di Java3D (le due API, comunque, non sono compatibili).

 

Come in Java3D, infatti, l'ambiente 3D viene definito seguendo il paradigma dello Scene Graph, mentre il rendering dell'ambiente è realizzato automaticamente da M3G (programmazione di alto livello).

 

 

 

M3G consente, comunque, anche una programmazione di basso livello, dove è necessario 'disegnare' manualmente tutto il mondo 3D ed implementare le soluzioni per permettere l'illuminazione, i punti di vista, la resa prospettica ecc... .

 

Da questo punto di vista, la programmazione M3G si avvicina moltissimo a quella di OpenGL ES (Open Graphics Library for Embedded Systems), che fornisce un'interfaccia di basso livello tra la MIDlet e il motore grafico 3D del dispositivo.

 

Per OpenGL ES esiste, comunque, un wrapper J2ME, chiamato Java Bindings for OpenGL ES, che fa sostanzialmente quello che JOGL fa per OpenGL e Java.

 

 

Sviluppare applicativi M3G presenta gli stessi problemi di portabilità descritti per gli applicativi M2G: non tutti i dispositivi supportano tali specifiche.

 

Il package javax.microedition.m3g contiene le seguenti classi:

Node Classe astratta, estesa da tutti i nodi dello Scene Graph.

Quelli nativi sono: Camera, Mesh, Sprite3D, Light, Group (significati ovvi).

World La radice dello Scene Graph.
MorphingMesh Rappresenta una mesh animabile mediante animazione "per-vertice".
SkinnedMesh Rappresenta una mesh animabile.
Appearance Definisce l'aspetto di una mesh (avvalendosi di molte altre classi collegate, come Material, PolygonMode, Texture2D, ...).
Material Definisce l'aspetto del materiale di una mesh, costituito dall'interazione tra la luce e le proprietà di ombreggiatura degli oggetti.
CompositingMode Permette la gestione della composizione del colore "per-pixel".
PolygonMode Definisce gli attributi dei poligoni: culling, normali, shading, ...
Fog Implementa un effetto nebbia.
Texture2D Contiene una texture e le informazioni necessarie per applicarla ad una mesh.
Background Definisce lo sfondo di una scena.
Loader Permette di caricare i nodi di uno SceneGraph da file
AnimationController Controlla l'esecuzione di un'animazione.
KeyframeSequence Sequenza di key-frame, definisce un'animazione.
AnimationTrack "Traccia" di un'animazione, che associa un KeyframeSequence con un AnimationController.
Image2D Un'immagine 2D, utilizzabile ad esempio come texture.
RayIntersection Rappresenta "l'intersezione" con una mesh o una sprite 3D, mantenendo tutte le informazioni relative.
Transform Matrice 4x4 rappresentante una trasformazione (semplice o composita) 3D.
TriangleStripArray Definisce un array di vertici da collegare seguendo il modello di triangolo "a strip".
VertexArray Memorizza tutte i valori necessari a definire un vertice (posizione, normali, colori,... tutti dati memorizzati sotto forma di vettori a tre o quattro componenti).
VertexBuffer Memorizza un insieme di vertici (riusabili, per definire geometrie).
IndexBuffer Permette di creare geometrie, definendo le connessioni dei vertici indicizzati.

 

 

 
Vai all'inizio della pagina