Русская Википедия: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 оснащён следующими функциями:
- Работа с освещением:
- затенение по Фонгу;
- метод тонирования Гуро;
- рассеянный и направленный свет;
- метод теневых карт;
- карты отражений;
- глобальное освещение;
- эффект тумана.
- Инструменты:
- стереоскопический рендеринг;
- 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-контента, для каждого — совершенно бесплатно и с открытым исходным кодом. Наблюдать за тем, какие замечательные вещи люди создают, пользуясь нашими инструментами и библиотеками, никогда не надоедает. Более того, всё ещё есть так много функций, которые мы хотели бы улучшить или добавить.Шаблон:Конец цитаты
В 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,0 1,1 1,2 1,3 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 3,0 3,1 Шаблон:Cite web
- ↑ 4,0 4,1 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 9,0 9,1 9,2 Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ 13,0 13,1 Шаблон:Книга
- ↑ Шаблон:Книга
- ↑ Шаблон:Книга
- ↑ Шаблон:Книга
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web