Das ist wahrscheinlich ein sehr grundlegendes Problem, aber ich habe noch keine Lösung gefunden und es hat mich gestört. Ich möchte Pfeile zeigen, die die Koordinaten der Weltkoordinaten (x, y, z) in der unteren rechten Ecke der Kamera anzeigen, wie in Maya, so dass, wenn die Kamera um ein Objekt gedreht wird oder sich durch eine Szene bewegt, Sie können immer noch die Richtungen der Weltkoordinaten identifizieren. Ich habe versucht, dies mit zwei verschiedenen Ansätzen zu erreichen, und beides hat bisher nicht funktioniert.Three.js: Zeige Weltkoordinatenachsen in einer Ecke der Szene
Ich habe ein Objekt mit drei Pfeilen als Kinder mit der THREE.ArrowHelper
Klasse, wir nennen es XYZ
für den Augenblick. Die erste Annäherung ist, XYZ
ein Kind der Szene zu bilden und ihm eine Position zur Verfügung zu stellen, die von der gegenwärtigen Position der Kamera plus eine Versetzung in der Richtung berechnet wird, die die Kamera zeigt und justiert, damit sie in der Ecke erscheint, die ich anstatt in der Ecke will Mitte des Bildschirms. Ich habe fast das funktioniert, wie in den Pfeilen die richtige Rotation beibehalten, aber die Position ist ein bisschen komisch, und ich hörte auf, diese Route zu gehen, weil es wirklich "nervös" war, wenn Sie die Kamera herum bewegen. Ich bin mir nicht sicher, ob es ein Leistungsproblem oder etwas anderes war. Die zweite Methode besteht darin, XYZ
ein Kind der Kamera mit einem lokalen Positionsversatz zu machen und dann die Drehung der Kamera umzukehren und die umgekehrte Drehung auf XYZ
anzuwenden, so dass es den Weltkoordinaten entspricht. Ich scheine mit dieser Methode in der Nähe zu sein, aber ich kann entweder die Position richtig oder die Rotation korrigieren, nicht beide.
ich zur Zeit mit dem Code XYZ.matrix.extractRotation(camera.matrixWorldInverse);
mich mit der richtigen Ausrichtung für XYZ
zu schaffen, aber es ist Positionierung ist ausgeschaltet. Wenn ich XYZ.matrixWorld.extractRotation(camera.matrixWorldInverse);
verwende, bleibt die Position in Ordnung (an der Kamera befestigt), aber die Ausrichtung ändert sich nicht.
Wenn jemand einen schnellen Hack hat, um dieses Arbeiten zu bekommen, würde es sehr geschätzt werden. Wenn du eine bessere Methode hast, als die, die ich verfolge, wäre das auch hilfreich.
** - EDIT - ** Sollte wahrscheinlich erwähnen, dass Sie die Arbeitsversion hier finden können - (https://googledrive.com/host/0B45QP71QXoR0Mm9Mbkp3WGI1Qkk/) Ich speichere meinen Code in Google Drive aber lokal mit Wamp und Aliasing, was bedeutet, dass alle Änderungen, die ich mache lokal wird online reflektiert, sobald Google Drive synchronisiert. I.E. es kann gebrochen sein, wenn Sie einen Blick darauf werfen.
Verpasste diese Verbindung irgendwie. Ich werde diese Methode untersuchen und zu dir zurückkommen. Ich frage mich jedoch, ob das Hinzufügen einer zweiten Kamera die Leistung mehr reduzieren wird, als eine der oben genannten Methoden zu verwenden? – wackozacko
Es funktioniert! Musste die Zeile camera2.position (controls.target); entfernen, da OrigtControls.js keine Zielposition hält, aber sonst ist die Lösung praktisch die gleiche. – wackozacko
Entfernen Sie nicht die Leitung. Verwende 'controls.center' in R.58. – WestLangley