Вавилон. js: необходимо ли приостановить анимацию на импортированной модели, которая отключена? - PullRequest
0 голосов
/ 01 апреля 2020

Я загрузил миксамо анимацию в сцену через ImportMe sh (примечание: это clojurescript, но это не должно относиться к обсуждению):

(.ImportMesh js/BABYLON.SceneLoader "" "models/ybot_boxing/" "ybot_boxing.glb" main-scene/scene
               #(mixamo-model-loaded %1 %2 %3 picked-mesh)))

После импорта модель отображает и анимирует как и ожидалось. Однако, как часть моей логики сцены c, пользователь сможет щелкнуть плитку, на которой стоит модель, и выключить модель (т.е. больше не отображать):

   (let [mesh1 (.getMeshByID main-scene/scene "__root__")]
     (if (.isEnabled mesh1)
       (.setEnabled mesh1 false)
       (.setEnabled mesh1 true)))

Однако, когда я смотрю, я вызываю Scene Explorer:

(-> main-scene/scene (.-debugLayer) (.show))

И я смотрю в разделе «Группы анимации» и вижу, что анимация для отключенных моделей все еще работает. Я понимаю, что с дополнительными усилиями я могу приостановить animationGroup, но когда я приостанавливаю анимацию (вручную, с помощью Scene Explorer) и использую диспетчер задач windows (да, я знаю, грубый инструмент), я не вижу разницы в CPU или GPU между приостановкой или отсутствием приостановки анимации, или когда модель отображается или не отображается.

Поскольку анимация не является динамической c и «предварительно рассчитывается», действительно ли она использует какую-либо больше процессора / графического процессора, чем модель, которая не анимирована? Даже если это произойдет, будет ли это так, если модель скрыта / не визуализирована? В итоге у меня будет загружено около шестнадцати различных моделей миксамо, а модели / анимация миксамо довольно ресурсоемки. Итак, сначала blu sh, кажется очевидным, что вы должны остановить анимацию, но, поскольку я действительно не хочу поддерживать состояние, независимо от того, анимируется ли что-то или нет, было бы неплохо просто действительно просто спрячьте / отключите me sh и не беспокойтесь о том, что анимация работает в фоновом режиме.

Вавилон. js v4.1.0-бета.20 - WebGL2

...