User posts Ivan Lyubovnikov
12 October 2016 11:09
12 October 2016 11:02
нужно обновлять вместе и аддон и SDK, вот здесь в доке есть подробная инструкция: https://www.blend4web.com/doc/ru/setup.html#updating
чуть подробнее об ошибках совместимости написано здесь: https://www.blend4web.com/doc/ru/addon.html#compatibility-errors
чуть подробнее об ошибках совместимости написано здесь: https://www.blend4web.com/doc/ru/addon.html#compatibility-errors
12 October 2016 10:56
Почему, если быстро двигать камеру или объект если двигается, то блымкают горизонтальные линии? Причем 60fps показывает.это тиринг: https://en.wikipedia.org/wiki/Screen_tearing - проблема синхронизации монитора и видеокарты, по идее vsync и тройная буферизация должны помогать;
баги ещё могут зависеть и от конкретного графического окружения, например, у меня под линуксом в гноме наблюдается такой же тиринг на канвасе
07 October 2016 17:43
07 October 2016 17:14
странно, у меня ваш файл работает
можно подебажить,
например, если закомментировать следующие строчки, то все должно работать по старому:
здесь вообще 1 означает лев. клавишу, 2 - колесо, 3 - правую
по этим условиям:
- для 1 осуществляется поворот; для 2,3 - паннинг, вроде ничего особенного больше не должно происходить
можно подебажить,
например, если закомментировать следующие строчки, то все должно работать по старому:
if (use_hover)
if (button == 1)
button = 3;
else if (button == 3)
button = 1;
здесь вообще 1 означает лев. клавишу, 2 - колесо, 3 - правую
по этим условиям:
if (button === 1) {
dest_x_mouse += (param == "X") ? -value * left_mult : 0;
dest_y_mouse += (param == "Y") ? -value * left_mult : 0;
} else if (button === 2
|| button === 3) {
dest_pan_x_mouse += (param == "X") ? -value * right_mult : 0;
dest_pan_y_mouse += (param == "Y") ? -value * right_mult : 0;
}
- для 1 осуществляется поворот; для 2,3 - паннинг, вроде ничего особенного больше не должно происходить
07 October 2016 16:03
Конкретно за обработку мыши и клавиатуры отвечает аддон app.js, который просто подает нужные значения через API.
Можно поправить аддон - это не так страшно, т.к. он не часть движка, а построен на его API.
Вам нужно вот это место: app.js. Там как раз по нажатой кнопке определяется нужное действие. В режиме HOVER можно поменять кнопки местами, например, так:
Можно поправить аддон - это не так страшно, т.к. он не часть движка, а построен на его API.
Вам нужно вот это место: app.js. Там как раз по нажатой кнопке определяется нужное действие. В режиме HOVER можно поменять кнопки местами, например, так:
var mouse_cb = function(obj, id, pulse, param) {
if (pulse == 1) {
var value = m_ctl.get_sensor_value(obj, id, 1);
m_cam.get_velocities(obj, velocity);
if (!use_hover) {
var left_mult = TARGET_EYE_MOUSE_ROT_MULT_PX * velocity.rot;
var right_mult = TARGET_EYE_MOUSE_PAN_MULT_PX * velocity.trans;
} else {
var left_mult = HOVER_MOUSE_PAN_MULT_PX * velocity.trans;
var right_mult = HOVER_MOUSE_ROT_MULT_PX * velocity.rot;
}
var button = m_ctl.get_sensor_payload(obj, id, 0).which;
if (use_hover)
if (button == 1)
button = 3;
else if (button == 3)
button = 1;
if (button === 1) {
dest_x_mouse += (param == "X") ? -value * left_mult : 0;
dest_y_mouse += (param == "Y") ? -value * left_mult : 0;
} else if (button === 2
|| button === 3) {
dest_pan_x_mouse += (param == "X") ? -value * right_mult : 0;
dest_pan_y_mouse += (param == "Y") ? -value * right_mult : 0;
}
}
}
07 October 2016 10:50
But I'm confused on how to use it – would I invoke this in my elapsed sensor callback? Or do I invoke it somewhere else?Wherever you want, no sensors are required. This method just registers a given callback for calling it every frame until the time expires. For example:
var cb = function(value) {
var cube = m_scenes.get_object_by_name("Cube");
m_trans.set_translation(cube, 0, 0, value);
}
m_time.animate(-5, 5, 10000, cb);
another example here: https://github.com/TriumphLLC/Blend4Web/blob/16.09.2/apps_dev/victory_day_2015/victory_day_2015.js#L248-L256
03 October 2016 11:17
I've managed to cobble together a basic scene – some animation, manipulating a simple cube via clojurescript. Check it out hereCool, it works nice. Do you plan to do something more complex than that?
Here's that same project's source code – you can find the 'meat' of the logic in ../src/cube_test/core.cljs.
Also a little advice, the animation via elapsed sensor depends on frame rate, so in Chrome with gpu vsync disabled and around 600 FPS the cube moves very fast . To avoid this you can use the time.animate method.
Note that it seems to work better on Chrome – FF doesn't seem to load shadows the same way.Hmm… I don't see the difference. Can you show a screenshot?
This can be related to a specific GPU. FYI, we apply some compatibility hacks depending on the GPU's renderer/vendor info - you can see them as warnings in a browser console. Unfortunately, FF doesn't allow to retrieve such data, hence some of that hacks don't work.
30 September 2016 17:25