Русская Википедия:Away3D

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Шаблон:Карточка движка Away3D — это платформа с открытым исходным кодом для создания интерактивных трёхмерных приложений и игр на базе Adobe Flash или HTML5. Платформа состоит из трёхмерного редактора мира (Away Builder),[1][2] трёхмерного графического движка (Away3D или AwayJS), а также трёхмерного физического движка (Away Physics).[3]

Реализацией занимается британская некоммерческая организация Away Foundation, целями которой являются создание и обслуживание бесплатного открытого программного обеспечения для разработки высокопроизводительных мобильных игр и приложений.[4] Данное учреждение финансируется корпоративными спонсорами (такими как Adobe, JetBrains и другими) и индивидуальными лицами.

Структура

Away Builder

Away Builder — открытая интегрированная среда разработки для импорта, совершенствования, заготовки и экспорта трёхмерных моделей и анимаций.[1] Она способна импортировать данные из программ типа Autodesk 3ds Max, запекать освещение в карты текстур.[1] Основная задача этого компонента заключается в экспорте пакетов 3D-моделей для движка Away3D.[1] Away Builder поддерживает сжатый бинарный формат AWD, позволяя достичь меньшего объёма файлов, чем при использовании форматов на основе ASCII (например, OBJ).[4][5]

Плагин Away Extensions даёт возможность экспорта трёхмерных и двумерных проектов из Adobe Animate в Away3D или AwayJS.[6]

Away3D

Away3D — открытый движок на ActionScript 3 для разработки интерактивной 3D-графики средствами Adobe Flash Player и Adobe AIR. Away3D запускается на браузерах, использовавших Adobe Flash Player, и применяет Stage3D для аппаратно-ускоренного рендеринга.

Движок может рендерить 3D-модели и выполнять другие различные вычисления, связанные с трёхмерной графикой. Он поддерживает иерархическую трансформацию объектов с такими свойствами, как позиция, вращение, масштабирование, рендеринг текстур.[7]

Away3D оснащён следующими функциями:

  1. Работа с освещением:
  2. Инструменты:
    • стереоскопический рендеринг;
    • 3D-панорамирование звука;
    • инструменты для экструдирования;
    • анимация частиц;
    • скелетная анимация.
  3. Эффекты постобработки:

4-ая версия Away3D и выше полностью поддерживают аппаратное ускорение с использованием API Stage3D, представленным в Adobe Flash Player 11, освобождая центральный процессор под другие вычислительные задачи.[8] Так как графические процессоры способны отрисовывать большее количество текстурированных полигонов в секунду (до 100 тыс. полигонов на кадр вместо обычной тысячи при рендеринге с применением центрального процессора), это позволяет улучшить детальность и качество изображения.

Away Physics — физический движок, основанный на Bullet и служащий для определения коллизии, динамического отображения твёрдых и мягких тел. Он разработан совместно с командой JiglibFlash и тесно интегрирован в конвейер рендеринга Away3D.[3]

AwayJS

AwayJS — открытый движок рендеринга 3D-графики для веб-браузеров, являющийся портированной версией Away3D на базе Adobe Flash,[9][10] который был создан в результате переноса исходного кода Away3D на язык TypeScript.[11] Этот движок работает на современных браузерах и использует WebGL для аппаратно-ускоренного рендеринга. Он поддерживает иерархическую трансформацию объектов, наряду с Away3D.[9]

AwayJS располагает следующими функциями:

  • затенение по Фонгу;
  • метод тонирования Гуро;
  • метод теневых карт;
  • анимация частиц;
  • скелетная анимация.

Движок может отрисовывать как двумерный, так и трёхмерный контент.[12] Это позволяет разработчикам задействовать существующую среду Away Builder для редактирования, улучшения, сжатия и запекания текстур 3D-моделей, анимаций. AwayJS также может читать ранее упомянутый формат AWD.

API движка согласован с Flash-версией Away3D, что помогает разработчикам безболезненно переходить с Flash на HTML5. Чтобы обеспечить обратную совместимость с Away3D, в AwayJS предусмотрена возможность написания шейдеров на языках AGAL (Adobe Graphics Assembly Language) и GLSL (OpenGL Shading Language).[9]

История

Разработка платформы была запущена в 2007 году Александром Задорожным и Робом Бэйтменом в виде ответвления от проекта Papervision3D.[13]

Благодаря активному вовлечению сообщества Away3D вскоре заменил Papervision3D после обновления, добавляющего поддержку аппаратно-ускоренного рендеринга с применением Stage3D. Были опубликованы три книги о разработке 3D-контента при помощи Away3D.[14][15][16]

Один из авторов заявил, что изначально движок создавался в свободное время без каких-либо серьёзных намерений. Возымев успех среди рекламных агентств и издателей игр, авторам пришлось «идти в ногу с ростом популярности».

Шаблон:Начало цитатыМы бы никогда не подумали, что проект станет настолько большим, но нашей целью всегда было предоставление доступных инструментов и библиотек, помогающих в создании 3D-контента, для каждого — совершенно бесплатно и с открытым исходным кодом. Наблюдать за тем, какие замечательные вещи люди создают, пользуясь нашими инструментами и библиотеками, никогда не надоедает. Более того, всё ещё есть так много функций, которые мы хотели бы улучшить или добавить.Шаблон:Конец цитаты

В 2009 году сообщество Away3D выпустило Away3D Lite, более лёгкую версию движка с возможностью добавления рекламы и другого контента с ограничениями в размере.[17] Away3D Lite являлся самым быстрым и легковесным 3D-движком, созданным на Flash. Его размер составлял 25 килобайт, а быстродействие было в 4 раза лучше полной версии. Никаких дальнейших версий программы не последовало.

В 2011 году в книге «Game Engine Gems 2» в разделе «3D with Flash» Away3D и Alternativa3D были обозначены предпочтительными решениями за их производительность и функционал, так как оба имели наиболее активное сообщество разработчиков.[13]

В 2013 году Adobe выбрала Away3D в качестве единственного движка, входящего в состав Adobe Gaming SDK. Компания профинансировала дальнейшее развитие Away3D и Away Builder.

В 2016 году Away3D 1.2 был перенесён на мультиплатформенный язык Haxe, позволяющий движку быть кросс-компилируемым. Это также позволяет запускать Away3D на OpenFL, фреймворке с API, очень похожим на API Adobe Flash Player.[18]

Литература

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Игровые движки