Filippo 3D is my final project for
Golan‘s class, the
Interactive Image. This project is inspired by the idea of drawing in a 3D canvas. After seeing
Amit Pitaru‘s work, the famous
sonic sculptor or the
gesture machines from
Zack Lieberman, I decided to create a small application that allowed to transfer 2D hand strokes into a 3D space.
Download
I’d be really happy to receive feedback for further improvements and/or the PDFs (
360 Sample) you create with it. I hope that the next version will have load/save capabilities since the only possible output right now is into a PDF (or animated series of PDFs) or DXF (an old 3D) format. Enjoy!
/* English ends here :) */
La diferencia con los ejemplos anteriores es que en ellos el dibujo rota en el espacio y el plano de la pantalla –en el cual uno dibuja– se intersecta con el espacio tridimensional en un plano fijo. Lo que quería hacer yo era poder mover ese plano, como si la hoja de papel sirviera para fijar las líneas no en el papel, sino en el espacio construído por ese plano. Dicho de otro modo, un cuaderno que permitiera dibujar, luego mover el cuaderno y dejar las líneas flotando en el aire, en su posición original: la construcción de un plano-andamio para fijar líneas en el espacio.
Finalmente el resultado no es literalmente esta imagen del cuaderno desplazable por el espacio, principalmente porque uno siempre dibuja frontalmente y no tiene sentido mover un plano que será mediado ineludiblemente por el plano de la pantalla. Lo que el programa hace es mover y rotar el modelo para hacerlo coincidir con el plano de dibujo (plano-pantalla); en el fondo es lo mismo pero pero tiene más sentido al momento de dibujar. El modelo matemático que sustenta la traducción de un espacio bidimensional a un espacio tridimensional implica multiplicación de matrices al modo inverso de lo que el computador hace cuando presenta modelos tridimensionales en la pantalla: a cada vértice con ubicación (x,y,z) le asigna su correspondiente (x,y) en la pantalla. Lo que este programa hace es partir de un (x,y) –con un z igual a 0– que se traduce a un espacio tridimensional con rotaciones en los ejes x,y,z.
Traslación en x,y,z:
| 1 0 0 x |
| 0 1 0 y |
| 0 0 1 z |
| 0 0 0 1 |
Rotación en X:
| 1 0 0 0 |
| 0 cosα -sinα 0 |
| 0 sinα cosα 0 |
| 0 0 0 1 |
Rotación en Y:
| cosα 0 sinα 0 |
| 0 1 0 0 |
|-sinα 0 cosα 0 |
| 0 0 0 1 |
Rotación en Z:
| cosα -sinα 0 0 |
| sinα cosα 0 0 |
| 0 0 1 0 |
| 0 0 0 1 |
Multiplicación de Matrices:
| 1 0 0 | | x | | 1 * x + 0 * y + 0 * z |
| 0 1 0 | * | y | = | 0 * x + 1 * y + 0 * z |
| 0 0 1 | | z | | 0 * x + 0 * y + 1 * z |
| A1,1 A1,2 ... | | B1,1 B1,2 ... | | A1,1 [B1,1 B1,2 ...] + A1,2 [B2,1 B2,2 ...] + ... |
| A2,1 A2,2 ... | * | B2,1 B2,2 ... | = | A2,1 [B1,1 B1,2 ...] + A2,2 [B2,1 B2,2 ...] + ... |
| ... ... ... | | ... ... ... | | ... ... ... |
Si bien esta parte es bastante árida, una vez funcionando uno puede olvidarse de eso y enfocarse en cosas más importantes, como para qué puede servir algo semejante 🙂
En fin, Filippo 3D permite hacer varias cosas, entre ellas generar PDFs de las distintas vistas (tecla ‘p’minúscula) y exportar modelos DXF para programas de edición en 3D (tecla ‘d’ minúscula). También permite generar secuencias de PDFs del modelo rotando en el eje Y, (tecla ‘P’ mayúscula). Todo esto queda guardado en la misma carpeta del programa, ojo.
Creo que este programita podría ser útil en las salidas a croquear con una tablet PC. Creo que mis amigos diseñadores y arquitectos podrían sacarle buen partido al asunto. Estén atentos a las próximas versiones del programa que incluirán la capacidad de guardar y cargar dibujos.
Requierimientos
- Targeta gráfica con soporte OPENGL
- Un computador rápido, ojalá con procesador INTEL
- Resolución de 1024 x 768 como mínimo
- mucho tiempo para dibujar
Funciones
- traslación, rotación y escala en 3D
- control de color
- control de grosor de trazo
- exporta PDF de la vista actual
- exporta una serie de 36 PDFs rotando en Y
- exporta modelo DXF para edición 3D
Si lo usan y lo encuentra útil, porfavor dejen comenatrios de cómo podría mejorarse, qué cosas quedan poco claras y qué funciones sería bueno incorporar para la próxima, además de los PDFs (
ejemplo) que hagan con la maquinita, claro.
Agregar un comentario