¿Cómo renderizar modelos 3D como gráficos vectoriales SVG? (proyección plana)


12

ingrese la descripción de la imagen aquí

Esta imagen ( SVG original de Wikipedia , dominio público) se creó mediante el siguiente procedimiento:

  1. Crea un modelo 3D en Google SketchUp
  2. Exportar como PDF
  3. Importar en Inkscape
  4. Guardar como SVG

¿Existe una manera directa de producir un SVG con software que se ejecute (de forma nativa) en Ubuntu? ( Pantógrafo , un complemento de Blender, solo tiene enlaces de descarga rotos; VRM , otro complemento de Blender funciona con Belnder 2.4x, pero no con Blender 2.6x).


Bueno, todo es cuestión de sombras y luces ... no es difícil de hacer, e Inkscape tiene una herramienta 3D, solo que es un rectángulo.
Uri Herrera

Es una cuestión de luz, sombras y perspectiva. Esto es bastante difícil de hacer en Inkscape a menos que todos sus objetos sean rectangulares y estén alineados con los ejes de la cuadrícula isométrica ("3D") de Inkscape.
Jan

Respuestas:


6

Tienes dos opciones:

Opción 1

El primero requiere una compilación reciente de Blender (disponible en Graphicall ), que ahora puede usar el motor de renderizado Freestyle

Freestyle es un software para la representación de dibujos de líneas no fotorrealistas de escenas 3D.

Dentro de Freestyle existe un complemento, SVGWriter , que puede escribir escenas de Blender en SVG. Las instrucciones de uso están disponibles en esa página. A continuación se muestra un ejemplo de su salida:

Procesador original de Blender: ingrese la descripción de la imagen aquí

Salida SVG de estilo libre: ingrese la descripción de la imagen aquí

Freestyle todavía está en desarrollo y puedes seguir su progreso en su blog .

El escritor de SVG de imágenes fijas en SVGWriter actualmente solo representa una imagen, es decir, no puede representar cada fotograma en un SVG. He reescrito el script para hacer esto, y el autor me ha informado que mi modificación se integrará en la descarga principal en una actualización futura. Aquí está la modificación.

opcion 2

La segunda opción solo le permite renderizar curvas bezier. Primero, debe instalar svgwrite para Python 3. Puede hacerlo yendo a la carpeta y ejecutando

sudo python3 setup.py install

Es posible que deba copiar la carpeta svgwrite en .blender / número_versión / python / lib / python3.2 /

Luego debe descargar SVGwriter para Blender. Instala Git y luego ejecuta

git clone git://gitorious.org/blender-2-6-svg-export/blender-2-6-svg-export.git

Dentro de la carpeta descargada, deberá copiar los scripts de Python (los que terminan en .py) y sobrescribir los que se encuentran en ./blender/[version_numberfont>/scripts/addons/io_curve_svg/ o en / usr / lib / blender / scripts / addons / io_curve_svg /.

Finalmente, en Blender, dibuja tu curva bezier y luego ve a Archivo> Exportar> SVG. Aquí hay un ejemplo de la salida

Curva Blender original ingrese la descripción de la imagen aquí

Salida SVG. El grosor de la línea se incrementó para mayor claridad. ingrese la descripción de la imagen aquí


1

Hay muchos complementos gratuitos para Sketchup y uno de ellos hace exactamente lo que necesita, y no necesita comprar Sketchup pro. Por cierto, también puede exportar muchos tipos de formatos 3D a través de complementos gratuitos. Verifique su información antes de dar malos consejos CS Cameron

Aquí está la página del complemento para referencia


Bueno saber. Qué pena que Google no haga una versión de Linux. Lo intentaremos con VirtualBox.
Jan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.