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
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