User posts Grohot
05 March 2016 13:24
Всем привет!
scenes.pick_object работает 0.3-0.5сек (достаточно большая задержка, т.е. клик на меше и только через пол секунды отклик: очень и очень заметно для пользователя и критично долго, все делается в памяти ведь, чтения с диска нет).
От чего зависит скорость pick_object? Может надо поменять немного алгоритм поиска объекта, по которому кликнули?
Ведь, как выяснил из-за этого и тормозит в том числе перемещение объекта мышью по сцене (создавал отдельную тему, потом удалил, решив, что это железо, но железо довольно мощное ж).
Так как в on_mouse_move я через pick_object тоже проверяю, над каким именно мешем находится перетаскиваемый объект (при этом pick_object сам по себе конечно не подходит для этого, т.к. он выдает как раз сам перемещаемый объект и только во время запаздывания перемещаемого меша от курсора выдает другой меш). Т.е. мне надо самому видимо, создать массив, в котором хранить координаты мешей (они проостой формы) на сцене и в онмаусмув искать по массиву, а не через pick_object. НО pick_object все равно работает медленно к сожалению (просто даже для выбора объекта пол секунды - это долго )
При этом, если отключить тени, то pick_object дает приемлемый отклик 0.03сек, то есть в 10! раз быстрее, как минимум. Как могут включенные тени влиять на pick_object ?
И еще вопрос. Можно ли как-то ограничить просчет теней по глубине/расстоянию? То есть может ли тормозить сцена из-за просчета теней потому например, что от меша, который отбрасывает тени идет просчет в сторону всех мешей, которые могут принимать тени, а между тем реально тень ложится только на 1% мешей сцены? Но вряд ли так, наверно ж просчет идтет от источника света по каждому полигону пока не ляжет на какой-либо меш.
scenes.pick_object работает 0.3-0.5сек (достаточно большая задержка, т.е. клик на меше и только через пол секунды отклик: очень и очень заметно для пользователя и критично долго, все делается в памяти ведь, чтения с диска нет).
От чего зависит скорость pick_object? Может надо поменять немного алгоритм поиска объекта, по которому кликнули?
Ведь, как выяснил из-за этого и тормозит в том числе перемещение объекта мышью по сцене (создавал отдельную тему, потом удалил, решив, что это железо, но железо довольно мощное ж).
Так как в on_mouse_move я через pick_object тоже проверяю, над каким именно мешем находится перетаскиваемый объект (при этом pick_object сам по себе конечно не подходит для этого, т.к. он выдает как раз сам перемещаемый объект и только во время запаздывания перемещаемого меша от курсора выдает другой меш). Т.е. мне надо самому видимо, создать массив, в котором хранить координаты мешей (они проостой формы) на сцене и в онмаусмув искать по массиву, а не через pick_object. НО pick_object все равно работает медленно к сожалению (просто даже для выбора объекта пол секунды - это долго )
При этом, если отключить тени, то pick_object дает приемлемый отклик 0.03сек, то есть в 10! раз быстрее, как минимум. Как могут включенные тени влиять на pick_object ?
И еще вопрос. Можно ли как-то ограничить просчет теней по глубине/расстоянию? То есть может ли тормозить сцена из-за просчета теней потому например, что от меша, который отбрасывает тени идет просчет в сторону всех мешей, которые могут принимать тени, а между тем реально тень ложится только на 1% мешей сцены? Но вряд ли так, наверно ж просчет идтет от источника света по каждому полигону пока не ляжет на какой-либо меш.
02 March 2016 18:10
02 March 2016 12:43
02 March 2016 10:19
Да. Информацию об этом можно посмотреть на webglreport.comТут сразу будет информация для вашего GPUСпасибо.
Оказалось, что на core i5 для интегрированного видеопроцессора MAX_VARYING_VECTORS = 9,
а на core i3 MAX_VARYING_VECTORS = 30
Как-то все наоборот получается.
При этом правда на i3 стоит Win8, а на i5 стоит Win7, может от этого тоже зависит?
В любом случае, выходит, что даже в не особо динамичной игрушке (где надо просто таскать мышью объекты), даже на довольно мощной машине, чтобы сцена шевелилась, надо делать совсем уж низкополигональные модели, и крайне желательно отключить тени
Или я чего-то не понимаю и не так делаю?
Может например надо сделать низкополигональную модель и натянуть на нее текстуру сгенерированную на высокополигональной модели? Какая обычно практика? Есть ли например какой-то оптимальный вес сцены по количеству полигонов например? Т.е. приложение делается браузерным так? Т.е. подразумевается, что оно должно нормально работать на множестве разнообразных машин. Но выходит, чтобы это было в действительности так, надо практически свести приложение к 2D, чуть ли не возвращаясь просто к растровым изображениям.
01 March 2016 13:20
Спасибо, Роман. Это читал, но понимание все равно поверхностное, как и информация :)
Но главное понимаю, что видимо, все-таки это железо так?
Интересно вот это
Но главное понимаю, что видимо, все-таки это железо так?
Интересно вот это
Также GLSL позволяет обьявление пользовательскихvarying-переменных. Они должны быть обьявлены и в вершинном и в пикселном шейдере, например:varying float intensity;Может можно как-то программно увеличить это количество? Хотя скорее вряд ли конечно )
01 March 2016 11:57
Это просто предупреждение, что доступно небольшое колличество Varying векторов и что для бленд-объектов не будут доступны тени (из-за малого количества Varying'ов). Оно безобидно, просто предупреждает. Вы хотели бы, чтобы это сообщение не отображалось?Нет конечно хорошо, что оно отображается.
Еще было бы здорово отловить его при инициализации сцены и отключить тени.
Видимо, по аналогии:
var MIN_VARYINGS_REQUIRED = 10;
….
if (gl.getParameter(gl.MAX_VARYING_VECTORS) < MIN_VARYINGS_REQUIRED) {
m_print.warn("Not enough varyings, disable shadows on blend objects");
cfg_def.disable_blend_shadows_hack = true;
}
И еще пока не понимаю суть. Varying - это некие ресурсы видеоадаптера?
Неужели встроенный в Core i5 граф. проц. может грешить такой бедой?
(у меня на нем с тенями сцена сильно висит и не шевелится толком)
01 March 2016 11:26
28 February 2016 22:02
28 February 2016 18:51
Всем привет.
Есть ли возможность создать светящуюся плоскость?
(например для создания квадратных бликов на отражающих поверхностях)
Как в этом видео
Видел в документации Halo, но пока не получилось что-то.
Есть ли возможность создать светящуюся плоскость?
(например для создания квадратных бликов на отражающих поверхностях)
Как в этом видео
Видел в документации Halo, но пока не получилось что-то.
27 February 2016 21:42