Форум

Сообщения, созданные пользователем crantisz
19 октября 2017 14:20
Выяснилось, что на iOS не сохраняется изображение методом canvas.toDataURL(); Картинка выходит полностью прозрачной. Есть ли какой-нибудь способ обойти эту проблему? Никто не сталкивался с этим?
09 октября 2017 10:56
Спасибо, все получилось:

  m_m.set_render_callback(function() {
                    m_m.clear_render_callback();
                    m_m.set_render_callback(function() {
                        m_m.clear_render_callback();
                        image= $('#main_canvas_container canvas')[0].toDataURL();
                        shoot.resolve();
                    });
                });
09 октября 2017 10:47
Я считаю, правильный подход - это админка на сервере, с которой работает далекий от технологий человек. Админка, например, на PHP, данные хранит в базе данных. При изменении данных через админку обновляет специальный JSON файл с данными, или же генерирует его "на лету" при обращении из b4w к скрипту на сервере. Ну а загрузить его легко и просто, например, с помощью библиотеки jQuery:
 $.getJSON( PATH_TO_FILE + "data.json", function( data ) {  
        //выполняем необходимые действия после загрузки файла
        //data - объект полученный из json-файла, уже распарсенный 
 });
06 октября 2017 11:21
Допустим, нужно заменить текстуру на меше. Я могу дождаться его загрузки, и в колбеке после загрузки заменить текстуру:

function loaded_cb(data_id) {
   var obj = m_scenes.get_object_by_name('objectname',  data_id);
   m_tex.change_image(obj, "texturename",    TEX_ASSETS_PATH + customtextureadress  );
}


Но таким образом выходит, что сначала грузится основная текстура, потом вторая, которая ее заменяет. Получается лишняя загрузка. Можно это как-то обойти?
28 сентября 2017 12:04
Есть следующий код (упрощенно):
    var cam_obj = m_scenes.get_active_camera();
    m_cam.rotate_camera(cam_obj, 0, 0, true);
    var dataURL = $('#main_canvas_container canvas')[0].toDataURL();  //получаем содержимое canvas.

Проблема в том, что canvas не успевает обновиться после поворота. Как сделать колбек на обновление кадра? Т.е. запустить .toDataURL(); уже после того, как новый кадр прорисован?
14 сентября 2017 17:14
Пожалуйста: Посмотреть Скачать
14 сентября 2017 16:38
Нашел в чем проблема. Изучил исходники, и нашел, что камера перемещается с помощью transform_vec3, а эта функция учитывает масштаб объекта. Оказывается, камера была отмасштабирована. Причем blender не применяет масштаб на Alt+A у камер и источников света, поэтому я даже не догадывался об этом!
11 сентября 2017 11:48
Нет, так не работает, Canvas же на месте
Ответ на сообщение пользователя Иван Любовников
должно помочь так:

var x = m_mouse.get_coords_x(e, false, true);
var y = m_mouse.get_coords_y(e, false, true);
var obj = m_scenes.pick_object(x, y);
if (obj){
        console.log('click!')
}

подробности тут: ссылка
11 сентября 2017 09:58
Нашел:

/**
 * export the method to initialize the app (called at the bottom of this file)
 */
exports.init = function() {
    m_app.init({
        ....
        key_pause_enabled: false //добавить эту строку
    });
}
08 сентября 2017 17:29
Как отключить паузу по кнопке "P"?