Форум

Создание объектов и 3D-текста кодом

30 декабря 2015 14:51
Скажите, планируется ли создание 3D-объектов непосредственно из кода, деформация их и т.д., так же интересно непосредственно создание 3D-текста, и если да, то когда?
Как в программе openjscad
Вот что она умеет
Сделана на базе http://www.openscad.org/
тут вроде тоже JS, WebGl и он вроде открытый… что если прикрутить оттуда? (ну это я так по-нубски предложил)
Дорогу осилит идущий
09 января 2016 00:26
Скажите, планируется ли создание 3D-объектов непосредственно из кода, деформация их и т.д., так же интересно непосредственно создание 3D-текста, и если да, то когда?

Не планировали, разве что примитивы. Создание сложной геометрии как и текста - специфический функционал, который потребует серьёзной проработки. Вообще, процедурная генерация - интересная тема, которая может быть довольно востребованной. Возможно, в каком-то виде она у нас и появится, но вряд ли в ближайшем будущем.


Как в программе openjscad
Вот что она умеет
Сделана на базе http://www.openscad.org/
тут вроде тоже JS, WebGl и он вроде открытый… что если прикрутить оттуда? smiling-open-mouth (ну это я так по-нубски предложилopen-moth-tightly-closed-eyes)
Интересная штука. В блендере есть близкий по духу аддон Сверчок.
"Прикрутить" - это самый лучший вариант, потому что, зачем нам реализовывать то, что уже сделано до нас. По первой ссылке зашел посмотреть - там можно произвести экспорт модели в stl-формат. Теоретически можно преобразовать эту геометрию в наш формат и подать в функцию override_geometry. Т.е. получится как-то так:
- задаем модель в openjscad
- экспортируем в stl (или в какой-другой)
- парсим stl и формируем вертексный/индексный буферы для b4w
- подаем все, что натворили override_geometry()
Команда Blend4Web
09 января 2016 10:45
Ответ на сообщение пользователя Иван Любовников
По первой ссылке зашел посмотреть - там можно произвести экспорт модели в stl-формат. Теоретически можно преобразовать эту геометрию в наш формат и подать в функцию override_geometry. Т.е. получится как-то так:
- задаем модель в openjscad
- экспортируем в stl (или в какой-другой)
- парсим stl и формируем вертексный/индексный буферы для b4w
- подаем все, что натворили override_geometry()

Раз в b4w можно сгенерировать меш по вертексному/индексному буферу, то можно "прикрутить" функции создания объектов из библиотеки three js. Когда я не знал о blend4web и мне хотелось подружиться с физикой, (использовал canon.js) и там я перебирал с обработкой все координаты вершин, после чего загонял их в этот физический движок и у меня получилось это. Мой исходный код затем попал в проект whitestorm.js. Кстати, в будущем ваш возможный конкурент

Идея взять генератор у three js не нова. Тут не давно мелькало обсуждение проекта A-Frame, и после беглого просмотра исходного кода я увидел те самые функции создания примитивных объектов (просто поиск по слову THREE).

Ну three js умеет кушать и stl, и obj, и колладу и ещё многое что…

Единственно я не знаю как там с лицензией на сорцы, возможно b4w она не подойдёт…
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
09 января 2016 22:07

"Прикрутить" - это самый лучший вариант
Это если вы прикрутите мне то точно это не осилить
- задаем модель в openjscad
прямо кодом из JS? То есть он должен быть установлен на сервере?… или оно как то отправляется на тот сайт?…
парсим stl и формируем вертексный/индексный буферы для b4w
для меня это звучит как "просто генерируем в кулаке черную материю и пускаем файербол"… к сожалению, даже не понимаю, о чем речь
whitestorm.js. Кстати, в будущем ваш возможный конкурент
это вряд ли
то можно "прикрутить" функции создания объектов из библиотеки three js.
все таки без черной магии никак…
Возможно, в каком-то виде она у нас и появится, но вряд ли в ближайшем будущем.
это печально похоже придется постигать высшие материи и что-то думать с Three… А то как же моя библиотека без 3D-текста…
Дорогу осилит идущий
10 января 2016 14:41

Раз в b4w можно сгенерировать меш по вертексному/индексному буферу, то можно "прикрутить" функции создания объектов из библиотеки three js. Когда я не знал о blend4web и мне хотелось подружиться с физикой, (использовал canon.js) и там я перебирал с обработкой все координаты вершин, после чего загонял их в этот физический движок и у меня получилось это. Мой исходный код затем попал в проект whitestorm.js. Кстати, в будущем ваш возможный конкурент

Идея взять генератор у three js не нова. Тут не давно мелькало обсуждение проекта A-Frame, и после беглого просмотра исходного кода я увидел те самые функции создания примитивных объектов (просто поиск по слову THREE).

Ну three js умеет кушать и stl, и obj, и колладу и ещё многое что…

Ну, теоретически, можно прикрутить много чего и сделать мутанта из b4w и threejs. Но мы вряд ли будем таким заниматься. Создание примитивов реализовать довольно легко и самим, если будет необходимость, а насчет поддержки различных форматов - у Blender'а с этим проблем вроде нет.
Команда Blend4Web
10 января 2016 14:59
прямо кодом из JS? То есть он должен быть установлен на сервере?… или оно как то отправляется на тот сайт?…

Честно, не знаю. Тут надо разбираться. Но вроде можно поставить у себя локально на серваке под NodeJS, тогда можно будет загружать jscad-файлы, конвертировать на сервере в stl и отдавать их обратно пользователю.
Команда Blend4Web
10 января 2016 15:03
это печально похоже придется постигать высшие материи и что-то думать с Three… А то как же моя библиотека без 3D-текста…
Так может есть какие обходные пути. По-крайней мере в Blender'е то текст можно нагенерировать. А можно ещё на сервере и запускать его в консольном режиме, чтобы он генерировал текст и отдавал json/bin-файлы, которые потом динамически бы подгружались.

Вообще, мне кажется, что, если нужен только текст, то проще всего будет обойтись одним блендером, тем более он сразу сможет экспортировать все в наш формат.

Также вместо
парсим stl и формируем вертексный/индексный буферы для b4w
можно опять же прогонять все через Blender.
Команда Blend4Web
10 января 2016 23:07

А можно ещё на сервере и запускать его в консольном режиме, чтобы он генерировал текст и отдавал json/bin-файлы, которые потом динамически бы подгружались.
Вот! У меня была такая идея, я подумал, что нереальная… Это технически возможно? Блендер должен быть установлен у хостера на сервере? то есть надо к ним обращаться? команды ему давать Python-ом? (похоже Python я все таки стороной не обойду)
Дорогу осилит идущий
11 января 2016 10:57
Это технически возможно? Блендер должен быть установлен у хостера на сервере? то есть надо к ним обращаться? команды ему давать Python-ом?

Да. У нас, например, в менеджере проектов при создании заглушки проекта запускается в фоне блендер и экспортирует дефолтную сцену.
Команда Blend4Web
11 января 2016 14:13

У нас, например, в менеджере проектов при создании заглушки проекта запускается в фоне блендер и экспортирует дефолтную сцену.
не подскажете, где это посмотреть? попробую разобраться…
Дорогу осилит идущий
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.