OrbitControls : zoom damping ?

Few months ago #12179 was sent to provide OrbitControls with damping when zooming and panning, as this behaviour already exists when orbitting in OrbitControls, and for all actions in TrackballControls. In my opinion we can propose a smoother experience this way and I’ve been happy to use this version until now. The PR didn’t go well however, may have looked surprising for any reason etc. Another way to go with this PR has been suggested in its last message but no news about it. So opening this issue instead : is damping for pan and zoom something developpers can benefit ? Or should this PR be closed ? Or is another one prefered ? If yes, what should be done differently ? Thanks !

Author: Fantashit

2 thoughts on “OrbitControls : zoom damping ?

  1. I have #13242 in the pipeline. After that, I have a PR to add damping for panning. Damping while zooming will have to be addressed subsequently.

  2. @WestLangley I did see that PR earlier this week 👍 I like the idea of adding new features one step at a time.

    @Astrak Ideally on OSX, you wouldn’t use any damping as the OS should be handling it. On windows, though you have discreet scroll values which would benefit from smoothing being applied. I don’t know if this uniform across browsers and OS’s though, so like WestLangley said, we’ll just have to cross that road when we get to it.

    most end-users are still not on Mac.

    Also, I really don’t think this is a fair point to make. While I don’t expect a lot of OSX users for a three.js game, I can totally understand OSX users using browser based utilities for like viewing 3D models (especially if you are sending a model to a client, and they don’t have a copy of a 3D modeling program that runs on OSX). And just for reference, I have about the same number of Firefox users as I do OSX users.

    I guess just the overall point I was trying to make is that I don’t think it’s a good mentality to ignore a chunk of users and potentially providing them with a poor UX. I also don’t think we want to be creating custom browser / OS detection scripts and adding fallbacks and polyfills to support browsers, just so we could add 1 feature.

    That said, I do remember running into an issue where on mobile devices, using 2 finger pinch to zoom (calculating change in distance between the two touch events) was prone to “jittery” zooming because your fingers are fairly imprecise, so zoom smoothing by actually be worth the effort. But in that case, it’s also possible to just add smoothing into just the touch event handlers and not the mouse event handlers, which would prevent having to mess with browser or OS detection.

    Anyways, I don’t wanna derail this thread anymore than I already have. Just wanted to voice my thoughts.

Comments are closed.