User posts Konstantin Khomyakov
09 February 2018 16:40
I'm trying to get shadows to work with shape keys — to move as the shape key moves. Does anyone have any suggestions?Hello,
shadows should work fine with shape keys (example: morphing code snippet).
How do you update shape keys values?
07 February 2018 15:50
Добрый день!
По этому поводу есть небольшая тема на английском форуме: https://www.blend4web.com/en/forums/topic/4177/?page=1#post-20270
По этому поводу есть небольшая тема на английском форуме: https://www.blend4web.com/en/forums/topic/4177/?page=1#post-20270
30 January 2018 21:58
Всё-таки непонятно, почему ваша формулаПонятие поворота вокруг одной из локальных осей координат (или оси заданой в локальной системе координат) возникает только при произвдении кватернионов, которое является последовательностью поворотов. Т.е. можно мыслить так: мы повернули локальную систему координат с помощью одного кватерниона, затем совершили еще поворот вокруг оси "зашитой" во второй кватернион, но уже определяя эту ось в повернутой на первом шаге системе координат.
Math.acos(tmp_quat[3]) * 2
работает только "наполовину" - в точках 180,270,360 ок, а в остальных погрешности в пару градусов. Моих знаний не хватает.
Но в итоге мы получаем результирующий кватернион, в который зашита вообще говоря новая ось вращения (не из 1-го и 2-го исходных кватернионов). То есть угол получаемый по формуле не является углом поворота вокруг локальной (после поворота 1-ым кватернионом) оси Х объекта, отсюда и расхождения.
Наверное не подойдет, т.к. планирую загрузку данных из webstorage (а там еще и историю операций хранить - совсем вешалка), т.е. мне будет видно только последнее состояние системы, без предыстории.Тут немного другое имелось ввиду, не история операций, но в любом случае, если есть возможность просто в логике приложения хранить необходимый угол, то это будет оптимальным и наиболее надежным способом
30 January 2018 19:00
Получить значение поворота ЛЮБОГО объекта сцены в градусах (т.е. локальное положение относительно мира).Внутри движка ориентация объектов хранится в виде кватернионов. Преобразование кватернион -> углы Эйлера не является однозначным в общем случае.
Например (angle_X, angle_Y, angle_Z). Например (45, 267, 310).
Не совсем понял про локальное относительно мира…
Если вам необходимо только знать значение поворота вокруг локальной оси Х, который вы производили, то проще всего будет запоминать его в логике приложения в явном виде.
Либо придется вычислять угол между проекциями векторов до и после поворота на кватернион на локальную плоскость YZ.
30 January 2018 17:52
Что-то всё-равно не так.Ага, сегодня явно не мой день
Во-первых, наверное всё-таки вы имели ввиду
Math.acos(tmp_quat[3]) * 2
1. изменение на реальные 180 градусов.Опишите, пожалуйста, задачу в целом:
2. Очень точные значения в точках 180, 270, 360 градусов.
Но в промежуточных углах разброд и шатание, который не уйдет через округление Math.round
начальная ориентация объекта, какой поворот нужен и какие значения хотите получать итд так понятнее будет
30 January 2018 17:04
Так. Новые вводные.Угол поворота вокруг оси вращения заданной в кватернионе (те по сути угол поворота при вращении через AxisAngle) можно получить как:
Вращаю я так, как мне надо. Сделал даже инкремент вращения на 5 градусов.
Вращаю объект на 180 градусов
Теперь мне нужно ПОЛУЧИТЬ вращение объекта в ГРАДУСАХ.
Делаю так
console.log ((m_transform.get_rotation_euler(obj)[1]*(57.2958)));
Получаю вывод консоли
0..5..10..15.. …..85..90 - казалось бы - получены градусы, но не тут то было поворот от 0 до 180 дает следующий вывод
0..5..10..15.. …..85..90..85..80.. … … 15..10..5.
т.е. до 90 идет нормально, а потом вместо 95 идет 85 и так далее.
т.е. двум положениям соответствует один угол.
Как избежать такой дихотомии?
Или можно как-нибудь получить "человеческие" градусы не через углы Эйлера?
Math.acos(tmp_quat[3]) * 2
30 January 2018 15:36
У вас небольшая ошибка. Вы вычисляете просто квадрат кватерниона.Да, это, конечно, очепятка. Сейчас поправим, чтобы случайно забредших в тему не вводить в заблуждение
Вот так заработало
[UPD] нормализовывать вектор, задающий ось, нужно всегда, для корректной работы m_quat.setAxisAngle
30 January 2018 14:46
30 January 2018 14:33
I made a transparent material with transparent BSDF node in cycle render and inside the blend4web material I activated alpha clip for the material, but I cannot do fastprieview, it stops at 43%. While if I change to alpha blend or sort it works but its not the result that I want.For now BSDF transparent node automatically enables alpha sort transparency.
I want to know whats the problem with alpha clip, how can I have it creating the material inside cycle render?
43% load stop is a bug we'll fix it. We can add alpha clip option for cycles materials if needed
30 January 2018 14:15
Код отлично работает, когда я хочу повернуть объект вокруг ГЛОБАЛЬНЫХ осей X,Y,Z.Нужно заменить порядок перемножения кватернионов:
А мне нужно чтобы объект поворачивался вокруг ЛОКАЛЬНОЙ оси.
m_quat.multiply(quat_tmp2, quat_tmp, quat_tmp2);