2017-08-31 3 views
2

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 enter image description here

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 enter image description here

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:

enter image description here

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?

+0

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

+0

@WestLangley - Danke, ich habe ein Problem eingereicht: https://github.com/mrdoob/three.js/issues/12098 – Sphinxxx

Antwort

Verwandte Themen