Форум

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

30 декабря 2015 14:51 #6185
Скажите, планируется ли создание 3D-объектов непосредственно из кода, деформация их и т.д., так же интересно непосредственно создание 3D-текста, и если да, то когда?
Как в программе openjscad
Вот что она умеет
Сделана на базе http://www.openscad.org/
тут вроде тоже JS, WebGl и он вроде открытый… что если прикрутить оттуда? (ну это я так по-нубски предложил)
Дорогу осилит идущий
09 января 2016 00:26 #6364
Скажите, планируется ли создание 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 #6370
Ответ на сообщение пользователя Иван Любовников
По первой ссылке зашел посмотреть - там можно произвести экспорт модели в 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 #6379

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

Раз в 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 #6397
прямо кодом из JS? То есть он должен быть установлен на сервере?… или оно как то отправляется на тот сайт?…

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

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

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

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

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

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