Basé sur le mirror example dans three.js, j'ai recréé un bon vieux projecteur de film praxinoscope, où une colonne de miroirs reflète une courte séquence d'images pour créer l'illusion de mouvement.Plusieurs miroirs dans une scène three.js tue la performance
Dans la version 84 de three.js, cela fonctionne plutôt bien.
Exemple d'utilisation V84: https://codepen.io/Sphinxxxx/pen/eEbjba
Dans la version 85 cependant, il y a eu des changements à Mirror.js, et dans les versions ultérieures tous les miroirs (8 miroirs dans ce cas) font le praxinoscope vraiment lent (faible FPS).
Exemple d'utilisation V87: https://codepen.io/Sphinxxxx/pen/vJvozR
Je soupçonne que la lenteur doit faire avec beaucoup d'appels récursifs et rendu inutiles commençant par les appels à une fonction onBeforeRender()
de Mirror.js
. Stacktrace:
Si vous regardez le code, les miroirs sont créés et ajoutés dans la fonction addMirrorAndImage()
. Y a-t-il une meilleure façon d'ajouter des miroirs, ou une autre astuce qui donnera les mêmes performances que l'ancienne version (pré v85)?
Si vous vous sentez assez confiant, il y a eu une régression Three.js, il serait approprié de déposer ceci comme un rapport de bogue sur le site three.js. – WestLangley
@WestLangley - Merci, j'ai soumis un problème: https://github.com/mrdoob/three.js/issues/12098 – Sphinxxx