Еще за VRML

Надежда отечественного геймдева [info]golergka как-то спрашивал в комментах, зачем нужны VRML-ные извращения. А я сейчас на наглядном примере покажу, зачем.

На данный момент «мейнстримом» в плане динамического контента в вебе является Adobe Flash, правда, с начала 2000-х сильно сдавший позиции в пользу более универсального Ajax. Во всяком случае, извращения тех лет, вроде «сайтов целиком на Flash», встречаются реже и реже — «изобразительные» и «технические» возможности Flash теперь реализуют с использованием HTML, CSS и Javascript.

Единственная область, где позиции Flash до сих пор сильны — это динамическая графика. Если, к примеру, текстовую «мочиловку» такого типа:

И плодть его содрыгнулыся от боли, и страшные черные птицы обклювали иго со всех сторон…
А злой волшебник Хухур достал иликрическую пилу и стал, весело хохоча, отпиливать ему ногу и отпилил ее три раза! Воистину!..
И он, хохоча, откусил ему глаз…
Злая колдунья острым ножом разрезывала плоть жертвы…
Его жилы, хохоча, хрустнули под ударом стальной дубины, и кровь толстым потоком затопила Долину Смерти…
Воистину прольется кровь, ибо да будет так!!!

…думаю, этого достаточно — все же видели игрушки типа «Бойцовского клуба», где «мочилово» представляет собой длинный лог того, кто откусил кому яйца, в общем, если такую мочиловку попытаться снабдить графикой, то придется использовать Flash — нормальное рисование в Javascript+HTML совершенно недоступно (а когда все дойдут до поддержки HTML5 и элемента Canvas — я не скажу, да и никто не скажет).

В принципе, ничего против Flash я не имею — это довольно удобное средство отображения динамически меняющихся двумерных картинок. Но вот когда речь заходит о трехмерности…

Конечно, трехмерная графика с «оперативным» рендерингом на ПК применяется уже лет 20, вспомним тот же Wolfenstein 3D или Doom. Математическая основа 3D-графики прекрасно известна, и реализация «софтверного» рендерера не должна вызывать больших проблем при использовании любого языка высокого уровня (хоть того же ECMAScript). Недостаточная производительность скриптовых языков уже лет пять как не является проблемой, в чем нас пытаются убедить «веб-программисты». Но это теория. А что мы имеем на практике? Для Flash существует десяток софтверных 3D-«движков». Как говорит про них Википедия,

Скорость работы перечисленных движков зависит от используемой версии Flash Player, но в целом пока не достаточно высока.

Естественно, верить википедии на слово не стоит, а лучше убедиться лично, что я и проделал. Думаю, [info]golergka прекрасно известна многопользовательская игра «Танки онлайн«, в 2009 году ставшая «прорывом года» в использовании Flash.

tanki

Немного поиграл в эту «техническую заслугу» отечественных флешеров. Как игра — вполне приятно, ничего против не имею. Но насчет поразительной 3D-графики — не соглашусь. Графика довольно примитивна и каким-то прорывом является лишь для браузерных игр. А достигается это просто невероятной ценой — на моей не особо «дохлой» машине загрузка процессора достигала, держитесь за стул, 60-70%. Неудивительно — уже лет 10-15 для обсчета сложных 3D-сцен применяют либо очень низкоуровневые языки (вплоть до «оптимизации» на уровне ассемблерных кодов), либо специализированные графические процессоры. Flash не имеет доступа ни к тому, ни к другому.

В общем, по уровню графики все это напомнило мне виденную еще в начале 2000-х «игрушку» с паровозиком, сделанную фирмой Parallel Graphics для демонстрации возможностей своего VRML-браузера.

parovoz

К сожалению, на новом сайте Parallel Graphics эту демку уже не так легко найти, да и онлайн-версия почему-то не работает. Зато сохранилась версия в виде архива, которую я и выложил у себя на сайте для всех железнодорожных симмеров и прочих извращенцев.

Для работы потребуется VRML-плагин, причем желательно — Cortona 3D Viewer. Скачать его можно на сайте производителя.

PS Не надо понимать эту запись, как «Flash говно, VRML форева». Просто мне хочется показать, что в разработке 3D-контента для веба существует не только современный мейнстрим (в виде Flash и софтверного рендера) и не только перспективные разработки (Silverlight, JavaFX), но и «хорошо забытое старое». Кстати, поддержка асинхронных запросов к серверу в VRML тоже была прописана в стандарте 1997 года (в виде функции CreateVRMLfromURL()), просто применений ей тогда не нашлось.

UPD Почему-то Parallel Graphics не любит браузеры, отличные от IE, хотя их плагин в них прекрасно работает. Видимо, срабатывают ограничения из начала 2000-х.

Еще за VRML: 5 комментариев

  1. Кстати, посмотри подробнее на разработчиков Танков — их главный проект это Альтернатива, 3d-движок на флеше.
    Также, ещё одна причина, по которой я не вижу перспектив для VRML — это более современные 3d-плагины, например, unity. Опять же пример — Джаггернаут.
    И самая веска причина — отсутствие удобных тулзов. При производстве проектов средних масштабов (где вручную забивать координаты в файлы уже не получится, а бюджета на собственную команду тулзовиков ещё нет) это приобретает достаточно серьёзное значение.

    1. Отсутствие тулзов???

      Посмотри раздел Web 3D Products на сайте Cortona, там эти тулзы лежат, не обновляясь с 2000 года :) Ну и любой 3D-редактор прекрасно экспортирует в VRML, даже сохраняя названия объектов — очень удобно для последующего написания скриптов.

      Ну а вообще, мы говорим про разные параллельные миры :) Там, где используют VRML (инженерная и научная графика), либо понятия не имеют о Flash/Unity/…, либо предпочитают VRML, как стандарт ISO, а там, где используют Flash — про VRML вообще не знают.

      Перспективы слабые по другой причине — за VRML с 1998 года не стоит ни одной крупной фирмы (SGI, продвигавшая этот формат, в 1998 реструктурировалась и отдала поддержку формата какой-то скоро обанкротившейся фирме), а всякие Cortona или Blaxxun совсем не заинтересованы в совместимости своих продуктов (скорее наоборот — они предлагают «решения под ключ» для всевозможных систем технической документации).

    1. Это не Flash, это Shockwave — там рендер действительно сделан на DirectX или OpenGL. Хотя графика все равно недалеко ушла от первого-второго Квейка :)

      Для веба, согласен, более чем прилично.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *