Three.js & OrbitControls.js - pan Kamera parallel zur Bodenebene (wie Google Earth)

Arbeite ich an einer einfachen Three.js demo verwendet OrbitControls.js.

Möchte ich das Verhalten ändern, schwenken in OrbitControls. Derzeit, wenn Sie die Kamera schwenken, bewegt sich die Kamera in einer Ebene, die senkrecht auf der Blickrichtung. Ich möchte es ändern, so, dass die Kamera bleibt an einem Konstanten Abstand von der Bodenebene und bewegt sich parallel zu Ihr. Google Earth nutzt eine ähnliche Steuerung.

Edit: ich sollte erwähnt haben, dieses detail in den ersten Platz, aber ich möchte auch den Punkt, wo Sie klicken Sie auf und beginnen Sie, zu bleiben, direkt unter dem cursor über den gesamten ziehen. Es muss sein, dass die Feste Verbindung zwischen der Bewegung der Maus, was der Benutzer erwartet, dass geschehen auf dem Bildschirm. Ansonsten, es fühlt sich an als ob ich bin 'rutschen', wenn ich versuche zu bewegen, um die Szene.

Kann mir jemand eine high-level-Beschreibung, wie das getan werden könnte (mit oder ohne OrbitControls.js)?

  • Ihr "ground plane" eigentlich eine Ebene (z.B. Wohnung, oder hat es eine variable Höhe)?
  • Es ist eigentlich flach. Es ist nur eine unendliche Ebene, die sich an (0,0,0) mit einem Vektor (0,1,0).
  • Ach so, Sie wollen einfach nur, um die Pfanne nur in der Welt der X/Z-Richtung, die Erhaltung der Kamera an einer festen Y-position?
  • Richtig. Die Y-position kann sich nur ändern, wenn ich drehen Sie die Kamera um den Zielpunkt, oder wenn ich dolly-die Kamera auf den Zielpunkt.
  • Hm. Also, wenn der Benutzer dreht die Kamera in Richtung Himmel und bespritzen sich nach oben, und dann die Pfannen---ist die Kamera immer noch nur erlaubt die Bewegung in der X/Z-Ebene?
  • Richtig. Aber ich bin mir nicht sicher, ob wir dieselbe definition von " drehen Sie die Kamera.' Wenn Sie drehen, die Kamera kreist um den Zielpunkt (das ist in der Regel auf der Ebene) und dreht sich immer zu sehen, dass Ziel-Punkt.
  • Hast du eine Lösung für das @Justin?
  • Ja, ich gepostet, und akzeptiert die Antwort hier: stackoverflow.com/questions/26185074/...

InformationsquelleAutor Justin | 2014-10-03
Schreibe einen Kommentar