three.js - wirklich seltsames Verhalten bei Kameraänderungen

8

Ich habe eine einfache three.js -Anwendung entwickelt, die einen Würfel rendert und über mehrere Schaltflächen verfügt, um feste Kamerapositionen festzulegen. Ich habe eine Demo meines Codes hier: Ссылка

In meiner Anwendung rendere ich einen Würfel, und ich kann zur oberen Ansicht wechseln (mit der Schaltfläche TOP VIEW ), und ich kann den Würfel mit dem SHOW ALL an den Bildschirm anpassen Schaltfläche. Ich bemerkte jedoch drei seltsame Dinge:

  • Wenn ich den Würfel schwenke und ihn dann drehe, wenn ich die SHOW ALL Taste drücke, ändert sich die Ausrichtung der Kamera, wenn der Würfel an die Bildschirmgröße angepasst wird.

  • Wenn ich die obere Ansicht mit der entsprechenden Schaltfläche einstelle, scheint die Steuerung blockiert zu sein oder so.

  • Wenn ich die Draufsicht durch Klicken auf die TOP VIEW -Schaltfläche einstelle und vor dem Loslassen der linken Maustaste ziehe, scheint die Steuerung verrückt zu werden. Die Objekte vibrieren auf eine seltsame und nervige Weise.

Ich bin sehr neu bei three.js und ich kann nicht herausfinden, warum diese drei Dinge passieren. Jede Hilfe oder jeder Vorschlag, um sich mit diesen Problemen zu befassen, wird dankbar sein, danke.

    
GLR 11.09.2017, 09:52
quelle

1 Antwort

1

Ich habe mir die Quelle von OrthographicTrackballControls angesehen und festgestellt, dass bei der Ausführung die Kamera-Methode lookAt verwendet wird eingestellt sind. Die Methode lookAt richtet die Kamera mit ihrem up Vektor aus. Also, was Sie tun müssen, ist den Anruf zu camera.lookAt(look_at_position); in Ihrem ShowAll & amp; ShowTop-Funktionen und fügen Sie controls.up0.copy(camera.up); in Ihrer _reset_controls_after_camera_movement -Methode hinzu. Das Steuerelement hat jetzt den richtigen Vektor und kann den Lookat für Sie ausführen.

Hier ist eine modifizierte Geige

    
micnil 20.09.2017, 18:49
quelle