Оригинальный автор(ы) | Роб Бейтман, Александр Задорожный, Фабрис Клозье, Питер Капелян, Грег Колдуэлл, Андреас Энгстром, Стивен Уайт, Дэвид Ленертс, Ричард Олссон, Кауэ Ванек [1] |
---|---|
Разработчик(и) | Фонд «Выезд» |
Первоначальный выпуск | 2007 ( 2007 ) | [2] [3]
Окончательный релиз | 4.1.6 / 24 января 2014 г. ( 2014-01-24 ) [4] |
Репозиторий |
|
Написано в | ActionScript 3 , TypeScript |
Операционная система | Веб , Windows , iOS , Android , BlackBerry |
Тип | Игровой движок |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | away3d.com |
Away3D — это платформа с открытым исходным кодом для разработки интерактивной 3D-графики для видеоигр и приложений в Adobe Flash или HTML5 . Платформа состоит из редактора 3D-мира (Away Builder), [5] [6] движка 3D -графики (Away3D или AwayJS), движка 3D-физики (Away Physics) [7] и сжатого формата файла 3D-модели (AWD). [8] [9] [10]
Разработка управляется Away Foundation , некоммерческой организацией из Великобритании, которая занимается созданием и поддержкой бесплатных и открытых программных ресурсов для высокопроизводительных мобильных игр и приложений . [10] [11] Фонд поддерживается корпоративным спонсорством ( Adobe , [12] JetBrains [13] и другими) и индивидуальными жертвователями. [11]
Away Builder — это интегрированная среда разработки с открытым исходным кодом для импорта, уточнения, подготовки и экспорта 3D-моделей и анимаций. [5] Он может импортировать 3D-модели из различных 3D-приложений, таких как Autodesk 3ds Max , и может запекать освещение в текстурные карты. [5] Основная цель Away Builder — экспорт пакетов 3D-моделей для движка Away3D. [5] Он поддерживает сжатый двоичный формат AWD, что позволяет использовать меньшие размеры для 3D-моделей, чем форматы на основе ASCII, такие как OBJ .
Плагин расширения Away позволяет экспортировать 2D- и 3D-контент из Adobe Animate в Away3D или AwayJS. [14]
Away3D — это движок ActionScript 3 с открытым исходным кодом для разработки интерактивной 3D-графики в Adobe Flash Player и Adobe AIR . Away3D работает в современных веб-браузерах, использующих Adobe Flash Player , и использует Stage3D для ускоренного рендеринга на GPU. [ требуется ссылка ]
Движок может визуализировать 3D-модели и выполнять различные другие 3D-вычисления. Он поддерживает иерархическое преобразование объектов с такими функциями, как положение, вращение и масштабирование, визуализация растровых текстур . [15] [16] Освещение в реальном времени поддерживается с использованием затенения по Фонгу , затенения по Гуро , точечного и направленного освещения , каскадных теней , нормального и зеркального отображения , глобального освещения и эффектов тумана. [11] [16] Он также поддерживает стереоскопический рендеринг , 3D-звук , инструменты экструзии , анимацию частиц и скелетную анимацию . [16] Эффекты постобработки могут использоваться для повышения качества графики, а Away3D поддерживает цветение , размытие , глубину резкости и размытие движения . [16]
Away3D 4 и более поздние версии полностью поддерживают графику с ускорением на GPU с использованием API Stage3D, представленного в Flash Player 11, освобождая центральный процессор для других вычислительных задач. [17] Поскольку графические процессоры способны визуализировать гораздо больше текстурированных треугольников в секунду, они обеспечивают гораздо большую детализацию и качество, а также до 100 000 треугольников на кадр вместо типичного потолка в 1000 при визуализации Flash на базе CPU. [18]
Away Physics — это физический движок, основанный на физической библиотеке Bullet , для обнаружения столкновений , динамики мягких и твердых тел . [7] Движок создан совместно командами Away3D и JiglibFlash и тесно интегрирован с конвейером рендеринга Away3D. [7]
AwayJS — это движок JavaScript 3D-рендеринга графики с открытым исходным кодом для веб-браузеров HTML5 , являющийся портом Away3D на основе Adobe Flash . [19] [20] Кодовая база Away3D была перенесена в Microsoft TypeScript , строго типизированную версию JavaScript , которая компилируется в файлы JavaScript для совместимости с современными веб-стандартами. [21] [22] AwayJS работает в современных веб-браузерах и использует WebGL для рендеринга с ускорением на GPU. [19]
Движок может визуализировать 3D-модели и выполнять различные другие 3D-вычисления. Он поддерживает иерархическую трансформацию объектов с такими функциями, как положение, вращение и масштабирование, визуализация растровых текстур и освещение в реальном времени с использованием затенения Фонга или затенения Гуро . [19] Он также поддерживает теневое отображение , анимацию частиц и скелетную анимацию . [19]
AwayJS может визуализировать 2D и 3D графический контент с помощью WebGL для ускоренного рендеринга на GPU. [23] Он позволяет разработчикам использовать существующий набор инструментов Away Builder для редактирования, уточнения, сжатия и запекания текстур 3D-моделей и анимаций. [24] AwayJS также поддерживает сжатый двоичный формат AWD, что позволяет использовать меньшие размеры для 3D-моделей, чем форматы на основе ASCII , такие как OBJ . [25]
API AwayJS совместим с Flash-версией Away3D, что позволяет существующим разработчикам легко перейти с Flash на HTML5. [19] Для сохранения обратной совместимости с Away3D, AwayJS позволяет разработчикам писать шейдеры GPU на языке Adobe Graphics Assembly Language (AGAL) или стандартном языке шейдеров OpenGL (GLSL). [19]
Away3D был создан в 2007 году Александром Задорожным и Робом Бейтманом [2] как ответвление Papervision3D . [3]
Away3D активно участвовал в сообществе с момента своего появления в 2007 году и заменил Papervision3D после того, как он был обновлен для поддержки ускоренного рендеринга на GPU с использованием Stage3D . Было опубликовано три руководства по разработке 3D-контента с помощью Away3D. [26] [27] [28]
Автор утверждает, что движок начинался как проект для досуга и был создан ради развлечения. После того, как крупные рекламные агентства и издатели игр начали его, им пришлось «развиваться, чтобы идти в ногу». В интервью он далее заявляет:
Мы никогда не осознавали, насколько большим он станет, но нашим намерением всегда было предоставить доступные инструменты и библиотеки, которые помогают в создании 3D-контента, для всех, все бесплатно и с открытым исходным кодом. Видеть, какие удивительные вещи люди создают с помощью наших библиотек, никогда не надоедает, и есть еще так много того, что мы хотим улучшить и добавить.
— Роберт Бейтман, основатель, интервью с Робертом Бейтманом, основателем Away3d, JetBrains [10]
В 2009 году сообщество Away3D выпустило Away3D Lite, облегченную версию движка для Flash-рекламы и другого контента с ограничениями по размеру. [29] [30] Away3D Lite был самым быстрым и самым маленьким полнофункциональным 3D-движком, созданным для Flash. Он весил 25 КБ и работал в 4 раза быстрее, чем полный движок Away3D. [30] Дальнейшие версии не выпускались. [29]
В 2011 году в разделе «3D с Flash» книги Flash было отмечено, что «Away3D и Alternativa3D в настоящее время являются предпочтительными решениями с точки зрения производительности и функциональности, поскольку у них более активное сообщество разработчиков» [3] .
В 2013 году Adobe выбрала Away3D в качестве единственного 3D-движка, включенного в Adobe Gaming SDK. [31] [32] С тех пор Adobe финансировала дальнейшую разработку Away3D и Away Builder, [33] а также обновила Adobe Gaming SDK новыми версиями Away3D. [34]
В 2016 году Away3D 1.2 был портирован на многоплатформенный язык Haxe , что позволило кросс-компилировать его в JavaScript и другие языки, поддерживающие 3D-графику. [35] Это также позволяет Away3D работать на OpenFL , программной платформе с API, очень похожим на API Adobe Flash Player . [36]