Basierend auf der mirror example in three.js habe ich eine gute alte praxinoscope "Filmprojektor", wo eine Spalte von Spiegeln reflektiert eine kurze Sequenz von Bildern, um die Illusion von zu schaffen Bewegung.Mehrere Spiegel in einer three.js Szene tötet Leistung
In Version 84 von three.js funktioniert das ziemlich gut.
Beispiel mit V84: https://codepen.io/Sphinxxxx/pen/eEbjba
In Version 85 gibt es jedoch einige Änderungen waren zu Mirror.js, und in späteren Versionen all Spiegel (8 Spiegel in diesem Fall) machen den praxinoscope wirklich langsam (low FPS).
Beispiel v87 mit: https://codepen.io/Sphinxxxx/pen/vJvozR
Ich vermute, die geringe Leistung hat mit vielen rekursive Aufrufen und unnötigen Rendering zu tun, beginnend mit Anrufen an eine onBeforeRender()
Funktion von Mirror.js
. Stacktrace:
Wenn Sie den Code anschauen, werden Spiegel erstellt und in der addMirrorAndImage()
Funktion hinzugefügt. Gibt es eine bessere Möglichkeit, Spiegel oder einen anderen Trick hinzuzufügen, der die gleiche Leistung wie die ältere (vor Version 85) Version bietet?
Wenn Sie einigermaßen sicher fühlen, eine three.js Regression war es wäre angebracht, dies als einen Fehlerbericht auf der three.js-Site zu speichern. – WestLangley
@WestLangley - Danke, ich habe ein Problem eingereicht: https://github.com/mrdoob/three.js/issues/12098 – Sphinxxx