2013-02-14 2 views
3

Я хочу отобразить 2D-векторную карту на холсте web.js webgl (с каркасным материалом). Карта изначально из формата dwg, будет преобразована в svg.Векторный клипарт: векторное изображение SVG для фигур Three.js?

Но havent найдёте любые импортеры SVG для three.js.

Есть ли svg-погрузчик/импортер? Или какой-либо другой способ отображения векторных карт?

(я попытался преобразовать его в сетку в 3ds Max и экспорт в .obj, , но она теряет некоторые незамкнутые дорожки и некоторые объекты получают триангулирован поверхность, который оленья кожа хорошо выглядеть в каркасном материале)

В идеале карта была бы импортирована/преобразована в фигуры и видна, как здесь (средний слой с «чистыми формами», без дополнительных вершин и т. Д.) http://mrdoob.github.com/three.js/examples/webgl_geometry_shapes.html

спасибо!

ответ

1

Попробуйте использовать «SVGLoader» (http://threejs.org/docs/#Reference/Loaders/SVGLoader), вам нужно добавить эту функцию, потому что это не в three.js R71, так, вот это «https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/SVGLoader.js»

+1

Спасибо, похоже, хорошее решение – AdvancedTech

+6

Привет, вы можете объяснить, как это было достигнуто? В документации говорится, что svg будет загружен как SVGDocument. Как это будет преобразовано в трехмерную форму? –

-1

Если вы принесете SVG на свою веб-страницу (возможно, в скрытом DIV?), Вы сможете запросить все его компоненты в DOM. Затем нарисуйте элементы three.js, которые вы считаете соответствующими совпадениями.

+0

Didnt найти другие подходящие решения, так и сделали небольшой погрузчик SVG/разбирает (загрузка из файла) с JavaScript а затем постройте строки/элементы оттуда. – AdvancedTech

+0

Да, точно - это позволяет вам создавать примитивы WebGL, которые подходят для вашего конкретного варианта использования. – bjorke

0

Есть два способа:

  1. Использование https://github.com/mattdesl/svg-mesh-3d/
  2. Использование Blender

проблема с SVG-ячеистой-3d является то, что он не делает выдавливания для вас, и everythi ng необходимо запрограммировать. Вот почему Blender - лучший способ. Если вы знаете Blender, вы можете импортировать SVG в него, выдавить и экспортировать в формат JSON через несколько минут. Позже вы используете загрузчик для загрузки JSON в свою анимацию. И если вы не знаете, блендер, вот как это сделать:

https://www.youtube.com/watch?v=rDjhO7r3agc&t=225s

https://www.jonathan-petitcolas.com/2015/07/27/importing-blender-modelized-mesh-in-threejs.html