Роман Долгов - ведущий программист ParallelGraphics, начальник проекта Cortona - по просьбе "Нетоскопа" и мистера Паркера отвечает на соображения по поводу VRML, высказанные в интервью Алексея Лебедева. Для тех, кто не в теме: компании ParallelGraphics и Viewpoint - ведущие компании-разработчики в области 3D и его применения в Интернете. Лебедев (Viewpoint) считает исторически бесперспективным то, что делает ParallelGraphics. ParallelGraphics считает иначе.
Честно говоря, моим первым желанием после прочтения упомянутого интервью было послать мистера Паркера куда подальше. И, безусловно, я так бы и сделал, если бы не его необъятная харизма. Потому как мысли о том, что же на это можно ответить, вызывали отнюдь не "полемический задор", а тоску и неловкость от необходимости объяснять умным людям очевидные вещи... Зачем нужно кино, когда есть фотография? Зачем нужен Flash, когда есть анимированный GIF? Идиотские вопросы, не правда ли?
Не меньшую тоску вызывал и тот факт, что на предложенном уровне практически невозможно полемизировать. Аргументация типа "армяне лучше чем грузины (чем лучше, чем грузины?)" оставляет очень мало шансов для возражений. Но, как оказалось, этот уровень имеет и очень серьезные преимущества. Достаточно даже самого незначительного смещения позиции наблюдателя вверх - и картина меняется до неузнаваемости. (Это я, типа, съязвил.)
На самом деле, если говорить о широком внедрении 3D в Интернет, сегодня (как и два, и четыре года назад) основным вопросом не является вопрос "какой формат". Основным по-прежнему является вопрос "зачем это нужно". Прочие вопросы могут и должны обсуждаться только в этом контексте. Все остальное - разговоры в пользу бедных. Причем в самом прямом смысле - дело в том, что рынок интернет-3D на данный момент практически отсутствует. И целью так называемой войны форматов в этом случае становится не борьба за потребителя, заказчика и т.п., а борьба за инвестора - доброго дядю, готового подкинуть деньжат на бедность. И здесь, безусловно, надо отдать должное MetaCreations (ныне Viewpoint) - на этом поприще они добились действительно впечатляющих успехов. Но это уже совсем другая история.
Однако вернемся к нашему основному посылу - бессмысленно обсуждать интернет-3D (в том числе и сравнивать различные форматы), не ответив прежде на главный вопрос - зачем все это? Иными словами, не определив предварительно возможные области применения, в которых использование 3D действительно оправдано, то есть дает определенные преимущества по сравнению с другими способами представления информации. Даже если отвлечься от Интернета и говорить о 3D-графике на пользовательском уровне вообще (применения вроде создания спецэффектов для Голливуда, по понятным причинам, исключаются), таких областей найдется не так уже много. Инженерное проектирование и моделирование (CAD/CAM системы), игры, архитектура и дизайн ландшафтов и помещений, образование и обучение (в тех случаях, когда трехмерность играет существенную роль), визуализация результатов (3D-чарты), реконструкция событий. Вот, пожалуй, и все.
Визуализацию объектов для целей презентации/рекламы/электронной коммерции - то, на что, собственно, и делает ставку Viewpoint - в этом списке я бы поставил на последнее место. В самом деле, количество вещей, которые могут быть куплены только за их внешний вид, весьма и весьма ограничено. Трудно себе представить, что кто-то купит, например, ботинки без примерки. Или холодильник без визуальной оценки его габаритов и проверки, насколько удобно расположены полки и контейнеры. Остаются игрушки, возможно, какие-то декоративные предметы или украшения. Но даже для них наличие 3D- фотографии вряд ли может дать рекламный эффект существенно больший, чем фотография плоская. Таким образом, мы неизбежно приходим к очевидному выводу: наличие 3D-фотографий от Viewpoint на сайте заказчика - это не более чем модная фишка, дополнительная завлекалка, призванная поднять посещаемость.
Что же касается остальных перечисленных применений... Беда в том, что все они в обязательном порядке требуют развитых средств анимации и взаимодействия с пользователем (интерактивности). Не помешали бы и возможности глубокой интеграции в веб-среду - то есть средства взаимодействия с HTML, веб-сервером и так далее. Но увы...
Самое забавное состоит в том, что, чтобы там не говорилось публично, во Viewpoint прекрасно понимают необходимость этой функциональности. Еще в 1998 году - причем, по инициативе MetaCreations - рассматривалась возможность совместной (c ParallelGraphics) разработки новой версии формата MetaStream, поддерживающей иерархическое представление трехмерных сцен, анимацию и интерактивность. По этому поводу я даже имел счастье в течении двух недель общаться с господами Мигдалом и Лебедевым, так что владею информацией, что называется, из первых рук.
Совместная работа - по независящим от нас причинам - не состоялась, и команда MetaCreations приступила к реализации этого проекта самостоятельно. На разработку ушло 2(!) года при достаточно скромных результатах... Что, на самом деле, ни в коей мере не говорит об уровне квалификации этой действительно сильной и высокопрофессиональной команды - просто "в одну телегу впрячь не можно...". Этот формат, изначально ориентированный на представление объекта в виде единого и неделимого целого (точнее говоря, его пустой оболочки), действительно очень трудно развивать. Отсюда и ухищрения, призванные проиллюстрировать наличие анимационных возможностей - так, например, "анимированный" компьютер с выезжающим дисководом, на самом деле, представляет собой последовательный показ четырех полных(!) моделей, отличающихся только положением дисковода. Какая уж тут компактность...
Кстати, о компактности. Вот типичные размеры моделей, размещенных на сайте Viewpoint ( www.viewpoint.com/democd/3d.html, дальше - линк 3D Photo Studio): сотовый телефон (линк Cell Phone) - 88 Кб, бутылка (линк water bottle) - 133 Кб. Для сравнения - модели с сайта ParallelGraphics: фотокамера Olympus - 68 Кб + 81 Кб текстур, автомобиль Jaguar - 128 Кб. При том, что эти модели помимо десятков тысяч (отнюдь не тысяч!) полигонов содержат еще и анимации, и средства взаимодействия с пользователем, и скрипты. А желаюшим увидеть, что такое настоящая компактность, я рекомендовал бы посетить сайт чешского дизайнера Ивана Климы. Выполненная с абсолютной точностью работающая модель токарного станка - 14 Кб(!). Модель реактивного истребителя - 15 Кб(!!!).
А что же главные козыри MetaStream - streaming и scalability? Действительно, с точки зрения реализации, streaming на уровне вершин и полигонов объекта - задача весьма и весьма непростая. И решившие ее люди вправе гордиться своим успехом. Но если рассматривать эту возможность, как и все прочие, в контексте реального применения, обнаружится очень интересная вешь. А именно - размеры реально работающих объектов (или трехмерных сцен) ограничиваются теми самыми десятками тысяч полигонов (иначе все это будет крайне медленно шевелиться). А размер таких объектов - это десятки килобайт. Не совсем понятно, что здесь собственно стримить... Кроме того, vrml, действительно не поддерживающий стриминга геометрии, позволяет элементарным образом организовать стриминг на уровне объектов. А так как, в отличие от MetaStream, большинство объектов vrml являются сложными (то есть состоящими из большого числа "элементарных" объектов) - это означает ту же постепенную загрузку и детализацию. Только вместо куба, постепенно превращающегося в плюшевого мишку (пройдя при этом несколько достаточно уродливых "приближений"), вы сразу видите реально выглядящий предмет, постепенно обрастающий деталями. Скажем, стол, на котором через некоторое время появляется монитор, настольная лампа, а потом и ваза с цветами.
Что же касается scalability - это уж точно не вопрос формата, а специфика конкретной реализации. Скажем, vrml-браузер от ParallelGraphics поддерживает динамический выбор уровня детализации (automatic level of detail) и адаптивную тесселяцию для математически заданных поверхностей (NURBs и Splines). С моей точки зрения, это куда более мощные средства, чем просто прекращение подгрузки.
Вот, собственно, и все. На самом деле здесь, конечно, следовало закончить анализ того, что в MetaStream есть, и перейти к тому, чего там нет. И попутно воспеть оду vrml. Но, честно говоря, ломает. Просто сходите на www.outline3d.com. Постройте свою квартиру или офис. Подберите обои и кафель. Расставьте мебель. Сохраните результат на сервере для дальнейших экспериментов. И скажите, какой формат позволит вам сделать хоть что-нибудь похожее.