I need to allow the user to pan, rotate, zoom in / out my 3D scene, which uses parallel projection. Panning and zooming in / out was pretty straight forward. However, when using the mouse for rotation, I'm not sure what to use as the center of rotation. In particular, I'm not sure at what depth the center of rotation should fall inside the screen.
Here's what I'm doing right now: take the center of gravity of the model and use it as the center of rotation. However, the centroid may occasionally go beyond the visible range (as a result of panning and zoom level), and the user (and myself) find it hostile to rotate the model around a point that we cannot see.
What is considered the standard for user interaction in this case? What could be the most intuitive behavior here?
PS: I only have one view port (unlike Blender and friends).
Edit: It would be great if experienced participants could evaluate the current practice in packages like Google SketchUp and Blender 3D and express their opinion.
source
share