2016-10-30 6 views
1

lösen Ich learing three.js und ich konfrontiert ein Z-Bekämpfung Problem.Wie kann ich Z-Bekämpfung mit Three.js

z-fighting

Es gibt zwei Flugzeug-Objekt, ist blau und die andere ist rosa. Und Ich habe die Positionen die fließenden Codes:

plane1.position.set(0,0,0.0001); 
plane2.position.set(0,0,0); 

Gibt es eine Lösung in three.js alle z-Kampf Problem in einer großen Szene zu beheben?

Ich stelle dieses Problem, weil ich arbeite auf ein BIM (Building Information Model, das .ifc-Format ist) im Web rendern. Und das Modell selbst hat so viele Gesichter, die so eng miteinander verbunden sind. Und es verursachen so viel z Bekämpfung Probleme wie Sie sehen können:

z-fighting-2

Ist three.js diese Art von Verfahren bereitstellen, um dieses Problem zu lösen, so dass ich diese z Bekämpfung Problem umgehen kann nur mit ein paar Code?

+0

Nur wenige einfache Lösungen: (0) Legen Sie Ihre Objekte nicht, die nahe beieinander und/oder (1) Erhöhung [Genauigkeit der Tiefenpuffer] (https://www.opengl.org/wiki/Depth_Buffer_Precision) UND/ODER (2) Skaliere deine gesamte Welt, so dass du Flugzeuge weiter auseinander bewegen kannst, während du die Entfernungen visuell gleich bleibst – Drop

+0

In der Tat wäre die erste Frage: Warum versuche ich? um diese Flugzeuge so nahe zu bringen? Was erwarten Sie als Ergebnis? – Drop

+0

Für große Welten: (3) Verwenden Sie (1-2) + für sehr weit entfernte Objekte (jenseits eines Schwellenpositionswertes), anstatt die Position weiter zu vergrößern, skalieren Sie Objekte einfach herunter. Sie werden Gefühl der Entfernung ohne Probleme mit der Tiefe bekommen. – Drop

Antwort