Yes, the problem with this method is that the final orientation depends on the path you cursor takes, i.e. dragging up 100px and left 100px is different than dragging left 100px and up 100px...
Of course, that's just the way 3D rotations work: SO(3) [1] is non-Abelian. However, doing this with an input device that has one too few degrees of freedom makes it very awkward to use.
When you have a well-defined "ground" plane in your scene, then turntable-style rotation is the most intuitive, where horizontal dragging rotates around the ground plane's normal, while vertical dragging changes the azimuth angle. This makes the final orientation independent of the cursor's path, on the other hand, orientations where the ground plane would be skewed are unreachable.
Some people swear on Ken Shoemake's ARCBALL [2] technique, but I personally found it less intuitive than the turntable method (although I might have implemented it incorrectly ¯\_(ツ)_/¯).
Of course, that's just the way 3D rotations work: SO(3) [1] is non-Abelian. However, doing this with an input device that has one too few degrees of freedom makes it very awkward to use.
When you have a well-defined "ground" plane in your scene, then turntable-style rotation is the most intuitive, where horizontal dragging rotates around the ground plane's normal, while vertical dragging changes the azimuth angle. This makes the final orientation independent of the cursor's path, on the other hand, orientations where the ground plane would be skewed are unreachable.
Some people swear on Ken Shoemake's ARCBALL [2] technique, but I personally found it less intuitive than the turntable method (although I might have implemented it incorrectly ¯\_(ツ)_/¯).
[1] https://en.wikipedia.org/wiki/3D_rotation_group
[2] https://tommyhinks.files.wordpress.com/2012/02/shoemake92_ar...