[Homebrew] [VDP1] Cargando Una Tetera De 3dStudio

[Homebrew] [VDP1] Cargando Una Tetera De 3dStudio
Artículo
Mensaje [Homebrew] [VDP1] Cargando Una Tetera De 3dStudio 
 
Bien, a pedido de los marinos que siguen en este barco    .
Por fin traigo el tuto de como levantar un objeto en 3D, modelado a su gusto   . Ando un poco complicado, es que se me rompió el rígido de la PC.  



Si no sabes cómo empezar, mira este link primero. Como simpre usaremos el ejemplo S_2_2 .


Bien, vamos a mostrar una tetera creada con 3Dstudio max 7, es la que sale en la solapa teapot; obviamente le vamos a tener que bajar la cantidad de caras.

teapot

Tampoco tocaremos el tema de herencia sobre los modelos, solamente la carga y el pintado.



Una vez creada la tetera, exportamos el archivo como teapot.dxf


Ahora viene un proceso tedioso, yo recomendaría hacer algún batch file para que lo haga automáticamente.

Primero arrojamos el archivo a C:SaturnOrbitTOOLS

Abrimos una ventana de comandos, y escribimos  RB_SaturnDXF.EXE teapot.DXF -o teapot.DXF -x
Luego movemos el archivo a, C:SaturnOrbitTOOLSSSSDK

En la misma ventana de comandos, escribimos y ejecuatamos DXF2SG3.EXE teapot.DXF

Básicamente esto filta los datos innecesarios y ademas lo traduce a las coordenadas de SegaSaturn.




Luego de esto, abrimos el archivo teapot.sg3 con el 3dEditor del SDK.
Podemos ver, que se ve la tetera. Bien ahora lo vamos a "Save as" y colocamos la opción ".MDL "
Bien con esto obtenemos el archivo con todos los datos el cual debemos incluirlo en nuestro código.
Esto ocupara Ram del sistema principal.


Un MDL, tiene la siguiente estructura:

  • POINT point_0[]  : vector que indica donde estan todos los puntos en el espacio.
  • POLYGON    polygon_0[] : vector que indica como esta unida cada cara.
  • ATTR    attribute_0[] : vector que indica por cada cara los atributos que posee, textura, grourad, etc.
  • XPDATA    xpdata_0[] : vector que indica el tamaño que ocupa en memoria.
  • OBJECT    object_0[]: vector que contiene las coordenadas de origen sobre el objeto.


Nuestra variable a manejas sobre este objeto es xpdata_0

Bien ahora vamos con el código. Es muy sencillo incluir un modelo 3D.
Creamos una carpeta dentro del proyecto, "Polygon" donde incluiremos todos nuestros modelos. Lo colocamos ahí.




Dentro de nuestro código debemos incluirlo.
Código: [Descargar] [Ocultar]
  1. #include "Polygon/teapot.mdl"  
  2.  


cree estas variables para manejar la tetera.
Código: [Descargar] [Ocultar]
  1.   FIXED pos1[XYZ];  
  2.      ANGLE ang1[XYZ];      
  3.       
  4.     pos1[X]=toFIXED(0.0);  
  5.     pos1[Y]=toFIXED(35.0);  
  6.     pos1[Z]=toFIXED(220.0);  
  7.       
  8.     ang1[X]=ang1[Y]=ang1[Z]=DEGtoANG(90.0);  
  9.       
  10.  


Dentro del while principal
Código: [Descargar] [Ocultar]
  1.       slPushMatrix();  
  2.       //Guardamos en la pila la matriz actual  
  3.         {  
  4.            slTranslate(pos1[X],pos1[Y],pos1[Z]);  
  5.            //trasladamos el objeto a las posiciones espezificadas.  
  6.             
  7.            slRotY(ang);  
  8.            //Lo rotamos de acuerdo al angulo.  
  9.             
  10.            slPutPolygon((PDATA *)&xpdata_0);  
  11.             
  12.            //lo mostramos  
  13.         }  
  14.         slPopMatrix();  
  15.       //Sacamos de la pila la matriz  
  16.  
        

Personalmente tuve un problema con este objeto y tuve que editarlo a mano (no queda otra opción), algunas coordenadas al ser tan precisas el 3Deditor las transforma como #IND, el cual deberemos reemplazarlo con 0000.
Nuestro compilador no interpreta que es eso, y nos marca que no reconoce lo siguiente -1.#IND entonces nosotros debemos cambiarlo por -1.0000 .
Con un editor de texto, lo hacemos en 2(dos) segundos.

El tema de las matrices es algo complejo, donde se puede usar la herencia entre los distintos objetos 3D.
Requiere de otro tutorial más específico.

PD: envien un MP para el que quiera el proyecto y la iso. No quiero sobre cargar el foro   .



 
 FacundoARG [ 02 Octobre 2009, 06:54 AM ]


[Homebrew] [VDP1] Cargando Una Tetera De 3dStudio
Comentarios
Mensaje Re: [VDP1] Cargando Una Tetera De 3dStudio 
 
Sonic and the magic teapot! Dentro de poco en todas las Sega Saturn!!!

Eres muy bueno tio, espero de verdad que le saques partido.

Un saludo!



 
 DonGloton [ 02 Octobre 2009, 11:39 AM ]
Mensaje Re: [VDP1] Cargando Una Tetera De 3dStudio 
 
DonGloton escribió: [Ver mensaje]
Sonic and the magic teapot! Dentro de poco en todas las Sega Saturn!!!

Eres muy bueno tio, espero de verdad que le saques partido.

Un saludo!


Jaja, Gracias se hace lo que se puede. Y el nombre del juego no esta nada mal, tenemos a Sonic en cada cosa que no me extrañaría que estuviese dentro de una tetera dando vueltas.  



 
 FacundoARG [ 02 Octobre 2009, 02:17 PM ]
Mensaje Re: [VDP1] Cargando Una Tetera De 3dStudio 
 
Gracias por responder a las peticiones de un pedigueño xDD

Buenisimo como siempre , asi da gusto seguir dandole vueltas a la saturn.

Suerte con los problemas del rigido y a ver si se recupera todo



 
 Jean La Montarde [ 03 Octobre 2009, 01:09 PM ]
Mensaje Re: [VDP1] Cargando Una Tetera De 3dStudio 
 
Jean La Montarde escribió: [Ver mensaje]
Gracias por responder a las peticiones de un pedigueño xDD

Buenisimo como siempre , asi da gusto seguir dandole vueltas a la saturn.

Suerte con los problemas del rigido y a ver si se recupera todo


Gracias, a uds. Todavía estoy peleando con el rígido.

Ya voy a subir lo que falta. Luces, cámara y las texturas de un objeto 3D.



 
 FacundoARG [ 03 Octobre 2009, 10:56 PM ]
Mensaje Re: [VDP1] Cargando Una Tetera De 3dStudio 
 
Facu muchisimas gracias por esto otra vez...

Espero poder pasarte resultados bien pronto.

Saludos!!!! Si es que estoy en 50000 cosas!!!!!!!!!!



 
 saturn_worship [ 04 Octobre 2009, 11:55 PM ]
Mostrar mensajes anteriores:    
Ocultar¿Este tema fue útil?
Compartir este tema
Correo a un amigo Facebook Twitter Windows Live Favorites MySpace del.icio.us Digg SlashDot google.com LinkedIn StumbleUpon Blogmarks Diigo reddit.com Blinklist co.mments.com
technorati.com DIGG ITA linkagogo.com meneame.net netscape.com newsvine.com yahoo.com Fai Informazione Ok Notizie Segnalo Bookmark IT fark.com feedmelinks.com spurl.net
Página 1 de 1