Трехмерные интерфейсы. Looking Glass, Metisse, SphereXP и другие
АрхивСофтерраПроекты по созданию трехмерных интерфейсов уже вовсю реализуются. В мире open-source дальше всех продвинулись проекты Looking Glass и Metisse, немало подобных разработок существует и для Windows.
Информация о проекте Looking Glass мелькает в прессе уже довольно давно. Обычно о Looking Glass упомяналось в связи с интересным событием - компания Sun Microsystems, изначально работавшая над ним, решила передать все наработки сообществу open-source. В отличие от Solaris и Java, открытие кода которых пока только планируется, Looking Glass уже собрал вокруг себя сообщество свободных разработчиков и успешно развивается под флагом открытых исходников.
Цель авторов проекта - создание трехмерного рабочего окружения. В предыдущей статье я уже приводил некоторые доводы за и против подобных идей, но разобраться что к чему лучше всего на практике. Благодаря доступности исходных кодов сделать это теоретически не сложно.
Для того, чтобы заполучить Looking Glass требуестя зарегистрироваться на сайте Java.net (сервер компании Sun Microsystems, ответственный за координацию open-source проектов), найти раздел, посвященный Looking Glass (lg3d-core) и скачать одну из стабильных версий. На сервере доступны как исходные коды, так и готовые откомпилированные версии. Забегая вперед скажу, что последняя версия у меня работать отказалась - пришлось довольствоваться августовским релизом. Впрочем, особой разницы между ними все равно быть не должно.
Установка Looking Glass оказалась делом не сложным, но и не вполне тривиальным. Для запуска оконного менеджера пришлось скачать последнюю версию Java 2 SE (JRE и JDK версии 1.5) а также несколько дополнительных библиотек (Java 3D и Java Advanced Imaging), впрочем проблем это не вызвало - весь процесс установки подробно описан в руководстве на Java.net.
Существует два режима запуска Looking Glass: первый (lg3d-dev) позволяет работать со средой, не выходя из другого оконного менеджера - Looking Glass запускается в отдельном окне. В таком режиме запуск приложений внутри трехмерной среды невозможен: за исключением демонстрационных, все окна будут открываться в родительском оконном менеджере. Для того, чтобы поэксперементировать с запуском программ непосредственно в Looking Glass придется завершить сеанс работы с графическим сервером и запустить исполняемый файл "lg3d-session", после чего Looking Glass запустит собственный сеанс работы с XFree86 (или X.Org), и откроется в полноэкранном режиме.
Looking Glass встречает пользователя небольшой анимационной заставкой (все элементы рабочего стола занимают свои места, плавно переворачивась), после чего можно начинать работать. Внизу экрана располагается панель задач, на ней присутствуют: три значка демонстрационных приложений, область для отображения открытых в данный момент окон, переключатель рабочих столов и кнопка выхода. Весь остальной экран остается свободным и предназначен исключительно для работы с приложениями - ничего похожего на "рабочий стол" в Looking Glass нет.
Из тестовых приложений в данный момент доступен терминал (совершенно простой - ни вкладок, ни даже функции копирования/вставки в нем нет), окошко с краткой справкой и довольно странное приложение, представляющее из себя вращающуюся цепочку компакт-дисков. Ничего, кроме как вращать изображения дисков программа не позволяет - это просто демонстрация технологии создания полностью трехмерных интерфейсов.
Окна в Looking Glass выглядят как полупрозрачные стеклянные пластины, внутри которых вставлено что-то наподобие листка бумаги. Окна приобретают фокус (становятся непрозрачными), если на них навести курср и тут же его теряют, когда курсор мыши оказывается за рамками окна. Надо сказать, что на практике это оказывается не очень привычным: для того, чтобы вводить текст обязательно присутствие курсора в рамках окна. При щелчке мышью в рабочей области окна оно "всплывает" на передний план, становясь чуть крупнее других окон (остальные окна наоборот становятся чуть меньше). С фокусом это не имеет ничего общего: окно может быть в фокусе, будучи перегороженным другими окнами. Нажатие клавиш на вспылтие окон не влияет никак.
Перемещать окна можно вполне обычным способом - зажав левую кнопку мыши на заголовке окна. При перемещении окна красиво наклоняются в сторону движения. Если окно подтащить к правому или левому краю экрана, то оно автоматически "припаркуется" - повернется примерно на 60 градусов относительно плоскости экрана. Если навести на такое окно курсор, то можно взглянуть на его содержимое под меньшим углом - примерно 30 градусов. "Припаркованные" окна можно свободно двигать в таком состоянии, но при щелчке мыши на поверхности окна, оно займет свое место у края экрана и развернется к пользователю "лицом". Стоит еще упомянуть о том, что если кликнуть правой кнопкой мыши на свободном от окон месте, то все в данный момент развернутые окна "припаркуются" к ближнему для них краю. Повторный щелчок вернет на места все окна, "припаркованные" таким способом. Для удобства манипулирования повернутыми окнами на боковых сторонах каждого из них повторен его заголовок.
Интересны в Looking Glass и виртуальные рабочие столы. Различаются они не толькофоновой внешним видом, но и возможностями. На данный момент доступно три темы: "Большой каньон", "Природа" и "Стэнфорд". Первые два стола полностью идентичны, и содержат в верхнем правом углу экрана логотип Java. Логотип этот - не просто украшение. Если навести на него курсор, зажать одну из кнопок мыши и водить курсором в разные стороны, то все окна, присутствующие на экране будут вращаться под любым углом. Когда кнопка будет отпущена, окна займут свои изначальные позиции.
На рабочем столе "Стэнфорд" логотип отсутствует, и вращать окна невозможно. Зато там демонстрируется возможность двигать рабочую область. Если повести курсор мыши к краю экрана, то вид курсора изменится, а при клике левой кнопкой, поверхность рабочего стола сдвинется, предоставив пользователю свободное от окон пространство. Всего таких областей четыре. Чтобы окинуть взглядом все области сразу достаточно нажать правой кнопкой мыши на свободном месте панели задач. После нажатия рабочий стол отдалится и перед пользователям предстанут сразу все его четыре части. В таком положении окна можно перемещать из одной области в другую или быстро переместиться к одной из них.
Особо стоит отметить место на панели задач, отвечающее за показ уменьшенных копий открытых окон. В большинстве оконных менеджеров на панели задач отображаются лишь заголовки окон, иногда можно организовать отображение части содержимого окна, но аналогов того, что можно увидеть в Looking Glass, я, пожалуй, не видел нигде. Дело в том, что на панели задач располагаются не изображения окон, а их копии. Маленькое окно, кроме размера, от большого совершенно ничем не отличается - оно точно передает содержимое большого окна, поворачивается "лицом" или "боком" в зависимости от его положения, меняет прозрачность и точно так же, как и родительское окно реагирует на действия пользователя. Можно, к примеру, выделить в уменьшенной копии терминала часть текста - изменение тут же затронет и большое окно.
Как уже упомяналось, текущая версия Looking Glass позволяет запускать внутри себя Linux-приложения. На практике это оказалось не совсем так - многие приложения действительно запускаются, но о стабильной работе речи пока не идет. Gtk-приложения (даже самые простые) запустить мне, к сожалению, так и не удалось. С Qt-приложениями ситуация слегка получше - большинство из них запускается, но вот работают лишь простейшие приложения. Лучше всего, пожалуй, работают приложения для X11 - большинство из них запускается вполне нормально, но зачастую подводит скорость работы. Запустив, к примеру, xemacs, я столкнулся с такой нехваткой ресурсов, что из Looking Glass пришлось выйти. В итоге, столкнувшись с необходимостью использования текстового редактора для ввода части этой статьи, я перепробовал все оконные редакторы, доступные в моей системе, и ни один из них не заработал настолько, чтобы в нем можно было ввести пару абзацев и сохранить в файл. Текст набивать пришлось в vim, запущенном в терминальном окне.
Естественно, целью эксперемента было не показать сырость технологии - это было и так вполне очевидно. Попробуем глаза на неторопливость работы (штук пять терминальных окон заставляют Looking Glass временами призадумываться), многочисленные сбои (нажатие кнопки "выход" или попытка перейти в текстовую консоль, к примеру, часто вызывает полное зависание) и общую незавершенность и попытаться ответить для себя на вопрос "Будет ли удобно работать в Looking Glass, когда его разработка достигнет этапа первых стабильных версий?". Лично я, к сожалению, больше склоняюсь к отрицательному ответу. Хотя на ум тут же приходит период перехода от DOS и Norton Commander к графическому интерфейсу Windows. В то время возвращение из "подвижной" оконный среды к командной строне или панелям Norton походило на возвращение с шаткой корабельной палубы на твердую землю.
Примерно то же ощущение я испытал и теперь, вернувшись из трехмерного окружения к привычному оконному интерфейсу. Как знать, быть может, скоро трехмерные интерфейсы станут вполне обычным явлением, и пользователи к ним привыкнут. Пока же ни люди, ни компьютеры, ни сами 3D-интерфейсы к такому переходу не говтовы.
На следующей странице читайте о другом открытом трехмерном менеджере рабочего стола Metisse и о реализации трехмерных интерфейсов в среде Windows
Metisse
Metisse - еще один проект, нацеленный на создание трехмерного окружения на рабочем столе. Также, как и Loogking Glass, Metisse является открытым, но в отличие от Looking Glass, намного больше напоминает традиционный open-source проект. Это сказывается во всем: установка из исходников и нетривиальный процесс запуска, включение других открытых проектов (библиотека Nucleo, сервер Xwnc, оконный менеджер FVWM), и некоторые другие особенности, присущие исключительно открытым проектам.
Внутреннее устройство Metisse достаточно интересно. Он состоит из графического сарвера Xwnc - потомка Xvnc и XDarwin, специальной версии оконного менеджера FVWM и модуля FvwmAmetista. Сервер Xwnc здесь не заменяет обычного графического сервера, он лишь посылает картинку, рисуюемую приложениями клиенту, роль которого играет FvwmAmetista. FvwmAmetista использует возможности OpenGL, чтобы создать конечное изображение и передать его стандартному X-серверу.
После запуска всех необходимых серверов и клиентов перед пользователем предстает вполне обычный на первый взгляд оконным менеджер. Это и не удивительно - отличает Metisse от FVWM пожалуй лишь набор дополнительных кнопок в заголовках окон. Именно с помощью этих кнопок и осуществляется свободный поворот окна в любом направлении.
Пожалуй, эта возможность свободно вращать окна и является ключевым отличием Metisse от Looking Glass. Если в Looking Glass все окна самостоятельно находят свои места в пространстве, то, работая с Metisse, пользователь должен сам регулировать угол поворота окна. Существует, правда, функция автоматического отдаления окон, потерявших фокус, на заданное расстояние с поворотом на некий случайный угол (пределы этой величины каже можно задать), однако это вовсе не решает проблемы. Дело в том, что окна, "уплывшие" таким образом на задний фон, скорее всего тут же будут перегорожены другими окнами, а случайный угол поворота вовсе не вносит в работу удобства и скорее наводит на рабочем столе полный хаос, нежели помогает организовать рабочее пространство.
Таким образом, единственная полезная функция в Metisse - поворот окон. Действительно, повозившись, можно расположить их достаточно удобным образом. Но если пользователю вздумеается добавить к получившейся композиции еще пару окошек, то придется заново вертеть все остальные.
Удобной работу с Metisse я назвать не могу никак. Возможно, если в повседневной жизния я использовал бы FVWM или подобный оконный менеджер, то Metisse показался бы мне намного роднее, но пользователь KDE (да и Gmome, скорее всего тоже) будет чувствовать себя в этой среде непривычно. Что же до возможности крутить окна в любую сторону - не более, чем забавная функция. Понадобилась она мне за время работы один единственный раз - когда я открыл в программе просмотра изображений фотографию, повернутую на непрямой угол. Да и тут поворот пригодился не в пространстве, а на плоскости.
Нельзя, конечно, не отметить то, что Metisse готов в намного большей степени, чем Looking Glass. Если на Looking Glass можно было только посмотреть и лишь попробовать в нем поработать, то в Metisse работать вполне можно. Небольшие сбои, конечно, наблюдались, но в целом Metisse шел достаточно стабильно. Отдельно стоит упомянуть тот факт, что в Metisse отлично запускается большинство программ, будь то Gtk или Qt-приложения. Производительность тоже вполне на высоте, по крайней мере для комфортного просмотра фильма в xine ее вполне хватает.
Win3D
Впрочем, свободными проектами создание трехмерных интерфейсов не ограничивается. Имеются подобные решения и для платформы Windows. В частности, компания ClockWise Technologies еще в 2001 году запатентовала систему для создания трехмерного графического интерфейса для ОС Windows.
В настоящее рвемя эта фирма занимается тем, что предлагает разработку трехмерных интерфейсов на заказ. Во всех случаях в качестве основы берется технология Win3D, которая модифицируется в зависимости от пожеланий клиента. На сайте компании доступны примеры подобных трехмерных интерфейсов.
SphereXP
Другим чрезвычайно интересным проектом является SphereXP. В его рамках также ведется разработка трехмерного интерфейса для самой операционных систем Microsoft. Скриншоты SphereXP, пожалуй, больше всего похожи на привычный интерфейс: значки, обои, панель задач - все похоже на привычную пользователям Windows среду. Однако благодаря трехмерности открываются совершенно новые возможности по управлению окнами и другими объектами на экране. Последняя версия SphereXP с номером 0.79 датируется 7 октября. В планах разработчиков и создание трехмерного менеджера рабочего стола для Windows.
Microsoft
Работают с трехмерными интерфейсами и в Microsoft. С 1999 года разработкой трехмерного интерфейса занималось исследовательское подразделение софтверного гиганта. Первоначальный проект под названием Task Gallery в настоящее время приостановлен, но созданные в его рамках технологии используются специалистами Microsoft в работах по другим направлениям.
Имеются данные, что трехмерный интерфейс появится в новой версии Windows с кодовым названием Longhorn, которая выйдет в 2006 году. Пока достоверно известно, что в для отображения всех графических эффектов интерфейса системе понадобится трехмерный ускоритель. Но идет ли речь об использовании интерфейса вроде Task Gallery, или в Microsoft ограничатся реализацией с помощью ускорителей некторых спецэффектов, остается неясным.