Сегодня: Вторник, 19.03.2024, 10:43 (МСК)| Здравствуйте, Гость| Мой профиль | Регистрация | Вход | RSS

Военные технологии на пользовательском рынке

Спецэффекты в Cinema4D

Эргономика компьютерных клавиатур

Наушники. Как выбирать?

Плагины Sonnox Oxford
Главная » КОМПЬЮТЕРНОЕ ПО И ЖЕЛЕЗО

IT-перестройка. Технологии трехмерного Интернета

01.04.2011

С начала 2011 года в целых сегментах программного обеспечения для Интернета началась перестройка, связанная с внедрением новых технологий, позволяющих создавать 3D-контент, наделив его особой степенью интерактивности. Уже сейчас простым пользователям под силу создавать 3D-баннеры в стандартах Flash или WebGL, а посетители сайтов могут вращать товары или интерьеры. Что за этим стоит, и какой инструментарий можно использовать, мы сейчас подробно рассмотрим.


От энтузиазма к мировым стандартам


О внедрении полноценного 3D в Интернет говорили очень долго и много. Достаточно вспомнить, как десять лет назад трепетно относились к аббревиатуре VRML (Virtual Reality Modeling Language — язык моделирования виртуальной реальности), с восторгом воспринимали появление стандарта QuickTime VR, а потом массовый интерес начал спадать. Технологии все появлялись и разрабатывались, но, по существу, так и не доходили до конечного потребителя — пользователи стандартных браузеров их не видели в силу отсутствия хоть какого целостного стандарта в стане последних. 

Вместе с тем, стоит сказать, что мир Интернета был, в общем-то, консервативен по отношению к новациям, достаточно вспомнить ситуацию с анимированными баннерами, когда стандарт GIF так и не дотянул до необходимого уровня, а PNG, который прочили ему на замену так и остался статичным. Ведь вряд ли вы сейчас видите рекламу, произведенную в технологии APNG (Animated PNG), и, конечно, все красивое, динамичное и красочное сейчас связано с Adobe Flash. В его лице мы видим чуть ли не единственный пример плагина, обязательного к скачиванию для современных браузеров, то есть технология является массовой.


Adobe Flash

Сам пакет Flash в пору его разработки компанией Macromedia предназначался большей частью даже не для Интернета, а просто для создания 2D-анимации, для воспроизведения которой была необходима специальная виртуальная машина — программный плеер (Flash Player), читающий файлы со специфическим расширением *.swf. Для обслуживания процесса создания анимации в программе Macromedia Flash был предусмотрен простой высокоуровневый скриптовый язык ActionScript, в первой версии довольно тривиальный и не совсем профессиональный с точки зрения программирования. Но на нем, в силу присутствия необходимых для интерактивности атрибутов (отслеживание событий мыши и клавиатуры, возможность их привязки к объектам),  довольно быстро начали писать первые игры. Сам ActionScript является С++-подобным и принадлежит к диаспоре ECMA-262, то есть понятен большинству программирующих.


Программирование для Flash производилось довольно специфично, поскольку весь код помещался в нулевой фрейм. Отсюда такая чисто флэшевая терминология: «программирование в нулевом (или первом) фрейме». 

Почему мы об этом говорим так подробно? Потому что в мультипликационный пакет начали приходить серьезные программисты, создавая целые сообщества. Вторая версия ActionScript стала настоящим хитом, поскольку значительно расширила возможности профессионального программирования, и при этом сам язык оставался довольно простым. О Macromedia Flash уже стали говорить как о полноценной среде разработки (IDE). Примерно в этот же период пакет и технология Flash перекочевала от Macromedia к Adobe, что сначала не сильно отразилось на ситуации, а потом многое поменяло — появился ActionScript 3.0 по сложности и возможностям очень близкий к Java (не путать с JavaScript). На его базе Adobe начала развивать множество своих технологий, которые с переменным успехом внедряются в современный веб.

Но если говорить об эпохе ActionScript 2.0 и программирования на нем, то уже тогда, в период 2006-2007 гг. начали появляться первые попытки создания трехмерных элементов. Изначально это были примитивы, такие как кубы с текстуризацией поверхностей, что после вылилось в целые направления как энтузиастов, так и вполне коммерческих предложений — 3D-движки для Flash. На данный момент можно назвать пятерку самых актуальных для 2011 года: Away3D, Papervision3D, Sandy3D, Flare3D и российский Alternative3D. По существу, все они подразумевают программирование, хотя в последнее время появились и визуальные конструкторы, которые позволяют создавать интерактивные SWF-анимации, включающие 3D-объекты. В этой статье мы рассмотрим подробно наиболее интересный из них.


2011-й. Конкурирующие технологии 


Период 2010-2011гг. можно смело назвать временем серьезных конкуренций в различных сегментах, связанных с вебом и новыми платформами. Причем все точки над «i» должны быть расставлены в ближайшем будущем. В первую очередь следует отметить, что сейчас начал активно вступать в силу новый стандарт HTML 5, который во многом автоматизирует возможности, ранее доступные только за счет сторонних технологий, например, воспроизведение видео и аудио. 



Интеграцией с HTML 5 озабочены разработчики популярных и конкурирующих между собой конструкторов для создания игр, как самый яркий пример — Scirra Construct и YoYo Games GameMaker. И, кстати, они не единственные, кто реализует сейчас подобный вариант экспорта. 


В объявленной новой версии Scirra Conctruct 2 реализована поддержка экспорта в HTML 5. 

При этом стоит отметить, что сейчас разрабатываются и специальные движки, конкретно посвященные созданию приложений и игр для HTML 5, которые с очень большой скоростью раскупаются крупными компаниями. Среди последних примеров из новостей — финский движок Rocket Pack (http://rocketpack.fi), на котором была сделана всего лишь одна игра, уже приобрела компания Walt Disney. Тут стоит сказать, что конструкторы для создания игр также можно рассматривать и как удобные среды разработки многочисленных пользовательских приложений, и совсем не обязательно для индустрии развлечений. В целом, можно согласиться с общим мнением о том, что внедрение HTML 5 — это довольно сильный удар по гегемонии технологии Flash, но не основной. На поле 2D мы можем ожидать перераспределение приоритетов, причем очевидно, что и Adobe к такому варианту развития была готова. 

Сегодня самый лакомый кусок пирога — это интеграция 3D-контента в веб, и, естественно, в эту нишу кроме Adobe сейчас стремятся и другие сильные игроки рынка. Напомним, что в 2006-м году права на управление стандартом OpenGL были переданы промышленному консорциуму, в который входят около 100 именитых компаний, — Khronos Group. С того момента OpenGL начал развиваться более динамично, причем это не единственный стандарт, продвигаемый консорциумом. 



Одной из главных особенностей OpenGL является его кроссплатформенность. Игры и графические приложения, разработанные на его базе, одинаково хорошо читаемы на компьютерах с различными ОС, где есть его поддержка, а она имеется фактически везде. Хотя стоит и немного обратиться к истории. Дело в том, что изначально OpenGL конкурировал в области игр с Direct3D, и отличался от последнего другой структурой распределения вычислений, которые большей частью производились на программном уровне, а видеоадаптер задействовался только в рамках базовых функций для вывода графики. Этим обеспечивалась высокая переносимость — качество «картинки» на разных компьютерах, с различными ОС и видеоадаптерами везде было фактически одинаковым. Но при этом была довольно низкая скорость визуализации. 

В Direct3D львиная часть вычислений возлагается на плечи видеоадаптера. Это дает высокую скорость визуализации, но качество изображения напрямую зависит от возможностей и алгоритмов конкретного устройства. 

Поскольку быстрота обработки тогда ставилась во главу угла, большинство крупных разработчиков игр от использования OpenGL в конце 90-х-начале 2000-х отказалось. Можно привести только единичные примеры крупных проектов, реализованных на базе этого графического API в тот период. Но при этом стоит отметить, что Direct3D — это только платформа РС с ОС Windows, которая довольно быстро насытилась продукцией. 

В конце прошлого десятилетия появилось множество экономически выгодных платформ, включая всевозможные планшеты, КПК, смартфоны и нетбуки. Также нельзя обойти стороной и серьезную активизацию Apple, и в последнее время Google с их Android. Естественно, в качестве основного графического API для них был выбран OpenGL. Так что события, имевшие свое развитие, начиная с 2006-го года, довольно легко объяснимы.



Консорциум Khronos Group пошел дальше, а именно, создал специальную разновидность стандарта для мобильных платформ OpenGL ES (OpenGL for Embedded Systems — OpenGL для встраиваемых систем), а сейчас пришел черед реализации и активного распространения новинки — WebGL. 



WebGL, как понятно из названия, разработана специально для отображения в браузерах трехмерного контента. По существу, данная технология обеспечивает доступ из браузера к аппаратным ресурсам компьютера пользователя, на базе которых через OpenGL или OpenGL ES производятся все необходимые вычисления. Стоит отметить, что в создании WebGL приняли активное участие разработчики браузеров Apple Safari, Google Chrome, Mozilla Firefox и Opera, а также специалисты AMD и Nvidia. Хотя на момент написания этой статьи интеграция происходит пока не очень гладко. Она полноценно реализована в четвертой версии Firefox, поддерживается со стороны Chrome и Safari. И тут может быть два варианта развития: или технология разовьется, для чего помимо декларирования нужно крупное сообщество ее поддержки, или станет очередным вариантом VRML, о котором много писали, но ничего не сделали. Причем вероятность того или иного исхода — 50/50.



Что касается Adobe, у них есть преимущество — за решениями компании стоит большое, если не сказать огромное количество разработчиков. В качестве альтернативы WebGL, они предложили подобную технологию, а именно набор низкоуровневых API Molehill, полноценная бета-версия которого появилась в конце февраля. Причем эта технология развивалась в течение всего 2010-го года, была активно задействована в среде разработчиков, связанных с 3D-технологиями в Flash. 



Своим появлением Molehill убивает сразу двух зайцев. Во-первых, все расчеты по аналогии с WebGL возлагаются на аппаратную часть пользовательского компьютера, во-вторых, это уже основа для полноценного 3D-моделирования и анимации. Возможности, которые предоставляет технология Molehill, близки по качественному уровню к 3D-играм высокого класса, то есть могут выводиться несколько миллионов полигонов, есть возможности для полноценной реализации освещения, теней и наложения постэффектов. Хотя в данном случае все зависит большей частью от профессионального уровня движка, который использует Molehill в качестве основы. Например, российские разработчики Alternative3D, которые известны своей игрой «Танки онлайн», презентовали новые возможности Molehill и восьмой версии собственного движка в рамках демо-версии MAX Racer (прототип 3D-гонок). 


MAX Racer на базе Molehill

По качеству можно говорить об очень высоком уровне, даже удивительно, что такое возможно на Flash. Массовое внедрение Molehill состоится с 11-й версией Flash Player. При этом стоит отметить, что большинство 3D-технологий, не предусматривающих ее использование, работает и на 10-й версии плеера.  


Ambiera CopperCube




CopperCube от австрийских разработчиков из компании Ambiera изначально базируется на технологиях популярного свободно распространяемого движка/конструктора для создания компьютерных игр Irrlicht, который позволяет работать с низкоуровневыми графическими API Direct3D и Open GL. Сам Irrlicht имеет не так много возможностей, поэтому часто рекомендуется начинающим игроделам для освоения темы.

Разработчики из Ambiera посмотрели на вопрос несколько иначе. Дело в том, что нередко требуется визуализация тех же интерьеров, архитектурных объектов таким образом, чтобы их можно было вращать, рассматривая с различных сторон, изменять положение камеры и так далее. То есть, интерактивные презентационные приложения современного уровня. Экспорт CopperCube производится в исполняемые файлы Windows (.exe), MacOS (.app), Flash (.swf) с аппаратным ускорением Molehill или без него, WebGL (.html) при визуализации через OpenGL. Все настройки для экспорта производятся автоматически, пользователям нужно только указать несколько основных, таких как разрешение окна и fps (частоту смены кадров), для Flash включить/отключить Molehill и тому подобное. 



В работе Copper Cube является очень упрощенным пакетом, чем-то напоминающим программы трехмерного моделирования, но сильно урезанным по возможностям. Хотя есть и главная особенность — реализован импорт большого количества форматов от различных программ, среди которых: AutoCAD (.dxf), 3D Studio (.ase), 3D Studio (.3ds), Alias Wavefront Maya (.obj), B3D (.b3d), Cartography shop 4 (.csm), COLLADA (.xml, .dae), DeleD (.dmf), FSRad oct (.oct), Irrlicht (.irrmesh и .irr), Lightwave 3D (.lwo), Microsoft DirectX (.x), Milkshape (.ms3d), My3DTools 3 (.my3D), OGRE (.mesh), Pulsar LMTools (.lmts), Quake 3 уровни (.bsp), Quake 2 модели (.md2), STL (.stl), Stanford Polygon Lib (.ply), Truespace (.cob и .scn). Импортироваться могут как отдельные статические модели, так и анимированные, а также сцены. Есть возможность использования в качестве текстур графических файлов основных распространенных стандартов. Что касается звука, могут импортироваться стандартные wav, ogg, mp3, а также трекерные — mod, it, s3m, xm. При экспорте общая звуковая картина преобразуется в пространственную 3D. То есть, реализуется локализация источников звука в зависимости от расположения наблюдателя. 

Если говорить конкретно о 3D-объектах, сразу стоит отметить, что речь идет о работе с низкополигональным (lo-poly) контентом, c hi-poly программа просто не справляется. Это стоит знать при импорте моделей. Причем в качестве рекомендуемого вспомогательного 3D-пакета авторы CopperCube рекомендуют Milkshape, который известен разве что некоторым разработчикам компьютерных игр как удобный рабочий инструмент, конкретно работающий с lo-poly, текстурированием и скелетной анимацией. 

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

Фактически с любым объектом сцены можно связать определенные модели поведения (Actions&Behaviors), которых довольно много, например: передвижение по определенной траектории, а также отклик на различные события, среди которых: клик указателем мыши, размещение указателя над объектом, нажатие любой кнопки на клавиатуре, также можно заставить объект совершать какие-либо действия через заданные промежутки времени (например, каждые 20 секунд). Анимации могут подвергаться и текстуры (смена, смещение).

Что касается интерактивных откликов на события, то в данном случае можно заставить объект двигаться, поворачиваться, переключить камеру, воспроизвести звук, перейти на другую сцену, открыть веб-сайт, запустить сценарий JavaScript и т. п. 

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

Интерактивное приложение. Управление камерой производится с помощью указателя и колесика мыши либо с помощью стрелок на компьютерной клавиатуре. Также есть два объекта 2D overlay. Для воспроизведения нужен Flash Player 10 (Molehill отключен).

Другой вариант предусматривает автоматизированное движение камеры, для чего вам нужно указать траекторию и скорость движения.  


Тот же пример, но камера летает по траектории (окружности). Для воспроизведения нужен Flash Player 10 (Molehill отключен).

Основные объекты, которые могут применяться в сценах:
  • 3D-примитив — куб.
  • 3D-примитив — сфера. 
  • 3D-примитив — конус.
  • 3D-примитив — плоская панель.
  • 3D-примитив — комната, состоящая из четырех стен, потолка и пола. В настройках сразу указываются текстуры. 
  • Импортированный меш — любая 3D-модель вышеописанных стандартов.
  • Импортированный анимированный меш — анимированная 3D-модель может быть импортирована только в одном из трех форматов Milkshape (.ms3d), Microsoft DirectX (.x), B3D files (.b3d). 
  • Точечный источник света. 
  • Камера — 5 типов.
  • Billboard и Vertical Billboard, практическое назначение которых не совсем понятно и в документации не объясняется.
  • Hotspot — горячая точка, а именно активный объект, который присутствует в виде изображения, по нажатию на которое может производиться одно из трех действий: загрузка интернет-страницы, переключение на другую сцену проекта, запуск сценария JavaScript. 
  • Path — путь, делается для создания траектории движения любого из объектов.
  • 2D overlay — статический 2D-слой, который будет всегда находиться перед зрителем, в него можно загружать любые графические изображения, отображать текст, менять цвет и уровень прозрачности фона. 
Конечно, наиболее интересным является объект 2D overlay, с помощью которого можно сделать интерактивное меню, постоянно присутствующее в сцене. Единственный недостаток для разработчиков нашего региона — проблема с кодировкой русского языка, что в данном случае как всегда обходится стандартно для флэш-технологии — перевод текста в графические объекты на прозрачном фоне (в данном случае уместно отдельно создать, а после импортировать в программу файлы PNG или GIF). 
Рабочие инструменты для работы с 3D-объектами:

Смещение по трем осям.
Вращение по трем осям.
Уменьшение/увеличение по трем осям.

Инструментария для редактирования моделей и текстур нет.

Сама программа все-таки довольно сыровата, но стоит сказать, что это первая ласточка, которая позволяет быстро создавать трехмерные флэш-баннеры или WebGL-блоки без программирования как такового. Trial-версия имеет не много ограничений — 30-дневный срок использования, отсутствие менеджера сцен, надпись о использовании нелицензионного продукта в формируемых файлах. CopperCube Lite стоит 99 евро, CopperCube Pro — 299 евро. 

Отдельный вопрос, который может заинтересовать многих — это «вес» получающихся результатов. В принципе, он зависит в большей степени от полигональности и количества используемых в сцене объектов плюс к этому немаловажный фактор — объем текстурных файлов, и очень незначительное влияние на размер оказывают выходное разрешение, в которое производится экспорт, и fps. В целом, при экспериментах с программой удалось получить результаты от 100 Кб и выше. Работающие результаты лучше посмотреть в совокупности примеров самой программы

Кстати, сама идея использования графических игровых движков для интерактивной визуализации полноценных 3D-сцен среди специалистов в области дизайна не нова. Например, очень многие уже используют для этих целей такие профессиональные вещи как Unreal SDK. Презентация в данном случае по функционалу больше напоминает небольшую видеоигру. Причем, и в кино игровые движки проникли достаточно сильно, достаточно сказать, что свет в фильме «Аватар» рассчитывался ими, потому как они более быстры. Но это тема для отдельного материала.  


Кристофер

Перепечатка материалов или их фрагментов возможна только с согласия автора



 




Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ассоциация боевых роботов
Рекомендуем...
Новости

Разделы

Опросы

Какой язык программирования вы считаете наиболее актуальным сегодня?
Всего ответов: 329

Друзья

3D-кино






Найти на сайте:








Об авторе       Контакты      Вопрос-ответ        Хостинг от uCoz