Principal | Gráficos 3D | Gráficos 2D | Fractales | Math | Códigos | Tutoriales | Links


Exportacion de un modelo en formato .ASC con el 3D Studio Max

Crear modelos 3D y aplicarle las coordendas de textura uv manualmente, para usarlos desde nuestros programas en C es dificil, me refiero a poner en nuestro codigo las coordenadas de los vertices y las uv de la textura, entonces por que no utilizar por ejemplo el 3d Studio Max para hacer todo eso.

La idea es modelar y texturar con el 3D Studio Max, para despues exportar el modelo por ejemplo en formato .asc, que es un archivo de texto que tiene toda la informacion del modelo.

Unidades y Cuadricula

Voy a usar 3D Studio Max R3.1, voy a crear un plano, aplicarle una imagen como textura para despues exportar el modelo en formato .asc.

Primero las unidades, vamos al menu Customize > Units Setup... alli marcamos Generic Units.

La cuadricula de refencia, como las dimensiones de mi plano va a tener 20 unidades, es conveniente que mi grilla sea de 1 unidad, los pasos son los siguientes en el menu Customize > Grid and Snap Settings... selecionamos Home Grid y ponemos Grid Spacing a 1.0.

Panel Crear

En el Panel Create, seleccionamos la categoria Geometry, y la subcategoria Standart Primitives, luego presionamos sobre el boton del tipo de objeto que deseamos crear, en nuestro caso un plano, boton Plane.

Creamos el Plano

En la ventana Top creamos el plano arrastrando el raton, posteriormente le vamos a dar sus dimensiones exactas desde la ventana de sus parametros, o tambien podemos activar el 2D Snap Toggle, para que el cursor se ajuste a la cuadricula al arrastrar el raton, lo activamos presionando la S en el teclado.

Parametros del Plano

En la persiana de parametros nos muestra la Longitud, el Ancho y el numero de divisiones que tiene el plano que acabamos de crear, tambien nos permite modificar dichos valores para darle las dimensiones que deseamos.

Conversion a una malla editable

Seleccionamos el plano, hacemos click con el boton derecho y seleccionamos Convert to Editable Mesh. Como su nombre lo dice esta operacion convierte al objeto en una malla de poligonos triangulares los que podemos luego podemos editar editar.

Coordenadas uv de textura

Si queremos utilizar una imagen como textura, primero tenemos que aplicarle las coordenadas uv de textura, para eso vamos a utilizar el modificador UVW Map.



Parametros de las uv de textura

En color Naranja vemos el Gizmo de transformacion de este modificador, esto nos muestra como se esta aplicando el mapa uv ,aplicamos un mapa del tipo plano, para ello marcamos Planar y la alineacion en este caso el eje Z.



Creacion de un Material

Vamos a asignar un material, abrimos el Editor de Materiales, Tools > MaterialEditor... seleccionamos la primer ranura y en la ventana de dialogo inferior escribimos "Textura" para asignarle un nombre. Dejo el tipo de sombreado en Blinn, los valores para ambiental, difusa, especular los dejo tal cual. Ahora le voy a asignar una imagen, para ello pulsamos sobre el menu desplegable Maps o en el rectangulo que se encuantra a lado de Diffuse.

Seleccion de la imagen a usar como textura

Se abre el Map Browser, marcamos New y de la lista seleccionamos Bitmap y elegimos la imagen que queremos utilizar como textura, yo utilizo test.jpg..

Asignacion del Material al plano

Una ves seleccionada la imagen nos quedaria algo asi, lo dejamos con sus valores por defecto. Ahora tenemos que asignarle este material a nuestro objeto, para ello primero selecciona el objeto y paso seguido hace click en asignar material, con esto suceden dos cosas, el material del editor queda guardado en la escena y el objeto seleccionado tendra la apariencia del material elegido en la ventana de visualizacion.

Vista del material aplicado

Como vemos el plano toma la apariencia del material que le asignamos. Con esto ya tenemos el plano listo para exportarlo.

Exportacion del plano

Seleccionamos el plano, vamos al menu File > Export..., de la lista elegimos ASC File Export (*.ASC).

Si no te aparece esta opcion es que no tenes el plugins ascout.dle instalado en la carpeta de \Plugins, del Max, eso se debe al tipo de intalacion, tenes que hacer una instalacion Custom y seleccionar todo.

En este ventana ponemos el numero de decimales, con 5 es mas que suficiente recuerden que la salida es un archivo de texto, listo eso es todo.


Archivo .asc de salida

El archivo que obtengo es el siguiente, como ven es un archivo de texto, la idea es leer desde un programa en C, y poder usarar esta info para representar los objetos usando OpenGL, a una cosa este formato no guarda el nombre de las imagenes que usamos como textura, solo las coordenadas uv de textura.

imagen utilizada como textura (jpg, 56 kb)

archivo exportado (asc, 1 kb)

archivo para el 3D Studio Max R3.1 (max, 18 kb)


El archivo te tendria que quedar algo asi:

Ambient light color: Red=0.0431 Green=0.0431 Blue=0.0431

Named object: "Plane01"
Tri-mesh, Vertices: 25     Faces: 32
Mapped
Vertex list:
Vertex 0:  X:-10.0000     Y:-10.0000     Z:0.0000     U:0.0005     V:0.0005
Vertex 1:  X:-5.0000     Y:-10.0000     Z:0.0000     U:0.2502     V:0.0005
Vertex 2:  X:0.0000     Y:-10.0000     Z:0.0000     U:0.5000     V:0.0005
Vertex 3:  X:5.0000     Y:-10.0000     Z:0.0000     U:0.7498     V:0.0005
Vertex 4:  X:10.0000     Y:-10.0000     Z:0.0000     U:0.9995     V:0.0005
Vertex 5:  X:-10.0000     Y:-5.0000     Z:0.0000     U:0.0005     V:0.2502
Vertex 6:  X:-5.0000     Y:-5.0000     Z:0.0000     U:0.2502     V:0.2502
Vertex 7:  X:0.0000     Y:-5.0000     Z:0.0000     U:0.5000     V:0.2502
Vertex 8:  X:5.0000     Y:-5.0000     Z:0.0000     U:0.7498     V:0.2502
Vertex 9:  X:10.0000     Y:-5.0000     Z:0.0000     U:0.9995     V:0.2502
Vertex 10:  X:-10.0000     Y:0.0000     Z:0.0000     U:0.0005     V:0.5000
Vertex 11:  X:-5.0000     Y:0.0000     Z:0.0000     U:0.2502     V:0.5000
Vertex 12:  X:0.0000     Y:0.0000     Z:0.0000     U:0.5000     V:0.5000
Vertex 13:  X:5.0000     Y:0.0000     Z:0.0000     U:0.7498     V:0.5000
Vertex 14:  X:10.0000     Y:0.0000     Z:0.0000     U:0.9995     V:0.5000
Vertex 15:  X:-10.0000     Y:5.0000     Z:0.0000     U:0.0005     V:0.7498
Vertex 16:  X:-5.0000     Y:5.0000     Z:0.0000     U:0.2502     V:0.7498
Vertex 17:  X:0.0000     Y:5.0000     Z:0.0000     U:0.5000     V:0.7498
Vertex 18:  X:5.0000     Y:5.0000     Z:0.0000     U:0.7498     V:0.7498
Vertex 19:  X:10.0000     Y:5.0000     Z:0.0000     U:0.9995     V:0.7498
Vertex 20:  X:-10.0000     Y:10.0000     Z:0.0000     U:0.0005     V:0.9995
Vertex 21:  X:-5.0000     Y:10.0000     Z:0.0000     U:0.2502     V:0.9995
Vertex 22:  X:0.0000     Y:10.0000     Z:0.0000     U:0.5000     V:0.9995
Vertex 23:  X:5.0000     Y:10.0000     Z:0.0000     U:0.7498     V:0.9995
Vertex 24:  X:10.0000     Y:10.0000     Z:0.0000     U:0.9995     V:0.9995
Face list:
Face 0:    A:5 B:0 C:6 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 1:    A:1 B:6 C:0 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 2:    A:6 B:1 C:7 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 3:    A:2 B:7 C:1 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 4:    A:7 B:2 C:8 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 5:    A:3 B:8 C:2 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 6:    A:8 B:3 C:9 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 7:    A:4 B:9 C:3 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 8:    A:10 B:5 C:11 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 9:    A:6 B:11 C:5 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 10:    A:11 B:6 C:12 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 11:    A:7 B:12 C:6 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 12:    A:12 B:7 C:13 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 13:    A:8 B:13 C:7 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 14:    A:13 B:8 C:14 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 15:    A:9 B:14 C:8 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 16:    A:15 B:10 C:16 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 17:    A:11 B:16 C:10 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 18:    A:16 B:11 C:17 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 19:    A:12 B:17 C:11 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 20:    A:17 B:12 C:18 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 21:    A:13 B:18 C:12 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 22:    A:18 B:13 C:19 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 23:    A:14 B:19 C:13 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 24:    A:20 B:15 C:21 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 25:    A:16 B:21 C:15 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 26:    A:21 B:16 C:22 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 27:    A:17 B:22 C:16 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 28:    A:22 B:17 C:23 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 29:    A:18 B:23 C:17 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 30:    A:23 B:18 C:24 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 
Face 31:    A:19 B:24 C:18 AB:1 BC:0 CA:1
Material: "Textura"
Smoothing: 1 

Conclusion

En el proximo voy a hacer lo mismo pero para una caja.

Contacto

Me podes contactar ya sea por mail o por el MSN para hablar un poco de estas cosas, estoy conectado en las noches, despues de las 22 hs de Argentina.

Mail: valcoey@hotmail.com

MSN Messenger: ralcocer29@hotmail.com


Principal | Gráficos 3D | Gráficos 2D | Fractales | Math | Códigos | Tutoriales | Links