Роман Долгов
Роман Долгов — ведущий программист ParallelGraphics, начальник проекта Cortona — по просьбе «Нетоскопа» и мистера Паркера отвечает на соображения по поводу VRML, высказанные в интервью Алексея Лебедева. Для тех, кто не в теме: компании ParallelGraphics и Viewpoint — ведущие компании-разработчики в области 3D и его применения в Интернете. Лебедев (Viewpoint) считает исторически бесперспективным то, что делает ParallelGraphics. ParallelGraphics считает иначе.
Честно говоря, моим первым желанием после прочтения упомянутого интервью было послать
Не меньшую тоску вызывал и тот факт, что на предложенном уровне практически невозможно полемизировать. Аргументация типа «армяне лучше чем грузины (чем лучше, чем грузины?)» оставляет очень мало шансов для возражений. Но, как оказалось, этот уровень имеет и очень серьезные преимущества. Достаточно даже самого незначительного смещения позиции наблюдателя вверх — и картина меняется до неузнаваемости. (Это я, типа, съязвил.)
На самом деле, если говорить о широком внедрении 3D в Интернет, сегодня (как и два, и четыре года назад) основным вопросом не является вопрос «какой формат». Основным по-прежнему является вопрос «зачем это нужно». Прочие вопросы могут и должны обсуждаться только в этом контексте. Все остальное — разговоры в пользу бедных. Причем в самом прямом смысле — дело в том, что рынок интернет-3D на данный момент практически отсутствует. И целью так называемой войны форматов в этом случае становится не борьба за потребителя, заказчика и т.п., а борьба за инвестора — доброго дядю, готового подкинуть деньжат на бедность. И здесь, безусловно, надо отдать должное MetaCreations (ныне
Однако вернемся к нашему основному посылу — бессмысленно обсуждать интернет-3D (в том числе и сравнивать различные форматы), не ответив прежде на главный вопрос — зачем все это? Иными словами, не определив предварительно возможные области применения, в которых использование 3D действительно оправдано, то есть дает определенные преимущества по сравнению с другими способами представления информации. Даже если отвлечься от Интернета и говорить о 3D-графике на пользовательском уровне вообще (применения вроде создания спецэффектов для Голливуда, по понятным причинам, исключаются), таких областей найдется не так уже много. Инженерное проектирование и моделирование (CAD/CAM системы), игры, архитектура и дизайн ландшафтов и помещений, образование и обучение (в тех случаях, когда трехмерность играет существенную роль), визуализация результатов (3D-чарты), реконструкция событий. Вот, пожалуй, и все.
Визуализацию объектов для целей презентации/рекламы/электронной коммерции — то, на что, собственно, и делает ставку Viewpoint — в этом списке я бы поставил на последнее место. В самом деле, количество вещей, которые могут быть куплены только за их внешний вид, весьма и весьма ограничено. Трудно себе представить, что кто-то купит, например, ботинки без примерки. Или холодильник без визуальной оценки его габаритов и проверки, насколько удобно расположены полки и контейнеры. Остаются игрушки, возможно, какие-то декоративные предметы или украшения. Но даже для них наличие 3D- фотографии вряд ли может дать рекламный эффект существенно больший, чем фотография плоская. Таким образом, мы неизбежно приходим к очевидному выводу: наличие 3D-фотографий от Viewpoint на сайте заказчика — это не более чем модная фишка, дополнительная завлекалка, призванная поднять посещаемость.
Что же касается остальных перечисленных применений… Беда в том, что все они в обязательном порядке требуют развитых средств анимации и взаимодействия с пользователем (интерактивности). Не помешали бы и возможности глубокой интеграции в веб-среду — то есть средства взаимодействия с HTML, веб-сервером и так далее. Но увы…
Самое забавное состоит в том, что, чтобы там не говорилось публично, во Viewpoint прекрасно понимают необходимость этой функциональности. Еще в 1998 году — причем, по инициативе MetaCreations — рассматривалась возможность совместной (c ParallelGraphics) разработки новой версии формата MetaStream, поддерживающей иерархическое представление трехмерных сцен, анимацию и интерактивность. По этому поводу я даже имел счастье в течении двух недель общаться с господами Мигдалом и Лебедевым, так что владею информацией, что называется, из первых рук.
Совместная работа — по независящим от нас причинам — не состоялась, и команда MetaCreations приступила к реализации этого проекта самостоятельно. На разработку ушло 2(!) года при достаточно скромных результатах… Что, на самом деле, ни в коей мере не говорит об уровне квалификации этой действительно сильной и высокопрофессиональной команды — просто «в одну телегу впрячь не можно…». Этот формат, изначально ориентированный на представление объекта в виде единого и неделимого целого (точнее говоря, его пустой оболочки), действительно очень трудно развивать. Отсюда и ухищрения, призванные проиллюстрировать наличие анимационных возможностей — так, например, «анимированный» компьютер с выезжающим дисководом, на самом деле, представляет собой последовательный показ четырех полных(!) моделей, отличающихся только положением дисковода. Какая уж тут компактность…
Кстати, о компактности. Вот типичные размеры моделей, размещенных на сайте Viewpoint (
А что же главные козыри MetaStream — streaming и scalability? Действительно, с точки зрения реализации, streaming на уровне вершин и полигонов объекта — задача весьма и весьма непростая. И решившие ее люди вправе гордиться своим успехом. Но если рассматривать эту возможность, как и все прочие, в контексте реального применения, обнаружится очень интересная вешь. А именно — размеры реально работающих объектов (или трехмерных сцен) ограничиваются теми самыми десятками тысяч полигонов (иначе все это будет крайне медленно шевелиться). А размер таких объектов — это десятки килобайт. Не совсем понятно, что здесь собственно стримить… Кроме того, vrml, действительно не поддерживающий стриминга геометрии, позволяет элементарным образом организовать стриминг на уровне объектов. А так как, в отличие от MetaStream, большинство объектов vrml являются сложными (то есть состоящими из большого числа «элементарных» объектов) — это означает ту же постепенную загрузку и детализацию. Только вместо куба, постепенно превращающегося в плюшевого мишку (пройдя при этом несколько достаточно уродливых «приближений»), вы сразу видите реально выглядящий предмет, постепенно обрастающий деталями. Скажем, стол, на котором через некоторое время появляется монитор, настольная лампа, а потом и ваза с цветами.
Что же касается scalability — это уж точно не вопрос формата, а специфика конкретной реализации. Скажем, vrml-браузер от
Вот, собственно, и все. На самом деле здесь, конечно, следовало закончить анализ того, что в MetaStream есть, и перейти к тому, чего там нет. И попутно воспеть оду vrml. Но, честно говоря, ломает. Просто сходите на