由用户创建的信息 Ivan Lyubovnikov
01 August 2017 12:49
Hi Charlie, what java version is installed on your Mac? There already was a problem with Java in other topic: link.
01 August 2017 12:40
My intention is to have each scene in a separate html/js file rather than pack everything in one file. This is to reduce load time at the start of the project.Hi, are you talking about dynamic loading? In that case you just need only json/bin files exported from a blend scene. They can be used with the data.load/data.unload methods. There's a dedicated tutorial here: Furnishing a Room Part 1: Dynamic Loading.
Also user will only load a scene if he chooses it and need not load all the scenes.
But problem is, the view is not changing. It is stuck in "Scene.001" which is the first(default) scene.scene.set_active doesn't change the view automatically, in fact you can't do it at all. If you want to change the view, you have to do it manually by placing the camera from the default scene into the position of other cameras. I think you can do it via the get_tsr/set_tsr methods:
var m_scenes=require("scenes");
var m_trans = require("transform");
var main_cam = m_scenes.get_active_camera();
var another_cam = m_scenes.get_object_by_name("Camera.005");
var cam_tsr = m_trans.get_tsr(another_cam);
m_trans.set_tsr(main_cam, cam_tsr);
01 August 2017 12:13
Здравствуйте,
Вообще, в движке здесь 2 принципа: для вращений использовать кватернионы, а углы представлять в радианах - API также на этом завязано. Если вращение нужно получить в другой форме, то можно использовать специальные методы для преобразования, например: util.quat_to_euler и util.euler_to_quat для перевода кватернионов в углы Эйлера и наоборот, также util.rad_to_deg и util.deg_to_rad для перевода из радианов в градусы.
Вообще для проведения различных преобразований есть много полезных методов в модулях vec3/vec4/mat3/mat4/quat - это по сути популярная библиотека glMatrix.
Где можно прочитать про все углы, измерения про вращения? Всякие кватернионы, радианы, градусы и то, что в Blender.- сейчас информация об этом есть, пожалуй, только в разделе про кватернионы, на который вы ссылаетесь.
Вообще, в движке здесь 2 принципа: для вращений использовать кватернионы, а углы представлять в радианах - API также на этом завязано. Если вращение нужно получить в другой форме, то можно использовать специальные методы для преобразования, например: util.quat_to_euler и util.euler_to_quat для перевода кватернионов в углы Эйлера и наоборот, также util.rad_to_deg и util.deg_to_rad для перевода из радианов в градусы.
А как получить градус поворота объекта?Вот как-то так:
var m_trans = require("transform");
var m_util = require("util");
var quat = m_trans.get_rotation(my_obj);
var euler = m_util.quat_to_euler(quat);
var x = m_util.rad_to_deg(euler[0]);
var y = m_util.rad_to_deg(euler[1]);
var z = m_util.rad_to_deg(euler[2]);
Разницу между двумя значениями по кватернионам?Тут надо перемножить кватернион на обратный второго:
var m_quat = require("quat");
// quat1 - quat2
var quat_diff = m_quat.mul(quat1, m_quat.invert(quat2, quat2));
А еще выполнить плавное вращения объекта по кватернионам.Есть функция quat.slerp для интерполяции кватернионов - её можно использовать анимируя входной параметр t от 0 до 1:
var m_time = require("time");
var m_quat = require("quat");
// в течение 5 сек.
m_time.animate(0, 1, 5000, function(value) {
m_quat.slerp(quat1, quat2, value, res_quat);
m_trans.set_rotation_v(my_obj, res_quat);
});
Вообще для проведения различных преобразований есть много полезных методов в модулях vec3/vec4/mat3/mat4/quat - это по сути популярная библиотека glMatrix.
01 August 2017 10:50
01 August 2017 10:24
Если проблема та, о которой я думаю, то вам поможет пересчет координат: ссылка
- для нодовой логики это происходит автоматически.
- для нодовой логики это происходит автоматически.
31 July 2017 10:31
28 July 2017 17:15
28 July 2017 14:34