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
[править | править код]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 оснащён следующими функциями:
- Работа с освещением:
- затенение по Фонгу;
- метод тонирования Гуро;
- рассеянный и направленный свет;
- метод теневых карт;
- карты отражений;
- глобальное освещение;
- эффект тумана.
- Инструменты:
- стереоскопический рендеринг;
- 3D-панорамирование звука;
- инструменты для экструдирования;
- анимация частиц;
- скелетная анимация.
- Эффекты постобработки:
- свечение;
- размытие;
- изменение глубины резкости;
- размытие в движении.
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-контента, для каждого — совершенно бесплатно и с открытым исходным кодом. Наблюдать за тем, какие замечательные вещи люди создают, пользуясь нашими инструментами и библиотеками, никогда не надоедает. Более того, всё ещё есть так много функций, которые мы хотели бы улучшить или добавить.
— Роб Бэйтмен в интервью с 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].
Литература
[править | править код]- Richard Olsson. The Essential Guide to 3D in Flash / Richard Olsson, Rob Bateman. — Apress, 2010. — ISBN 978-1-4302-2541-6.
- Casperson, Matthew. Away3D 3.6 Essentials. — Packt Publishing Ltd, 2011. — ISBN 978-1-84951-207-7.
- Ivanov, Michael. Away3D 3.6 Cookbook. — Packt Publishing Ltd, 2011. — ISBN 978-1-84951-281-7.
Примечания
[править | править код]- ↑ 1 2 3 4 Away Builder - Away Tools . awaytools.com. Дата обращения: 19 сентября 2021. Архивировано 10 февраля 2015 года.
- ↑ GitHub - awaytools/AwayBuilder (англ.). GitHub. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
- ↑ 1 2 Away Physics | The Away Foundation (амер. англ.). Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
- ↑ 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 года.
- ↑ AWD Format - Away Tools . awaytools.com. Дата обращения: 19 сентября 2021. Архивировано 29 января 2015 года.
- ↑ Away Extensions . exchange.adobe.com. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
- ↑ Features > Away3D . away3d.com. Дата обращения: 19 сентября 2021. Архивировано 5 марта 2016 года.
- ↑ Stage3D vs WebGL Performance — Airtight Interactive . www.airtightinteractive.com. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
- ↑ 1 2 3 Home > Away3D . typescript.away3d.com. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
- ↑ AwayJS (англ.). GitHub. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
- ↑ Blog > The Away Foundation at Reasons to be Creative > Away3D . away3d.com. Дата обращения: 19 сентября 2021. Архивировано 9 февраля 2014 года.
- ↑ Starling JS flocking to the Away Foundation (англ.). Gamua. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.
- ↑ 1 2 Arnaud Remi. Game Engine Gems / под ред. Eric Lengyel. — CRC Press, 2011. — С. 207—208. — ISBN 978-1-56881-437-7.
- ↑ Michael Ivanov. Away3d 3.6 Cookbook. — 2011-05-24. Архивировано 17 сентября 2021 года.
- ↑ Matthew Casperson. Away3D 3.6 Essentials. — 2011-01-25.
- ↑ Richard Olsson, Rob Bateman. The Essential Guide to 3D in Flash. — 2010-05-05.
- ↑ Download > Away3D Lite Version 1.0 > Away3D . away3d.com. Дата обращения: 19 сентября 2021. Архивировано 8 марта 2016 года.
- ↑ away3d (5.0.9) . Haxe - The Cross-platform Toolkit. Дата обращения: 19 сентября 2021. Архивировано 17 сентября 2021 года.