jueves, 30 de junio de 2011

Gaming 3d android blender - gimp - android sdk - opengl - min3d import obj ParteII

Primera parte

http://mberrueta.blogspot.com/2011/06/gaming-3d-android-blender-gimp-android.html?spref=tw

 

Ahora vamos a importar el obj usando min3d

http://code.google.com/p/min3d/

en alguna carpeta, descargamos el código de min3d

svn checkout http://min3d.googlecode.com/svn/trunk/ min3d-read-only 

o con tortoise checkout  http://min3d.googlecode.com/svn/trunk/ 

creamos en eclipse una nueva aplicacion android (yo use la 2,1)

copio la carpeta src a mi carpeta src, para incluir el código fuente de min3d a mi proyecto

http://developer.android.com/resources/tutorials/hello-world.html

 

Creamos en nuestro proyecto , dentro de la carpeta de recursos "res" una carpeta "raw" y ahi ponemos el archivo obj y el mtl

IMPORTANTE cambiar el puntito por un guion bajo "ejemplo.obj" y "ejemplo.mtl" por "ejemplo_obj" y "ejemplo_mtl"  y las texturas, si las hay en drawable

 

ahora, en la clase main creada por defecto ponemos (pongo todo el codigo, desp explico cosa por cosa)

 

package b.android.games.ThirdGame;

 

import min3d.core.Object3dContainer;

import min3d.core.RendererActivity;

import min3d.parser.IParser;

import min3d.parser.Parser;

import min3d.vos.Color4;

import min3d.vos.Light;

 

public class ThirdGameActivity extends RendererActivity {

 

private Object3dContainer objModel;

 

private Light light;

 

@Override

public void initScene() {

 

//Luces de la escena

light = new Light();

light.ambient.setAll((short) 255, (short) 255, (short) 255, (short) 255);

light.position.setAll(3, 3, 3);

scene.lights().add(light);

 

//Color de fondo 

scene.backgroundColor().setAll(new Color4((short) 30, (short) 30, (short) 30, (short) 255));

 

//Importacion de obj

IParser parser = Parser.createParser(Parser.Type.OBJ, getResources(),

"b.android.games.ThirdGame:raw/mathbox_obj", true);

parser.parse();

objModel = parser.getParsedObject();

//Resize del objeto

objModel.scale().x = objModel.scale().y = objModel.scale().z = .5f;



//Agregado a la escena

scene.addChild(objModel);

 

}

 

@Override

public void updateScene() {

 

//Este metodo se ejecuta todo el tiempo cuando actualiza la escena

//Hace que rote el objeto, pueden jugar con la posicion, rotacion, en el eje que quieran

objModel.rotation().x++;

objModel.rotation().y++;

 

}

}

 

No hay comentarios.: