2017-01-26 6 views
0

Zur Zeit arbeite ich auf System, in dem wir individuelle auf Viewer.impl.sceneAfter Netz hinzufügen und haben einige Probleme gestoßen, wo, wenn große Maschen solche (größer als Vereinigung der sichtbaren Grenzen aller Modelle geladen) Wenn große Punktwolken hinzugefügt werden, gibt es ein Clipping-Problem, bei dem ein Teil des Netzes ausgeschnitten wird.sichtbare Grenzen in Forge Einstellung der Viewer

Aus dem Quellcode ist mir aufgefallen, dass der Far-Wert der Kamera basierend auf der sichtbaren Grenze der Welt-Szene aktualisiert wird und dass sceneAfter für die Berechnung der sichtbaren Grenze nicht berücksichtigt wird (im Gegensatz zu viewer.impl.scene, was berücksichtigt wird).

Ich brauche das individuelle Mesh in sceneAfter platziert werden, da ich Transparenz aktiviert werden soll.

kam ich mit zwei hacky Lösung hierfür up:

Erstens getVisibleBounds Funktionsprototyp zur Verfügung gestellt in Viewer3D.js zu überschreiben, die von dieser Antwort Stackoverflow ist inspiriert: Changing Camera Speed, war aber nicht zufrieden, da es überschreibt dritt- Party-Code, der sich später ändern kann.

Zweitens, mit einem unsichtbaren Klon (unter Verwendung der sichtbaren Eigenschaft des Materials anstelle von Geometrie) eines benutzerdefinierten Netzes in der viewer.impl.scene, so dass es die sichtbare Grenze des Betrachters ändert. Was mir besser gefällt als die erste Lösung, ist aber immer noch ineffizient, da ich zwei Mesh-Instanzen verfolgen muss, um Geometrien zu entfernen/manipulieren.

Ich habe mich gefragt, ob es elegantere Lösung als diese

Vielen Dank im Voraus ist!

Antwort

1

Ich loggte einen Wunsch Wunsch Rechnung Maschen sceneAfter in einer zukünftigen Version unserer Zuschauer API hinzugefügt zu nehmen.

In der Zwischenzeit ist die vorgeschlagene Problemumgehung Ihrem zweiten Vorschlag ein wenig ähnlich, verwendet aber ein triviales Netz, wie die Darstellung der Begrenzungsbox Ihres benutzerdefinierten Netzes. Es ist schneller zu rendern als ein Klon des Netzes, falls es komplex ist.

Hoffe, dass hilft

+0

Ich sehe, ich habe nicht mit trivialen Mesh. Danke für die Hilfe! – MazaYong

Verwandte Themen