User posts ice99
30 January 2018 14:01
Запутался с векторами поворота и кватерионами.
Значит так.
Вот такая конструкция вращает объект вокруг Vec3, который я задаю:
Код отлично работает, когда я хочу повернуть объект вокруг ГЛОБАЛЬНЫХ осей X,Y,Z.
А мне нужно чтобы объект поворачивался вокруг ЛОКАЛЬНОЙ оси.
Мне нужно получить текущее вращение объекта, но функция
Даёт кватерион.
А мне нужен Vec3 для функции m_quat.setAxisAngle.
Как быть в данной ситуации?
Значит так.
Вот такая конструкция вращает объект вокруг Vec3, который я задаю:
var AXIS_X = new Float32Array([1, 0, 0]); // Ось Х
m_quat.setAxisAngle(AXIS_X, (-Math.PI/360 ) * increment, quat_tmp); // Определяем кватерион из текущего положения и приращения
m_transform.get_rotation(obj, quat_tmp2); // Получаем текущее вращение в кватерион
m_quat.multiply(quat_tmp, quat_tmp2, quat_tmp); // Перемножаем текущее положение и требуемый поворот
m_transform.set_rotation_v(obj, quat_tmp); // Поворачиваем объект в новую позицию
Код отлично работает, когда я хочу повернуть объект вокруг ГЛОБАЛЬНЫХ осей X,Y,Z.
А мне нужно чтобы объект поворачивался вокруг ЛОКАЛЬНОЙ оси.
Мне нужно получить текущее вращение объекта, но функция
m_transform.get_rotation(obj, opt_destopt) → {Quat}
Даёт кватерион.
А мне нужен Vec3 для функции m_quat.setAxisAngle.
Как быть в данной ситуации?
25 January 2018 21:08
спасибо за ответ, правда про этот способ я уже где то читал но так и не понял как его реализовать, поскольку в програминг не сильно вьезжаю, но по небольшой инструкции сделать смог бы, правда пока не нашёл ее на просторах).Не пытайтесь сразу сделать игру, где "можно грабить корованы".
Кнопки "сделать красиво" в b4w пока нет, расковыряйте готовые примеры из дистрибутива. Любые.
Проект создавал с такими настройками - Aplication Type - Web player JSONСразу забудьте про webplayer, делайте проект.
Сначала сюда
Потом сюда
P.S. "За выходные" - не получится.
25 January 2018 13:57
Есть модель, в ней есть 3 цветовые плажки сделанные простым меш обьектом, к этим 3м цветовым плажкам подвязана нодовая логика и при нажатии на цветовую плажку модель меняет в соответствии свой цвет.для работы это должны быть 3 разные меша
Возник вопрос как можно сделать эти цветовые плажки активными html элементами, для того чтоб можно было навешать на них каких то стилей. как минимум cursor:pointer при ховере, transition, и тд.3d объекты активными html-элементами никак не сделать. Можно мониторить по канве "нахождение мышки над плашкой", и менять в зависимости от этого курсор (Javascript\Jquery)
Все элементы засунуты в canvas и обратится к ним увы я не понимаю как,делаете в mousemove по канве pickobject вашей сцены, если это плашка - меняете курсор например, или стиль через JS
21 January 2018 20:10
Ответ на сообщение пользователя URAHOVОткрывайте консоль браузера (F12) и смотрите красные сообщения (ошибки). Может быть они просто "not found" в вашей папке. Либо они супернавороченные \ неподдерживаемые. Киньте в ЭТУ ЖЕ сцену plane с простым diffuse, и сделайте превью. Если на plane-e текстура есть - проблема в ваших текстурах.
НЕ отображаются текстуры в браузере, но в блендере отображаются. Помогите как правильно устанавливать текстуры в Blend4Web. В сиклес движке все нормально, а тут незнаю как уже все перерыл и уроков никаких нет.
14 January 2018 16:11
14 January 2018 16:08
В соседней теме ссылкаподнял проблематику, и понял что "разговоры были, но в движке не реализовано". Хотелось, бы, конечно.
14 January 2018 01:22
Ответ на сообщение пользователя kokonПеред запуском анимации выставляйте кадр, с которого нужно начать.
Приветствую всех! Появился новый вопрос. Как продолжить анимацию автоматически, после короткой паузы с того же кадра, на котором она была остановлена. Останавливается анимация кубика, в данному случае, щелчком на невидимой плоскости. В приложении моя попытка это сделать, но анимация всякий раз стартует с первого кадра.
Спасибо за ваши ответы!
set_frame(obj, slot_numopt) → {number}
можно запомнить на каком кадре была остановлена анимация
get_frame(obj, slot_numopt) → {number}
В настройке Блендера есть опция цикличности анимации loop , e.t.c.
14 January 2018 01:18
Ответ на сообщение пользователя Никита КорнеевВсё просто. Демонстрируется не столько объект, сколько рисунок светом на нём. Отсюда и необходимость множества источников с тенями. Свет здесь первичен, объект вторичен.
А для какой задачи это необходимо? Если не секрет. Просто я не совсем представляю сцену для загрузки в неё объектов, при этом для демонстрации обязательно нужно использовать больше 4х источников света, допустим, еще enviroment lighting
13 January 2018 20:42
Ответ на сообщение пользователя Никита Корнеев
Можно в материале трубы подкрутить хаки, чтобы игнорировать внутри трубы действие ноды Material (Extended Material), если материал объекта нодовый, тогда не будет засвета. Но скорее всего, это не то, что вам нужно
Ответ на сообщение пользователя sunsetrain
Ну а если через front/back не рисовать спекуляр на обратной стороне полигонов? Материал тот же будет
Дело в том, что трубу я показал для примера. Ситуация "осложняется" 2-мя обстоятельствами
1. Модель может быть абсолютно любой геометрии
2. Модель автоматически конвертируется блендером (питон), без моего участия. Ну максимум я могу поставить пару галочек в свойствах через тот же питон. Так что "ручного" доступа к модели нет. т.е. стоит задача не конкретной модели, а решения задачи в общем виде.
Коллеги по продукту подсказали что это можно решить через three.js и deffered rendering/shading , но я так понимаю у разработчиков b4w нет четких планов. ( Почитал комменты здесь https://www.blend4web.com/ru/community/article/172/ )
Поскольку deferred shading-а нет в Blender, мы его так же не внедряем. Сейчас идет довольно активное обсуждение планов по будущему Viewport-y (в котором мы тоже участвуем). Тема отложенного рендеринга так же поднимается. Но он не будет стандартом де-факто. Потому что помимо очевидных плюсов в виде возможности использовать большое количество "быстрых" источников света у deferred shading-а есть и серьезные минусы, которые не позволят к примеру с нынешней гибкостью настраивать материалы.
С удовольствием бы пожертвовал гибкостью материалов при deffered.
А можно ли вручную\через костыль реализовать это в приложении? Может системой камер, работой с буфером, рендерингом в текстуру и т.д. ?
12 January 2018 21:09
В мануале к движку написано, что тень могут давать максимум 4-ре источника (либо 3 + Ambient occlusion).
Я подсвечиваю объект 6-ю прожекторами.
Мне нужно не столько кастовать тени, а не подсвечивать закрытые плоскости одного и того же объекта.
Ниже пример.
Взял трубу, свечу на неё сбоку. На внешней стенке блик - отлично. Но что он делает внутри?
Есть ли какой-нибудь способ ограничить проникновение света на закрытые участки объекта для 6-ти прожекторов (ну, 5-ти и более в общем виде)?
P.S. Инверсия нормалей и другой внутренний материал не подойдут.
Я подсвечиваю объект 6-ю прожекторами.
Мне нужно не столько кастовать тени, а не подсвечивать закрытые плоскости одного и того же объекта.
Ниже пример.
Взял трубу, свечу на неё сбоку. На внешней стенке блик - отлично. Но что он делает внутри?
Есть ли какой-нибудь способ ограничить проникновение света на закрытые участки объекта для 6-ти прожекторов (ну, 5-ти и более в общем виде)?
P.S. Инверсия нормалей и другой внутренний материал не подойдут.