Вопрос - ответ

12 марта 2016 21:30
… выложи проект …
13 марта 2016 00:26
…выложи проект…
Прицепил. Упростил по-максимуму, просто размножил шарик.
Запуск прямо из папки index.html с поддержкой браузером локальных ресурсов.
На этой сцене например, у меня прежде чем вылезет в консоли
"Пришли в onmouse_down" после клика на шарике, стабильно секунда проходит.
13 марта 2016 05:18
… давай ещё раз уточним задачу - зачем тебе m_phy.append_ray_test_ext ? …
… основная причина почему такое большое время проходит между кликом мышки и подсвечиванием шарика именно в нем …
… отклик mousedown происходит мгновенно даже при 5-9 fps (мне удалось получить такой fps при colCount = rowCount = 100) …

… по ходу поправь в коде поименование создаваемых мешей
var newMesh = m_objects.copy(sourceMesh, "newMesh"+ row + col);
например замени на
var newMesh = m_objects.copy(sourceMesh, "newMesh"+ row + '_' + col);
13 марта 2016 05:21
кстати, а какой браузер?
13 марта 2016 09:50
Хорошо.
- в onmousedown оставил только
function main_canvas_mousedown(e) {console.log("Пришли в main_canvas_mousedown");}

все равно задержка идет, т.е. от клика до вывода в консоль идет задержка около секунды.
Плюс на m_phy.append_ray_test_ext я ж вроде засекаю время и в калбэке вывожу его и судя по выводу, она отрабатывает очень быстро. (возможно, калбэк происходит раньше, чем она успевает отработать до конца, типа вернула калбэк, а сама вызывает еще какие-то функции асинхронно, это не знаю, надо лезть в исходники наверно))
Но типичный вывод в консоль:
Пришли в main_canvas_mousedown
Time for [calc_ray]: 0
Time for [scale]: 0
Time for [get_active_camera]: 0
Time for [append_ray_test_ext]: 6
Time for [set_outline_intensity]: 0

- append_ray_test_ext нужен, чтобы определить по какому объекту был клик (раньше использовал pick_object, но он точно дает задержку в пол секунды)
отклик mousedown происходит мгновенно даже при 5-9 fps (мне удалось получить такой fps при colCount = rowCount = 100)
Машина ж наверно с нормальной видеокартой? )
13 марта 2016 09:57
Браузер Chrome. Открыл в FireFox. Вывод:
Пришли в main_canvas_mousedown
Time for [calc_ray]: 0
Time for [scale]: 0
Time for [get_active_camera]: 0
Time for [append_ray_test_ext]: 2029
Time for [set_outline_intensity]: 0

Это уже больше похоже на правду.
НО. Здесь тоже в main_canvas_mousedown оставил только:
function main_canvas_mousedown(e) {console.log("Пришли в main_canvas_mousedown");}

И задержка в FireFox получается даже в пару-тройку секунд осталась все равно, т.е. и без append_ray_test_ext.
13 марта 2016 11:34
… у меня pick_object даёт значительно лучший результат чем через append_ray_test_ext …
… потом вывод в консоль, наверное является индикатором для фиксации времени …
… судя по твоим записям - на реакцию на mousedown времени тратиться мало …
… покажи выводы без append_ray_test_ext но с pick_object …
13 марта 2016 20:37
Вывод для pick_object:
Пришли в main_canvas_mousedown
Time for [pick_object]: 1372
Time for [set_outline_intensity]: 0

Проект с ним в прицепе.
При этом картина такая же. Клик на меше. Пауза секунда/пол секунды, потом вывод
"Пришли в main_canvas_mousedown" и т.д.
Т.е примерно как и в случае с append_ray_test_ext.

Так а машина-то какая? С видяхой? Может у меня openGL не видит интегрированное графическое ядро в коре пятом?
В настройках стоит только CPU:

А как же Intel(R) HD Graphics?
13 марта 2016 21:53
>> В настройках стоит только CPU:
… насколько в курсе, эти настройки Blender не влияют на работу приложения в браузере …

>> Может у меня openGL не видит интегрированное графическое ядро в коре пятом?
… у тебя window? …

>> При этом картина такая же. Клик на меше. Пауза секунда/пол секунды, потом вывод
… сделай не вывод в консоль, а подсветку элемента при срабатывании mousedown …
13 марта 2016 22:49
… у тебя window? …
… сделай не вывод в консоль, а подсветку элемента при срабатывании mousedown …
Да, вин7 64x. Подсветка итак есть, вывод в консоль, просто в качестве попытки засечь время.
Если б она работала быстро, то и вопроса бы не было )
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.