如何将 3D 模型渲染为 SVG 矢量图形?(平面投影)

Jan*_*Jan 12 svg software-recommendation 3d

在此处输入图片说明

该图像(来自维基百科的原始 SVG,公共领域)是使用以下过程创建的:

  1. 在 Google Sketchup 中创建 3D 模型
  2. 导出为 PDF
  3. 在 Inkscape 中导入
  4. 另存为 SVG

有没有一种直接的方法可以使用在 Ubuntu 上(本地)运行的软件来生成这样的 SVG?(受电弓,一个 Blender 插件,只有断开的下载链接;VRM,另一个 Blender 插件适用于 Belnder 2.4x,但不适用于 Blender 2.6x。)

hel*_*ood 6

您有两个选择:

选项1

第一个需要最近构建的 Blender(可从Graphicall 获得),它现在可以使用Freestyle渲染引擎

Freestyle 是一款用于从 3D 场景渲染非真实感线条绘图的软件。

在 Freestyle 中有一个插件SVGWriter,可以将 Blender 场景写入SVG。该页面提供了使用说明。下面是它的输出示例:

原始搅拌机渲染: 在此处输入图片说明

自由式 SVG 输出: 在此处输入图片说明

Freestyle 仍在开发中,您可以在他们的博客上关注其进展。

SVGWriter 中的静态图像 SVG 编写器目前仅渲染一个图像,即您无法将每一帧渲染为 SVG。我已经重写了脚本来做到这一点,作者告诉我,我的修改将在未来的更新中集成到主下载中。这是修改

选项 2

第二个选项只允许您渲染贝塞尔曲线。首先,您必须为 Python 3安装svgwrite。您可以通过进入文件夹并运行来完成此操作

sudo python3 setup.py install
Run Code Online (Sandbox Code Playgroud)

您可能需要将 svgwrite 文件夹复制到 .blender/version_number/python/lib/python3.2/

然后,您需要为 Blender下载SVGwriter。安装 Git 然后运行

git clone git://gitorious.org/blender-2-6-svg-export/blender-2-6-svg-export.git
Run Code Online (Sandbox Code Playgroud)

在下载的文件夹中,您需要复制 Python 脚本(以 .py 结尾的脚本)并覆盖位于 ./blender/[version_number]/scripts/addons/io_curve_svg/ 或 /usr/lib/blender/scripts 中的那些/addons/io_curve_svg/ 。

最后,在 Blender 中,绘制您的贝塞尔曲线,然后转到文件 > 导出 > SVG。这是输出的示例

原始 Blender 曲线 在此处输入图片说明

SVG 输出。为清晰起见,增加了线条粗细 在此处输入图片说明