@@ -703,6 +703,7 @@ class CameraControls extends Script {
703703 * @param {number } dt - The time delta.
704704 */
705705 update ( dt ) {
706+ dt = Math . min ( dt , 0.1 ) ;
706707 const { keyCode } = KeyboardMouseSource ;
707708
708709 const { key, button, mouse, wheel } = this . _desktopInput . read ( ) ;
@@ -741,14 +742,16 @@ class CameraControls extends Script {
741742 const desktopPan = + ( this . _state . shift || this . _state . mouse [ 1 ] ) ;
742743 const mobileJoystick = + ( this . _flyMobileInput . layout . endsWith ( 'joystick' ) ) ;
743744
744- // multipliers
745+ // rate-based multipliers (keyboard, gamepad, virtual joystick)
745746 const moveMult = ( this . _state . shift ? this . moveFastSpeed : this . _state . ctrl ?
746747 this . moveSlowSpeed : this . moveSpeed ) * dt ;
747- const zoomMult = this . zoomSpeed * 60 * dt ;
748- const zoomTouchMult = zoomMult * this . zoomPinchSens ;
749- const rotateMult = this . rotateSpeed * 60 * dt ;
750748 const rotateJoystickMult = this . rotateSpeed * this . rotateJoystickSens * 60 * dt ;
751749
750+ // delta-based multipliers (mouse, touch, wheel)
751+ const rotateDeltaMult = this . rotateSpeed ;
752+ const zoomDeltaMult = this . zoomSpeed ;
753+ const zoomTouchDeltaMult = this . zoomSpeed * this . zoomPinchSens ;
754+
752755 const { deltas } = frame ;
753756
754757 // desktop move
@@ -758,13 +761,13 @@ class CameraControls extends Script {
758761 const panMove = screenToWorld ( this . _camera , mouse [ 0 ] , mouse [ 1 ] , this . _pose . distance ) ;
759762 v . add ( panMove . mulScalar ( orbit * desktopPan * + this . enablePan ) ) ;
760763 const wheelMove = tmpV2 . set ( 0 , 0 , wheel [ 0 ] ) ;
761- v . add ( wheelMove . mulScalar ( orbit * zoomMult ) ) ;
764+ v . add ( wheelMove . mulScalar ( orbit * zoomDeltaMult ) ) ;
762765 deltas . move . append ( [ v . x , v . y , v . z ] ) ;
763766
764767 // desktop rotate
765768 v . set ( 0 , 0 , 0 ) ;
766769 const mouseRotate = tmpV2 . set ( mouse [ 0 ] , mouse [ 1 ] , 0 ) ;
767- v . add ( mouseRotate . mulScalar ( ( 1 - ( orbit * desktopPan ) ) * rotateMult ) ) ;
770+ v . add ( mouseRotate . mulScalar ( ( 1 - ( orbit * desktopPan ) ) * rotateDeltaMult ) ) ;
768771 deltas . rotate . append ( [ v . x , v . y , v . z ] ) ;
769772
770773 // mobile move
@@ -774,15 +777,15 @@ class CameraControls extends Script {
774777 const orbitMove = screenToWorld ( this . _camera , touch [ 0 ] , touch [ 1 ] , this . _pose . distance ) ;
775778 v . add ( orbitMove . mulScalar ( orbit * double * + this . enablePan ) ) ;
776779 const pinchMove = tmpV2 . set ( 0 , 0 , pinch [ 0 ] ) ;
777- v . add ( pinchMove . mulScalar ( orbit * double * zoomTouchMult ) ) ;
780+ v . add ( pinchMove . mulScalar ( orbit * double * zoomTouchDeltaMult ) ) ;
778781 deltas . move . append ( [ v . x , v . y , v . z ] ) ;
779782
780783 // mobile rotate
781784 v . set ( 0 , 0 , 0 ) ;
782785 const orbitRotate = tmpV2 . set ( touch [ 0 ] , touch [ 1 ] , 0 ) ;
783- v . add ( orbitRotate . mulScalar ( orbit * ( 1 - double ) * rotateMult ) ) ;
786+ v . add ( orbitRotate . mulScalar ( orbit * ( 1 - double ) * rotateDeltaMult ) ) ;
784787 const flyRotate = tmpV2 . set ( rightInput [ 0 ] , rightInput [ 1 ] , 0 ) ;
785- v . add ( flyRotate . mulScalar ( fly * ( mobileJoystick ? rotateJoystickMult : rotateMult ) ) ) ;
788+ v . add ( flyRotate . mulScalar ( fly * ( mobileJoystick ? rotateJoystickMult : rotateDeltaMult ) ) ) ;
786789 deltas . rotate . append ( [ v . x , v . y , v . z ] ) ;
787790
788791 // gamepad move
0 commit comments