Como renderizar modelos 3D como gráficos vetoriais SVG? (projeção planar)


12

insira a descrição da imagem aqui

Esta imagem ( SVG original da Wikipedia , domínio público) foi criada usando o seguinte procedimento:

  1. Criar um modelo 3D no Google Sketchup
  2. Exportar como PDF
  3. Importar no Inkscape
  4. Salvar como SVG

Existe uma maneira simples de produzir um SVG com um software que roda (nativamente) no Ubuntu? (O Pantograph , um plug-in do Blender, possui apenas links de download corrompidos; o VRM , outro plug-in do Blender funciona com o Belnder 2.4x, mas não com o Blender 2.6x.)


Bem, é tudo uma questão de sombras e luzes ... não é difícil de fazer, e o Inkscape tem uma ferramenta 3D, apenas um retângulo.
Uri Herrera

É uma questão de luz, sombras e perspectiva. Isso é bastante difícil de fazer no Inkscape, a menos que todos os seus objetos sejam retangulares e alinhados com os eixos da grade isométrica ("3D") do Inkscape.
Jan

Respostas:


6

Você tem duas opções:

Opção 1

O primeiro requer uma compilação recente do Blender (disponível na Graphicall ), que agora pode usar o mecanismo de renderização Freestyle

Freestyle é um software para renderização de desenho de linha não fotorrealista de cenas 3D.

No Freestyle existe um plugin, SVGWriter , que pode gravar cenas do Blender em SVGs. Instruções de uso estão disponíveis nessa página. Abaixo está um exemplo de sua saída:

Renderização original do Blender: insira a descrição da imagem aqui

Saída SVG de estilo livre: insira a descrição da imagem aqui

O Freestyle ainda está em desenvolvimento e você pode acompanhar o progresso no blog deles .

O gravador SVG de imagem estática no SVGWriter atualmente renderiza apenas uma imagem, ou seja, você não pode renderizar cada quadro em um SVG. Eu reescrevi o script para fazer isso, e o autor me informou que minha modificação será integrada ao download principal em uma atualização futura. Aqui está a modificação

opção 2

A segunda opção permite apenas renderizar curvas de bezier. Primeiro, você deve instalar o svgwrite para Python 3. Você pode fazer isso entrando na pasta e executando

sudo python3 setup.py install

Pode ser necessário copiar a pasta svgwrite para .blender / version_number / python / lib / python3.2 /

Você precisa fazer o download do SVGwriter for Blender. Instale o Git e execute

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

Dentro da pasta baixada, você precisará copiar os scripts Python (aqueles que terminam em .py) e substituir os localizados em ./blender/[version_number}/scripts/addons/io_curve_svg/ ou em / usr / lib / blender / scripts / addons / io_curve_svg /.

Finalmente, no Blender, desenhe sua curva de bezier e vá para Arquivo> Exportar> SVG. Aqui está um exemplo da saída

Curva original do Blender insira a descrição da imagem aqui

Saída SVG. A espessura da linha foi aumentada para maior clareza insira a descrição da imagem aqui


1

Existem muitos plug-ins gratuitos para o Sketchup e um deles faz exatamente o que você precisa, e você não precisa comprar o Sketchup pro. A propósito, é capaz de exportar muitos tipos de formatos 3D também através de plugins gratuitos. Verifique suas informações antes de dar maus conselhos CS Cameron

Aqui está a página do plugin para referência


Bom saber. Que pena do Google não criar uma versão para Linux. Vai tentar com o VirtualBox.
Janeiro
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.