User posts Ivan Lyubovnikov
09 January 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()
08 January 2016 23:12
How can I set Canvas Resolution Factor when i export json to my project?This is also can be done through the config module by passing the "canvas_resolution_factor" option in the m_app.init() method.
You can also call config.set() method anytime during the application work to dynamically change the resolution:
m_config.set("canvas_resolution_factor", factor);
08 January 2016 22:45
30 December 2015 11:16
я хочу анимировать объект, допустим куб-пермещение, кодом через API (не просто переместить, а именно анимировать, то есть за определенное количество времени пршел опрделенный путь и это можно наблюдать)
Можете глянуть код в примере Code Snippets -> Camera Animation - там как-раз используется elapsed-сенсор.
Можно использовать метод set_render_callback() для установки своего колбэка, который будет вызываться каждый кадр, остается только постепенно сдвигать объект в течение некоторого времени. Однако, elapsed-сенсор удобнее тем, что возвращает количество времени, прошедшее с предыдущего кадра.
30 December 2015 10:22
29 December 2015 15:16
А как это будет работать? Когда камера будет покидать определённую область сработает колбек, который вернёт предыдущие координаты камеры, так ?Ну, в данном случае сенсор простой - он вызывает колбэк каждый кадр. В нем можно проверить текущие координаты камеры и подвинуть, если нужно. А так можно задавать и более сложную логику вызова колбэка.
Вообще, для подобных действий больше бы подошёл метод set_render_callback() - просто добавляем колбэк перед рендерингом и делаем в нем - что хотим. Это проще, чем разбираться в системе сенсоров. Но сейчас он в некоторых случаях некорректно работает - нам уже жаловались: https://www.blend4web.com/ru/forums/topic/992/. Этот баг мы пофиксим в январском релизе. А вообще, мы планируем поработать с камерой на предмет API для изменения/наследования поведения камеры определённого типа.
29 December 2015 10:55
Вроде подходящего лимита предусмотренного движком для данной ситуации нет.Нет, можно только вообще отключить перетаскивание галочкой "Use Panning Mode".
Поведение камеры можно изменить, используя систему сенсоров. После загрузки приложения, например, в load_cb() можно создать сенсорное множество на камере, которое регистрирует колбэк limit_cam_cb - в нем можно поменять позицию камеры непосредственно перед рендерингом:
var m_ctl = require("controls");
var m_scenes = require("scenes");
function limit_cam_cb(cam, id, pulse) {
...
}
function load_cb(data_id, success) {
var elapsed = m_ctl.create_elapsed_sensor();
var cam = m_scenes.get_active_camera();
m_ctl.create_sensor_manifold(cam, "MANIFOLD_NAME", m_ctl.CT_CONTINUOUS,
[elapsed], null, limit_cam_cb);
}
28 December 2015 14:35
по конкретной сцене - это той, которая грузится первой? То есть он смотрит, что в нулевой сцене нет объектов Selectable и думает, что функция выделения не нужна и не включает ее и для последующих загруженных сцен?Да, всё именно так.
(у меня выставлено AUTO, видимо это по-умолчанию)
хотя на самом деле должно быть написано Objects SelectionДа, ошибочка, поправим.
Про специфику режима AUTO где можно прочитать?Пока нигде, но задача описания этих панелей уже стоит, так что стоит ждать в ближайших релизах.
28 December 2015 11:48
28 December 2015 11:21