I think orbitControl() function in WEBGL mode should behave more like (or exactly like..) this sketch. As of right now, when user releases button after click, the camera position goes back to previous position instantly, which doesn't feel like desired behaviour.
Here is a little fiddle to test. The used library is based on the PeasyCam.
https://jsfiddle.net/t2c8aa1h/
LMB: orbit
MMB: pan
RMB: zoom
dlbclick: reset
i like this suggestion, @mlarghydracept what do you think?
Yeah I think it is probably the more expected behavior.
I will also suggest to have the possibility to invert the control movement.
To better understand what I'm saying, see this demo. In that example, you can move the camera in a more natural way around the room.
Maybe something like orbitControl(INVERT)
I've started working on this with this as a reference (three.js' 'orbitControls' rather than the 'trackballControls' linked above). The main difference between the two according to this stackexchange post is that orbitControl maintains the same cameraUp vector, which helps the user not lose their orientation by accident.
@mcanepa I added x/y sensitivity parameters to orbitControl with #2975, which allows inversion (by entering a negative number). The current (0.6.1) default mode is to have the Y-Axis inverted (dragging mouse down makes camera look up) whereas the new default is non-inverted Y-axis. I just need to figure out why it isn't passing its TravisCI check...
fixed in webgl-gsoc-2018!
Most helpful comment
Here is a little fiddle to test. The used library is based on the PeasyCam.
https://jsfiddle.net/t2c8aa1h/
LMB: orbit
MMB: pan
RMB: zoom
dlbclick: reset