Wie kann man 3D-Modelle als SVG-Vektorgrafiken rendern? (planare Projektion)

12

Bildbeschreibung hier eingeben

Dieses Bild ( Original-SVG aus Wikipedia , gemeinfrei) wurde mit folgendem Verfahren erstellt:

  1. Erstellen Sie ein 3D-Modell in Google sketchup
  2. Als PDF exportieren
  3. In Inkscape importieren
  4. Als SVG speichern

Gibt es eine einfache Möglichkeit, eine solche SVG-Datei mit einer Software zu erstellen, die (nativ) auf Ubuntu ausgeführt wird? ( Pantograph , ein Blender-Plugin, hat nur fehlerhafte Download-Links. VRM , ein anderes Blender-Plugin, funktioniert mit Belnder 2.4x, aber nicht mit Blender 2.6x.)

Jan
quelle
Nun, es ist alles eine Frage der Schatten und Lichter. Das ist nicht schwer zu tun, und Inkscape hat ein 3D-Werkzeug, nur ein Rechteck.
Uri Herrera
Es ist eine Frage des Lichts, der Schatten und der Perspektive. Dies ist in Inkscape nur sehr schwer möglich, wenn alle Ihre Objekte rechteckig sind und mit den Achsen des isometrischen ("3D") Rasters von Inkscape ausgerichtet sind.
Jan

Antworten:

6

Sie haben zwei Möglichkeiten:

Option 1

Für die erste Version ist eine neuere Version von Blender (von Graphicall erhältlich ) erforderlich , die jetzt die Freestyle- Rendering-Engine verwenden kann

Freestyle ist eine Software für das nicht-fotorealistische Rendern von Strichzeichnungen aus 3D-Szenen.

In Freestyle gibt es ein Plugin, SVGWriter , mit dem Blender-Szenen in SVGs geschrieben werden können. Anweisungen zur Verwendung finden Sie auf dieser Seite. Unten sehen Sie ein Beispiel für die Ausgabe:

Original Mixer Rendern: Bildbeschreibung hier eingeben

Freestyle-SVG-Ausgabe: Bildbeschreibung hier eingeben

Freestyle ist noch in der Entwicklung und ihr könnt den Fortschritt auf ihrem Blog verfolgen .

Der SVG-Writer für Standbilder in SVGWriter rendert derzeit nur ein Bild, dh Sie können nicht jedes Bild in einer SVG-Datei rendern. Ich habe das Skript dazu umgeschrieben und der Autor hat mich darüber informiert, dass meine Änderung in einem zukünftigen Update in den Hauptdownload integriert wird. Hier ist die Modifikation

Option 2

Mit der zweiten Option können Sie nur Bezierkurven rendern. Zuerst müssen Sie svgwrite für Python 3 installieren . Sie können dies tun, indem Sie in den Ordner gehen und ausführen

sudo python3 setup.py install

Möglicherweise müssen Sie den Ordner "svgwrite" in das Verzeichnis ".blender / version_number / python / lib / python3.2 /" kopieren.

Sie müssen dann SVGwriter für Blender herunterladen . Installieren Sie Git und führen Sie es aus

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

Im heruntergeladenen Ordner müssen Sie die Python-Skripte (die mit .py enden) kopieren und diejenigen überschreiben, die sich entweder in ./blender/[version_number)/scripts/addons/io_curve_svg/ oder in / usr / lib / blender / scripts befinden / addons / io_curve_svg /.

Zuletzt zeichnen Sie in Blender Ihre Bezierkurve und gehen dann zu Datei> Exportieren> SVG. Hier ist ein Beispiel für die Ausgabe

Ursprüngliche Mischerkurve Bildbeschreibung hier eingeben

SVG-Ausgabe. Die Liniendicke wurde zur Klarheit erhöht Bildbeschreibung hier eingeben

hellocatfood
quelle
1

Es gibt viele kostenlose Plugins für Sketchup und eines davon macht genau das, was Sie brauchen, und Sie müssen Sketchup Pro nicht kaufen. Übrigens können auch viele Arten von 3D-Formaten über kostenlose Plugins exportiert werden. Überprüfen Sie Ihre Daten, bevor Sie CS Cameron schlechte Ratschläge geben

Hier ist die Plugin-Seite als Referenz

Wibble
quelle
Gut zu wissen. Was für ein Jammer Google macht keine Linux-Version. Werde es mit VirtualBox versuchen.
Jan