Форум

Сообщения, созданные пользователем crantisz
08 сентября 2017 15:51
Сделал такие изменения в коде движка, чтобы обойти эту проблему:
version.js:
exports.timestamp = function(url) {
    if (TYPE != "DEBUG")
        return "?v=" + PREVENT_CACHE;

    var ts = date_str();
    // remove special symbols
    ts = ts.split(" ").join("").split(":").join("").split(".").join("");
    if(url.indexOf('?')===-1){
       ts = "?v=" + ts;
    }else{
       ts = "&v=" + ts;
    }
    return ts;
}

assets.js:
exports.get_text_sync = function(asset_uri) {
    // check in cache
    if (_loaded_assets[asset_uri])
        return _loaded_assets[asset_uri];

    if (cfg_ldr.prevent_caching)
        var filepath = asset_uri + m_version.timestamp(asset_uri);
....
exports.enqueue = function(assets_pack, asset_cb, pack_cb, progress_cb, json_reviver) {
    for (var i = 0; i < assets_pack.length; i++) {
        var elem = assets_pack[i];

        var asset = {
            id: elem.id,
            type: elem.type,
            url: elem.url,
            is_fetch: elem.is_fetch,
            request_method: elem.request_method ? elem.request_method : "GET",
            overwrite_header: elem.overwrite_header ? elem.overwrite_header : null,
            post_data: elem.post_data ? elem.post_data : null,
            param: elem.param ? elem.param : null,

            state: ASTATE_ENQUEUED,

            asset_cb: asset_cb || (function() {}),
            pack_cb: pack_cb || (function() {}),
            progress_cb: progress_cb || (function() {}),
            json_reviver: json_reviver || null,

            pack_index: _assets_pack_index
        }

        if (cfg_ldr.prevent_caching) {
            var bd = get_built_in_data();
            if (!(bd && asset.url in bd))
                asset.url += m_version.timestamp(asset.url);
08 сентября 2017 15:23
Сделал код, который подргужает изображение, сформированное с использованием параметров GET:

m_tex.change_image(obj, "_texture1", TEX_URL+'?param='+value );


Однако при загрузке изображения добавляется такой хвост: "?v=08092017151609" ,невзирая на то, что в адресе уже присутствуют GET-параметры (нужно добавлять "&v=08092017151609", или вообще ничего не надо!). Сервер в ответ выдает 500.
08 сентября 2017 14:19
Нашел вот такой workaround:
$(document).on("keydown", 'textarea, input', function() {
    m_app.disable_camera_controls();
})
$(document).on("keyup", 'textarea, input', function() {
    m_app.enable_camera_controls();
})


Но надо как-то отключить паузу на "P"
08 сентября 2017 14:12
Такая проблема. Есть текстовое поле, когда вводишь текст, одновременно и появляются буквы и перемещается камера по A, D, S, W. Как-то можно отключить, или что-то с этим сделать?
08 сентября 2017 10:13
Обнаружилась еще одна проблема. Когда кликаешь по объекту таким способом:
var x = m_mouse.get_coords_x(e);
var y = m_mouse.get_coords_y(e);
var obj = m_scenes.pick_object(x, y);
if (obj){
        console.log('click!')
}

В объект "не попадаешь", сдвиг не учитывается..
06 сентября 2017 17:09
Поставив в функцию target_set_distance лог:
exports.target_set_distance = function(camobj, distance) {
....
    // +y move backward
    m_trans.move_local(camobj, 0, 0, dist_needed - dist_curr);
    console.log( dist_needed - dist_curr, dist_needed, dist_curr)
....
}

увидел вот такое «замечательное» поведение:
0.24475202916423555 24.061330553648283 23.816578524484047
camera.js:713 -0.002985531451095369 24.303095136192763 24.306080667643858
camera.js:713 0.24445855879496392 24.54456826053044 24.300109701735476
camera.js:713 0.0007275665451444979 24.789757477004887 24.789029910459742
camera.js:713 0.24045552017281935 25.030939143135758 24.790483622962938
camera.js:713 0.0024001074795059196 25.273796693955752 25.271396586476246
camera.js:713 0.23725294153727816 25.513448204500904 25.276195262963626
camera.js:713 0.012307774318468745 25.763009294077413 25.750701519758945
camera.js:713 0.22537703427405376 26.000693461726627 25.775316427452573
camera.js:713 0.019593957348543967 26.245664084545968 26.226070127197424
camera.js:713 0.223557283593113 26.48881309357278 26.265255809979667
camera.js:713 0.020250171180155263 26.73261788356489 26.712367712384737
camera.js:713 0.22384764640497679 26.976714131763813 26.752866485358837
camera.js:713 0.019448220698897956 27.220008869894027 27.20056064919513
camera.js:713 0.22275413399766109 27.46221063974871 27.23945650575105
camera.js:713 0.021707906559004897 27.70667121070614 27.684963304147136
camera.js:713 0.21961826199371615 27.947998605940416 27.7283803439467
camera.js:713 0.0220736616171493 28.1896903239332 28.16761666231605
camera.js:713 0.2209988407701431 28.432766468408303 28.21176762763816
camera.js:713 0.02375494666916822 28.67751849757254 28.65376355090337
camera.js:713 0.22041607355007642 28.921687610323158 28.70127153677308
camera.js:713 0.023898771806805996 29.16600245217719 29.142103680370383
camera.js:713 0.21531733017551247 29.40521677541212 29.18989944523661
camera.js:713 0.023314184772736724 29.643848182233455 29.62053399746072
camera.js:713 -0.021420446748784627 29.645742660577678 29.667163107326463

как видите, камера передвигается то на одну величину, то на другую, в 10 раз меньше… Я было подумал, что это возможно из-за того, что я перемещаю сам pivot камеры, но дело в том, что даже если отключить rotate_camera и target_set_pivot_translation все равно наблюдается тоже самое…

В общем, либо неверно определяется расстояние m_trans.obj_point_distance() либо m_trans.move_local() двигает объект слишком сильно… Вцелом, если сделать следующее:
exports.target_set_distance = function(camobj, distance) {
    if (!m_cam.is_target_camera(camobj)) {
        m_print.error("target_set_distance(): Wrong camera object or camera move style");
        return;
    }

    var dist_curr = m_trans.obj_point_distance(camobj, camobj.render.pivot);
    var dist_needed = Math.max(0, distance);

    // +y move backward
    m_trans.move_local(camobj, 0, 0, (dist_needed - dist_curr)/2 );  // примерно в 2 раза меньше надо двигать... 
  
    m_trans.update_transform(camobj);
    m_phy.sync_transform(camobj);
}

Картинка двигается гооооораздо плавнее. Но, разумеется, не идеально, тк во-первых, сдвиг не совсем в 2 раза больше, чем должен быть, а во-вторых проблема в целом не в этом, а в m_trans.obj_point_distance() либо m_trans.move_local()
06 сентября 2017 12:58
На сколько я понял, вы не разобрались с областью видимости переменных. Если вы инициируете переменную внутри функции, то она будет видна только внутри нее. Попробуйте вынести ее отдельно, как-то так:

var Cooler_one;
var Cooler_two;

function show_geometry_one()
{	
        Cooler_one = m_scenes.get_object_by_name("Cooler_1");
	all_hide_cooler();
	m_scenes.show_object(Cooler_one); 
}
function all_hide_cooler()
{
	m_scenes.hide_object(Cooler_one); 
	m_scenes.hide_object(Cooler_two); 
}
05 сентября 2017 22:36
Это нужно обязательно! Camera - shift маст хев для архитектурного типа визулизации:

См так-же: Почему это важно
04 сентября 2017 14:17
Все бы хорошо, но перспектива остается на месте. Объект сильно искажается из-за этого..
04 сентября 2017 12:51
Как мне кажется, проблема зависит как-то от сложности сцены, чем сложнее - тем заметнее. Постарался сделать проект без всего лишнего:ссылка

Видео с этой проблемой На замедлении видно, что камера сначала приближается, затем перемещается без отдаления, затем снова отдаляется, такие кадры чередуются

Если загрузить видеокарту по полной, например, рендером, получается вообще треш:еще видео Но даже на 60 FPS проблема заметна