Мне нужно разрешить пользователю перемещать, поворачивать, увеличивать / уменьшать масштаб моей сцены в 3D, который использует параллельную проекцию. Панорамирование и увеличение / уменьшение было довольно простым. Однако при использовании мыши для вращения я не уверен, что использовать в качестве центра вращения. В частности, я не уверен, на какую глубину внутри экрана должен падать центр вращения.
Вот что я делаю сейчас: возьмите центр тяжести модели и используйте его в качестве центра вращения. Однако иногда центроид может выходить за пределы видимой области (в результате панорамирования и уровня масштабирования), и пользователю (и мне самому) нелогично поворачивать модель вокруг точки, которую мы не видим.
Что считается стандартом для взаимодействия с пользователем в таком случае? Что может быть самым интуитивным поведением здесь?
PS: у меня только один порт просмотра (в отличие от Blender и друзей).
Редактировать: Было бы здорово, если бы опытные стороны могли оценить текущую практику в таких пакетах, как Google SketchUp и Blender 3D и опубликовать свое мнение.