P3D: Exportar mallas OBJ
Es posible exportar nuestras mallas / objetos 3D desde Processing, a un archivo con un formato común llamado .OBJ
Normalmente estos archivos pueden importarse en software de modelado 3D, render o incluso de impresión 3D.
1 Configuración
Instala la biblioteca OBJExport:
Sketch -> Importar biblioteca -> Añadir biblioteca. Ahí busca: OBJExport y presiona en Instalar
Enlace original de la biblioteca
2 Ejemplo de uso
2.1 Polígonos triangulares y cuadrangulares
Este ejemplo guarda los objetos dibujados entre la función beginRecord( )
y endRecord()
, al iniciar el programa
import peasy.*;
PeasyCam cam;
// importa biblioteca objexport
import nervoussystem.obj.*;
boolean record = true; // cambia a false para no guardar
void setup() {
size(800, 600,P3D);
// cámara a 50 unidades de 0,0,0
new PeasyCam(this, 50);
cam =
// ajusta perspectiva: ve en un rango entre 1 y 500 unidades
perspective(PI/3, 1.0*width/height, 1, 500);
}
void draw() {
background(255);
// Establece "luces" por defecto
lights();
// guía de ejes coordenados con largo de 10
dibujaEjes(10);
// inicia grabación de archivo
if (record) {
beginRecord("nervoussystem.obj.OBJExport", "nombredearchivo.obj");
}
// dibuja aquí:
box(10);
// termina de grabar el archivo
if (record) {
endRecord();
false;
record =
}// cierra draw()
}
void dibujaEjes(float d) {
// esta función dibuja los ejes coordenados X, Y, Z
// de colores R, G, B respectivamente
// d: longitud de las líneas
// eje X: rojo
stroke(255, 0, 0);
line(0, 0, 0, d, 0, 0);
// eje Y: verde
stroke(0, 255, 0);
line(0, 0, 0, 0, d, 0);
// eje Z: azul
stroke(0, 0, 255);
line(0, 0, 0, 0, 0, d);
// regresa al color negro de línea
stroke(0, 0, 0);
// cierra función dibujaEjes( ) }
2.2 Polígonos de más de 4 aristas
Si estás creando mallas con polígonos que no son triángulos ni cuadriláteros (por ejemplo, al crear caras sin modo de dibujo especificado, y/o con bezierVertex( )
), usa la función beginRaw( )
en lugar de beginRecord( )
para que tu archivo consista en la malla teselada (convertida a triángulos) por Processing.