User posts Ivan Lyubovnikov
25 July 2016 16:23
вопрос именно как связать их в рамках b4w с источником
для этого можно воспользоваться методом set_translation, либо set_translation_v, например:
var lamp = m_scenes.get_object_by_name("Lamp");
m_trans.set_translation(lamp, 1, 2, 3);
я не нашел такого свойства как TARGET у SPOT в b4Wа его и нет , в вашем случае фиксированной точки подойдет метод append_track - первым параметром подаете лампочку, а вторым - объект, на который она всегда будет смотреть (точнее на центр объекта, для простоты можно добавить empty-объект в нужной точке и использовать его при вызове функции):
var lamp = m_scenes.get_object_by_name("Lamp");
var empty = m_scenes.get_object_by_name("Empty");
m_cons.append_track(lamp, empty);
я так понимаю данные от гироскопа с тем модулем работают только с камеройда, это аддон, поэтому там специфический функционал только для камеры, но можно сделать по аналогии:
// создаем сенсор, отслеживающий углы гироскопа
var g_a_sensor = m_ctl.create_gyro_angles_sensor();
// задаем логику его обработки
m_ctl.create_sensor_manifold(lamp, "ROTATE_GYRO", m_ctl.CT_CONTINUOUS, [g_a_sensor], null, rotate_cb);
// функция-обработчик
var rotate_cb = function(obj, id, pulse) {
// берем углы гироскопа
_curr_angles = m_ctl.get_sensor_payload(obj, id, 0);
// рассчитываем положение лампы
// var x = ?, y = ?, z = ?;
// m_trans.set_translation(lamp, x, y, z);
}
Там могут быть проблемы с текущей ориентацией устройства, но, возможно, в вашем случае это непринципиально.
25 July 2016 15:23
КОРРЕКТИРОВКА: В любом случае при включени ограничения ФПС загрузка замедляется кратно!так и есть: загрузка приложения происходит в том же цикле, что и рендеринг, поэтому фпс, выставленный в app.init() повлияет и на её время
Прошу проверьте!
кстати, если будете использовать динамическую загрузку/выгрузку, после выставления "m_config.set("max_fps", 1);", то возникнут те же тормоза
в будущем постараемся сделать, чтобы этот ограничитель не влиял на загрузку, тогда можно будет беспроблемно выставлять его и в app.init;
а вообще он не слишком точный на значениях от 20фпс и больше подходит для отладочных целей
01 July 2016 10:16
27 June 2016 14:18
Всем Привет у меня вопрос такой как можно сетку (OPAQUE WIREFRAME) показатьВ своем приложении? Тогда нужно включить отладочный режим, передав параметр debug_view: true в m_app.init:
m_app.init({
...
debug_view: true
});
А потом вызвать функцию set_debug_params:
m_debug.set_debug_params({"debug_view_mode": m_debug.DV_OPAQUE_WIREFRAME});
Но он сейчас используется исключительно для отладки, поэтому возможностей его настройки практически нет, плюс к тому же его оптимизацией мы не занимались, поэтому он подойдет далеко не в каждом случае.
14 June 2016 16:43
Есть ли в API движка функция пересчитывающая глобальные координаты в локальные?Можно взять инвертированный TSR объекта, в локальные координаты которого нужно перевести, и применить его к точкам в глоб. пространстве.
Должно быть как-то так:
var m_trans = require("transform");
var m_tsr = require("tsr");
var m_vec3 = require("vec3");
var _tsr_tmp = m_tsr.create();
var _vec3_tmp = m_vec3.create();
...
// obj - объект LineRender
// global_vec - нужная точка в глоб. пространстве
var obj_tsr = m_trans.get_tsr(obj, _tsr_tmp);
var local_vec = m_tsr.transform_vec3_inv(global_vec, obj_tsr, _vec3_tmp);
10 June 2016 19:29
I call a function from my app that opens a div on top of my app by removing a class ( with display none). But once the div is open i can't call the function that opened it… It's Undefined in the context of the div.This is strange, the function should work.
So is the scope off the JS file private to the canvas where the seen is loaded ?If your function is undefined, then there might be a scope issue, but it can't be related to a canvas or to some other html element. You should check the scope where this function is defined and the scope where you're trying to use it. If you have no idea what's wrong, show the code, so I can take a look on it.
I was thinking that i might write another JS file and import it as a module in the main JS file created by the project manager and thereby i could probably import it in the HTML file via another JS file that would import it to?Yes, you can separate your code into different modules if you want. Just load it in the HTML file via <script> and import it in the app via the require method.
10 June 2016 18:51
Или это уже есть и я плохо искал?
Такой функции действительно нет. append_track() поворачивает мгновенно и не подойдет, если нужна плавность. Плавно сработает track_to_target(), но она только для камеры.
Полагаю, что такие громоздкие вычисления лучше спрятать в API движка, а пользователю предоставить готовую функцию.Этот функционал довольно специфичен, поэтому его место может быть только в каком-нибудь аддоне по аналогии с аддоном camera_anim, возможно, сделаем что-то подобное когда-нибудь - для пользователей было бы неплохо иметь такой модуль базовой процедурной анимации.
10 June 2016 17:37
Hi, Daniel.
Are you talking about those texture that's used on a world as "Environment Map" like described here:
https://www.blend4web.com/doc/en/lighting.html#environment-map-method?
This functionality doesn't relate to the node system, so, are you planning to bake env map somehow from a normal-map and use it later as a world's texture like usual env maps?
Are you talking about those texture that's used on a world as "Environment Map" like described here:
https://www.blend4web.com/doc/en/lighting.html#environment-map-method?
This functionality doesn't relate to the node system, so, are you planning to bake env map somehow from a normal-map and use it later as a world's texture like usual env maps?