Interested Article - Away3D
- 2020-12-31
- 1
Away3D — платформа с открытым исходным кодом для создания интерактивных трёхмерных приложений и игр на базе Adobe Flash или HTML5 . Платформа состоит из трёхмерного редактора мира (Away Builder), трёхмерного графического движка (Away3D или AwayJS), а также трёхмерного физического движка (Away Physics).
Реализацией занимается британская некоммерческая организация Away Foundation , целями которой являются создание и обслуживание бесплатного открытого программного обеспечения для разработки высокопроизводительных мобильных игр и приложений. Данное учреждение финансируется корпоративными спонсорами (такими как Adobe , JetBrains и другими) и индивидуальными лицами.
Структура
Away Builder
Away Builder — открытая интегрированная среда разработки для импорта, совершенствования, заготовки и экспорта трёхмерных моделей и анимаций. Она способна импортировать данные из программ типа Autodesk 3ds Max , запекать освещение в карты текстур. Основная задача этого компонента заключается в экспорте пакетов 3D-моделей для движка Away3D. Away Builder поддерживает сжатый бинарный формат AWD, позволяя достичь меньшего объёма файлов, чем при использовании форматов на основе ASCII (например, OBJ ).
Плагин Away Extensions даёт возможность экспорта трёхмерных и двумерных проектов из Adobe Animate в Away3D или AwayJS.
Away3D
Away3D — открытый движок на ActionScript 3 для разработки интерактивной 3D-графики средствами Adobe Flash Player и Adobe AIR . Away3D запускается на браузерах , использовавших Adobe Flash Player, и применяет Stage3D для аппаратно-ускоренного рендеринга .
Движок может рендерить 3D-модели и выполнять другие различные вычисления, связанные с трёхмерной графикой. Он поддерживает иерархическую трансформацию объектов с такими свойствами, как позиция, вращение, масштабирование, рендеринг текстур.
Away3D оснащён следующими функциями:
-
Работа с освещением:
- затенение по Фонгу ;
- метод тонирования Гуро ;
- рассеянный и направленный свет;
- метод теневых карт ;
- карты отражений;
- глобальное освещение;
- эффект тумана.
-
Инструменты:
- стереоскопический рендеринг;
- 3D-панорамирование звука;
- инструменты для экструдирования;
- анимация частиц;
- скелетная анимация .
-
Эффекты постобработки:
- свечение ;
- размытие;
- изменение глубины резкости;
- размытие в движении .
4-я версия Away3D и выше полностью поддерживают аппаратное ускорение с использованием API Stage3D, представленным в Adobe Flash Player 11, освобождая центральный процессор под другие вычислительные задачи. Так как графические процессоры способны отрисовывать большее количество текстурированных полигонов в секунду (до 100 тыс. полигонов на кадр вместо обычной тысячи при рендеринге с применением центрального процессора), это позволяет улучшить детальность и качество изображения.
Away Physics — физический движок, основанный на Bullet и служащий для определения коллизии, динамического отображения твёрдых и мягких тел. Он разработан совместно с командой JiglibFlash и тесно интегрирован в конвейер рендеринга Away3D.
AwayJS
AwayJS — открытый движок рендеринга 3D-графики для веб-браузеров, являющийся портированной версией Away3D на базе Adobe Flash, который был создан в результате переноса исходного кода Away3D на язык TypeScript . Этот движок работает на современных браузерах и использует WebGL для аппаратно-ускоренного рендеринга. Он поддерживает иерархическую трансформацию объектов, наряду с Away3D.
AwayJS располагает следующими функциями:
- затенение по Фонгу;
- метод тонирования Гуро;
- метод теневых карт;
- анимация частиц;
- скелетная анимация.
Движок может отрисовывать как двумерный, так и трёхмерный контент. Это позволяет разработчикам задействовать существующую среду Away Builder для редактирования, улучшения, сжатия и запекания текстур 3D-моделей, анимаций. AwayJS также может читать ранее упомянутый формат AWD.
API движка согласован с Flash-версией Away3D, что помогает разработчикам безболезненно переходить с Flash на HTML5. Чтобы обеспечить обратную совместимость с Away3D, в AwayJS предусмотрена возможность написания шейдеров на языках AGAL (Adobe Graphics Assembly Language) и GLSL (OpenGL Shading Language).
История
Разработка платформы была запущена в 2007 году Александром Задорожным и Робом Бэйтменом в виде ответвления от проекта Papervision3D.
Благодаря активному вовлечению сообщества Away3D вскоре заменил Papervision3D после обновления, добавляющего поддержку аппаратно-ускоренного рендеринга с применением Stage3D. Были опубликованы три книги о разработке 3D-контента при помощи Away3D.
Один из авторов заявил, что изначально движок создавался в свободное время без каких-либо серьёзных намерений. Возымев успех среди рекламных агентств и издателей игр, авторам пришлось «идти в ногу с ростом популярности».
Мы бы никогда не подумали, что проект станет настолько большим, но нашей целью всегда было предоставление доступных инструментов и библиотек, помогающих в создании 3D-контента, для каждого — совершенно бесплатно и с открытым исходным кодом. Наблюдать за тем, какие замечательные вещи люди создают, пользуясь нашими инструментами и библиотеками, никогда не надоедает. Более того, всё ещё есть так много функций, которые мы хотели бы улучшить или добавить.
— Роб Бэйтмен в интервью с JetBrains.
В 2009 году сообщество Away3D выпустило Away3D Lite, более лёгкую версию движка с возможностью добавления рекламы и другого контента с ограничениями в размере. Away3D Lite являлся самым быстрым и легковесным 3D-движком, созданным на Flash. Его размер составлял 25 килобайт, а быстродействие было в 4 раза лучше полной версии. Никаких дальнейших версий программы не последовало.
В 2011 году в книге «Game Engine Gems 2» в разделе «3D with Flash» Away3D и Alternativa3D были обозначены предпочтительными решениями за их производительность и функционал, так как оба имели наиболее активное сообщество разработчиков.
В 2013 году Adobe выбрала Away3D в качестве единственного движка, входящего в состав Adobe Gaming SDK. Компания профинансировала дальнейшее развитие Away3D и Away Builder.
В 2016 году Away3D 1.2 был перенесён на мультиплатформенный язык Haxe , позволяющий движку быть кросс-компилируемым . Это также позволяет запускать Away3D на OpenFL, фреймворке с API, очень похожим на API Adobe Flash Player.
Литература
- Richard Olsson. The Essential Guide to 3D in Flash / Richard Olsson, Rob Bateman. — Apress, 2010. — ISBN 978-1-4302-2541-6 .
- Casperson, Matthew. . — 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 .
Примечания
- ↑ . awaytools.com . Дата обращения: 19 сентября 2021. 10 февраля 2015 года.
- (англ.) . GitHub . Дата обращения: 19 сентября 2021. 17 сентября 2021 года.
- ↑ (амер. англ.) . Дата обращения: 19 сентября 2021. 17 сентября 2021 года.
- ↑ (амер. англ.) . JetBrains Blog . Дата обращения: 19 сентября 2021. 17 сентября 2021 года.
- . awaytools.com . Дата обращения: 19 сентября 2021. 29 января 2015 года.
- . exchange.adobe.com . Дата обращения: 19 сентября 2021. 17 сентября 2021 года.
- . away3d.com . Дата обращения: 19 сентября 2021. 5 марта 2016 года.
- . www.airtightinteractive.com . Дата обращения: 19 сентября 2021. 17 сентября 2021 года.
- ↑ . typescript.away3d.com . Дата обращения: 19 сентября 2021. 17 сентября 2021 года.
- (англ.) . GitHub . Дата обращения: 19 сентября 2021. 17 сентября 2021 года.
- . away3d.com . Дата обращения: 19 сентября 2021. 9 февраля 2014 года.
- (англ.) . Gamua . Дата обращения: 19 сентября 2021. 17 сентября 2021 года.
- ↑ Arnaud Remi. Game Engine Gems / под ред. Eric Lengyel. — CRC Press, 2011. — С. 207—208. — ISBN 978-1-56881-437-7 .
- Michael Ivanov. . — 2011-05-24. 17 сентября 2021 года.
- Matthew Casperson. . — 2011-01-25.
- Richard Olsson, Rob Bateman. . — 2010-05-05.
- . away3d.com . Дата обращения: 19 сентября 2021. 8 марта 2016 года.
- . Haxe - The Cross-platform Toolkit . Дата обращения: 19 сентября 2021. 17 сентября 2021 года.
Ссылки
- 2020-12-31
- 1