Направляющие и прочие обогащенные визуальные подсказки

Идиомы, описанные в предыдущих разделах, являются примерами обогащенной немодальной обратной связи, которую мы подробно обсу' дим в главе 25. Однако в некоторых приложениях многочисленные сетки и нормали могут создавать перегрузку. Рассмотрим в качестве примера программу SketchUp компании Google, предназначенную для создания архитектурных эскизов. Пользователи программы могут чертить собственные линии при помощи таких инструментов, как ру' летка и транспортир, и по ходу работы получают подсказки в виде цве' товых кодов, позволяющих ориентироваться относительно осей. Кро' ме того, пользователь может включить голубое градиентное «небо» и цвет «земли», что тоже помогает ориентироваться в пространстве. Поскольку приложение специализировано на архитектурных эскизах

и не предназначено для универсального решения задач трехмерного моделирования и анимации, его разработчикам удалось создать эконо' мичный, мощный и простой интерфейс, легкий как в изучении, так и в использовании (рис. 19.13).

 
  Направляющие и прочие обогащенные визуальные подсказки - student2.ru

Рис. 19.13. Программа SketchUp компании Google – блестящее приложение, объединяющее возможности создания трехмерных архитектурных эскизов с гладкой интерактивностью, обогащенной обратной связью и легко управ- ляемым набором инструментов проектирования. Пользователи могут за- дать цвет «неба» и реалистичное изображение теней сообразно географиче- скому положению, ориентации, времени суток и года. Все это не только спо- собствует визуализации, но и помогает пользователю ориентироваться.

Пользователь может выводить на экран трехмерную сетку и направляю- щие линии для измерений – точь-в-точь как в приложении для создания двух- мерных эскизов. Функции поворота и наезда камеры удобно привязаны к ко- лесику мыши, что не препятствует одновременному использованию других инструментов. Всплывающие текстовые подсказки облегчают рисование линий и выравнивание объектов

Каркасы и ограничивающие боксы

Каркасыи боксырешают проблемы видимости объектов. Во времена слабых процессоров все объекты изображались в виде «проволочных» каркасов, потому что компьютеры были недостаточно быстры, чтобы

выполнять обсчет поверхностей в реальном времени. Сегодня прило' жения моделирования обычно отображают поверхности выделенных объектов, а остальные объекты представляют в виде каркасов. Про' зрачность как свойство объектов тоже может послужить этой цели, но она требует больших вычислительных ресурсов. В очень сложных сце' нах иногда необходимо или желательно отображать вместо невыделен' ных объектов ограничивающие боксы, хотя, конечно, это не идеаль' ное решение.

Проблемы ввода и идиомы

В приложениях трехмерного моделирования приживаются многие идиомы из программ для работы с плоской графикой – в частности, идиомы маркеров перетаскивания и вершинных маркеров. Однако у трехмерного ввода есть свои особенности.

Пороги смещения

Одной из фундаментальных проблем непосредственного манипулиро' вания объектами в двухмерной проекции трехмерной сцены является проблема преобразований плоского движения курсора в осмысленное движение в трехмерном виртуальном пространстве.

В трехмерной проекции необходим особый порог смещения, позво' ляющий различать движение по трем, а не двум осям. Как правило, движения курсора вверх и вниз преобразуются в движение вдоль од' ной оси, а перемещения под углом 45 градусов относятся к оставшим' ся двум осям. В программе SketchUp применяются подсказки в виде пунктирных линий разного цвета, которые появляются, когда пользо' ватель перетаскивает объект параллельно определенной оси. Кроме того, применяются всплывающие текстовые подсказки. В трехмерной среде богатая обратная связь в виде смены формы курсора и других подсказок становится жизненно необходимой.

Проблема захвата

Другая серьезная проблема трехмерного манипулирования известна как проблема захвата. Поскольку при сборке сцен объекты должны быть прозрачными или представленными в виде каркасов, программе трудно понять, какой из многочисленных перекрывающихся объектов пользователь хочет выделить, наведя указатель мыши. Здесь может помочь подсветка, но ее недостаточно, поскольку объект может ока' заться полностью перекрытым другими объектами. Групповое выде' ление еще более сложное.

Многие приложения трехмерной графики прибегают к косвенным ме' тодам, таким как список или иерархическая структура объектов вне трехмерного представления, где пользователь может выбрать нужный объект. Хотя такой тип взаимодействия находит себе применение, су' ществуют более прямолинейные подходы.




Например, наведение указателя мыши на какой'то участок сцены мо' жет открыть всплывающее меню, позволяющее пользователю выде' лить один или несколько перекрывающихся объектов (в подобном ме' ню нет необходимости, если можно недвусмысленно указать на нуж' ный объект). Если могут быть выделены отдельные грани, вершины или ребра, то каждый такой элемент должен сигнализировать о своей отзывчивости, когда по нему проходит указатель мыши.

Хотя это не связано с обсуждаемой темой напрямую, простой способ навигации по сцене может упростить решение проблемы захвата. В программе SketchUp функции наезда и орбитальноговращения ка' меры привязаны к колесику мыши. Покрутите колесико – и изобра' жение увеличится или уменьшится относительно центральной нуле' вой точки в трехмерном пространстве. Нажмите на колесико – и вы включите режим облета, позволяющий вращать камеру вокруг цен' тральных осей в любом направлении. Такая плавная навигация позво' ляет манипулировать архитектурной моделью почти с такой же легко' стью, с какой вы могли бы вертеть ее в руках.

Наши рекомендации