Away3D

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Away3D
Тип графический движок
Разработчик Away Foundation
Ключевые программисты Rob Bateman, Alexander Zadorozhny, Fabrice Closier, Peter Kapelyan, Greg Caldwell, Andreas Engstrom, Stephen White, David Lenaerts, Richard Olsson, Cauê Waneck
Дата выхода 2007
Поддерживаемые ОС Web, Windows, iOS, Android, BlackBerry
Написан на языках ActionScript 3, TypeScript
Лицензия Apache 2.0
Последняя версия 4.1.6
away3d.com

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

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

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 — открытый движок на 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 — открытый движок рендеринга 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-контента, для каждого — совершенно бесплатно и с открытым исходным кодом. Наблюдать за тем, какие замечательные вещи люди создают, пользуясь нашими инструментами и библиотеками, никогда не надоедает. Более того, всё ещё есть так много функций, которые мы хотели бы улучшить или добавить.

Роб Бэйтмен в интервью с JetBrains[4].

В 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].

Литература

[править | править код]

Примечания

[править | править код]
  1. 1 2 3 4 Away Builder - Away Tools. awaytools.com. Дата обращения: 19 сентября 2021. Архивировано 10 февраля 2015 года.
  2. GitHub - awaytools/AwayBuilder (англ.). GitHub. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
  3. 1 2 Away Physics | The Away Foundation (амер. англ.). Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
  4. 1 2 3 Interview with Robert Bateman, founder of Away3d, an open-source 3D engine for the Flash Platform | JetBrains News (амер. англ.). JetBrains Blog. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
  5. AWD Format - Away Tools. awaytools.com. Дата обращения: 19 сентября 2021. Архивировано 29 января 2015 года.
  6. Away Extensions. exchange.adobe.com. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
  7. Features > Away3D. away3d.com. Дата обращения: 19 сентября 2021. Архивировано 5 марта 2016 года.
  8. Stage3D vs WebGL Performance — Airtight Interactive. www.airtightinteractive.com. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
  9. 1 2 3 Home > Away3D. typescript.away3d.com. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
  10. AwayJS (англ.). GitHub. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
  11. Blog > The Away Foundation at Reasons to be Creative > Away3D. away3d.com. Дата обращения: 19 сентября 2021. Архивировано 9 февраля 2014 года.
  12. Starling JS flocking to the Away Foundation (англ.). Gamua. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
  13. 1 2 Arnaud Remi. Game Engine Gems / под ред. Eric Lengyel. — CRC Press, 2011. — С. 207—208. — ISBN 978-1-56881-437-7.
  14. Michael Ivanov. Away3d 3.6 Cookbook. — 2011-05-24. Архивировано 17 сентября 2021 года.
  15. Matthew Casperson. Away3D 3.6 Essentials. — 2011-01-25.
  16. Richard Olsson, Rob Bateman. The Essential Guide to 3D in Flash. — 2010-05-05.
  17. Download > Away3D Lite Version 1.0 > Away3D. away3d.com. Дата обращения: 19 сентября 2021. Архивировано 8 марта 2016 года.
  18. away3d (5.0.9). Haxe - The Cross-platform Toolkit. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.