Домой › Форумы › Проблемы и предложения › when clicked и shape key – конфликт
- В этой теме 9 ответов, 3 участника, последнее обновление 2 года, 1 месяц назад сделано kdv.
-
АвторСообщения
-
2 октября, 2022 в 19:53 #18045quasarCustomer
На объекте А есть шейпкеи, а в пазлах у меня есть обработчик when clicked, который обращается вообще к другому объекту Б, но при нажатии на объект А идет просадка fps или какое то дергание, именно в момент отпускания мыши или пальца, т.к. у меня скролл приложение. Так происходит только с объектом у которого есть шейпкеи. Если удалить шейпкеи или удалить пазл when clicked то все в порядке. Видео прикрепил ниже.
https://disk.yandex.ru/i/fuYj6qhT2zrFMw – видео процесса
https://inpretium.com - интерактивные решения
5 октября, 2022 в 09:38 #18057Alexander KovelenovStaff5 октября, 2022 в 19:41 #18058quasarCustomerЯ ещё не писал логику по управлению морфинга. Я сделал в блендере сами шейпкеи, но до логики их задействования в пазлах не дошел. Поэтому это исключено. Пазлы чистые. Обработчика клика нет на этом объекте.
Могу отправить проект приватно. Не хочу публично.https://inpretium.com - интерактивные решения
6 октября, 2022 в 01:33 #18059quasarCustomerСейчас сделал эксперемент: Взял проект Follow Path, добавил в сцену сферу, накинул сабдив на сферу в несколько итераций. Итого сфера в 30к полигонов.Добавил сфере шейпкей, просто без изменений геометрии.
Добавил впазлы пустой обработчик when clicked на несколько объектов, но не на сферу. У вуаля – лаг огромный именно при отпускании мыши на этой сфере. На любых других объектах все хорошо. Но на сфере есть шейпкей и вот это влияет как то. Очень странный баг, и странно, что его до сих пор никто не заметил.
Версия Verege3d – 4.1.1 для блендера.
Вложения:
Вы должны войти для просмотра вложений.https://inpretium.com - интерактивные решения
6 октября, 2022 в 05:34 #18061kdvУчастникЛаг имеет место быть, когда несколько reycaster “стреляеют” через сферу с shape keys.
Время выполнения командыraycaster.intersectObjects(objList, false);
возрастает раз в 40-50.В конечном итоге, лагает вот эта функция в v3d.js
origMeshRaycastFunc.call(this, raycaster, intersects)
P.S. Ищем в v3d.js функцию
_updateMeshesRaycastFromGLTF
, из нее удаляем0!==Object.keys(t.morphAttributes).length||
и лаг уйдет. НО это приведет к тому, что при применении морфинга raycaster будет находить объект ТОЛЬКО рамках изначальной геометрии.Очень странный баг, и странно, что его до сих пор никто не заметил.
собсно, это и не баг, а фича. так задумано, судя по коду. рейкастинг у объектов с shape keys неоптимизированный по причине того, что неизвестно какая геометрия будет у объекта в момент щелчка мышки…
Вложения:
Вы должны войти для просмотра вложений.Puzzles and JS coding. Fast and expensive.
If you don’t see the meaning in something it primarily means that you just don’t see it but not the absence of the meaning at all.
6 октября, 2022 в 11:12 #18065quasarCustomerВ очередной раз спасибо. Фичей не могу назвать это, тк реально эта проблема рушила все планы по проекту.
https://inpretium.com - интерактивные решения
6 октября, 2022 в 11:53 #18066kdvУчастникдаж тормознутый редми 7а не настолько тормознут, как “low-end mobile” профиль в хроме ))) и он не замечает этот лаг вообще. у него проблема производительностью видео, а с процессором щас у любого бюджетника все в порядке. это чисто математика на CPU. на старом айфоне SE тоже практически незаметен лаг. это при том, что “стреляет” 5 raycasters одновременно.
Puzzles and JS coding. Fast and expensive.
If you don’t see the meaning in something it primarily means that you just don’t see it but not the absence of the meaning at all.
6 октября, 2022 в 15:26 #18067kdvУчастникЧтоб не кромсать v3d.js лишний раз, можно воспользоваться скриптом
Puzzles and JS coding. Fast and expensive.
If you don’t see the meaning in something it primarily means that you just don’t see it but not the absence of the meaning at all.
6 октября, 2022 в 15:39 #18069quasarCustomerЧем больше обработчиков клика и чем больше полигонов в модели, тем больше лаг. У меня 30к объект и три обработчика клика. Тормозит на oneplus 5t и даже немного на iphone 13
https://inpretium.com - интерактивные решения
6 октября, 2022 в 15:48 #18070kdvУчастникстранненько. у меня сфера на 60к и 5 обработчиков клика и не тормозит. если не включать тормознутый профиль на ПК, то разница во времени обработки не в 40-50 раз, а всего лишь в 5-6… ну, в любом случае, эт можно подправить, если не устраивает )))
Puzzles and JS coding. Fast and expensive.
If you don’t see the meaning in something it primarily means that you just don’t see it but not the absence of the meaning at all.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.