В вычислении , Stage3D ( кодовое название бугорка [1] ) является Adobe Flash Player API для визуализации интерактивных 3D - графики с GPU -Ускорение, в рамках флеш - игр и приложений. Приложения Flash Player или AIR, написанные на ActionScript 3, могут использовать Stage3D для визуализации трехмерной графики [2], и такие приложения изначально работают в Windows, Mac OS X, Linux, Apple iOS и Google Android . [3] Stage3D по своему назначению и дизайну аналогичен WebGL . [4] [5]
Stage3D был представлен в Adobe Flash Player 11.0 и AIR 3.0 для облегчения ускорения графическим процессором трехмерного содержимого в приложениях Flash [1] [6] В Flash Player 10 и более ранних версиях приложения 3D Flash должны были полностью отображать трехмерную графику на центральном процессоре . Flash Player 10 поддерживал ограниченную форму поддержки ускорения графического процессора для материалов в API под названием Pixel Bender . [1] [7]
Шейдеры графического процессора в Stage3D выражаются на языке сборки графики Adobe (AGAL). [8] : 57 [9] Объекты Stage3D отличаются от традиционной модели визуализации SWF в том, что они не могут быть добавлены в списки отображения SWF ; вместо этого они должны быть созданы с помощью ActionScript . [1] [8] : 25
Поскольку Stage3D - это библиотека низкого уровня, которую может быть утомительно использовать напрямую, на ее основе были построены несколько высокоуровневых 3D- и 2D-библиотек, чтобы получить выгоду от более высокой производительности, которую она обеспечивает. Неполный список библиотек и игровых движков, использующих его, включает: Unreal Engine 3, [10] [11] Away3D 4, [5] CopperCube , [12] Flare3D , [13] Starling , [14] : vii ND2D или Adobe Labs ' Просцениум. [15] Точно так же 3D-приложения WebGL могут быть построены с использованием three.js , библиотеки более высокого уровня, подобной этим. [5] Away3D и Starling были названы официальными компонентами Adobe Gaming SDK. [16] [17]
История
В 2011 году был выпущен Flash Player 11, а вместе с ним и первая версия Stage3D, позволяющая выполнять 3D-рендеринг с ускорением на GPU для Flash-приложений и игр на настольных платформах, таких как Microsoft Windows и Mac OS X. [1]
В марте 2012 года был выпущен Flash Player 11.2, который включил поддержку Stage3D / GPU на платформах Android и iOS. Игры, использующие API Stage3D, будут работать без изменений на этих мобильных платформах. [18]
В июне 2012 года был выпущен Flash Player 11.3, обеспечивающий прогрессивную потоковую передачу текстурных карт Stage3D, что позволяет повысить производительность и ускорить запуск игр и приложений, использующих Stage3D. [18]
В августе 2012 года был выпущен Flash Player 11.4, который увеличил количество поддерживаемых видеокарт с аппаратным ускорением до 2006 года и разрешил альфа-каналы для сжатых текстур Stage3D. [18]
В марте 2012 года Adobe объявила, что Stage3D будет частью дополнительных функций Flash Player (начиная с версии Flash Player 11.2) и, следовательно, не будет полностью бесплатным для разработчиков, а будет основан на схеме распределения доходов. [19] [20] Различные известные члены сообщества Flash возражали против изменения, называя его «налогом на скорость». [19]
В январе 2013 года Adobe классифицировала все расширенные функции как общедоступные и могла свободно использоваться приложениями Flash без необходимости лицензирования или лицензионных отчислений от разработчиков или издателей. [2]
В сентябре 2012 года был выпущен Flash Player 11.4, позволяющий играм ориентироваться на «ограниченные профили», которые включали старые графические чипы, которые не поддерживали все функции Stage3D. [21]
В апреле 2013 года был выпущен Flash Player 11.7, который поддерживал 16-битные карты текстур для содержимого Stage3D, что позволило сократить использование памяти и улучшить управление памятью. [18]
В июле 2013 года был выпущен Flash Player 11.8, который увеличил максимальный размер текстурной карты до 4096 x 4096, в дополнение к поддержке прямоугольных (неквадратных) текстурных карт для содержимого Stage3D. Это позволило повысить детализацию текстурных карт и создать более крупные текстурные атласы , что повысило производительность. [18]
С 2014 года ускорение графического процессора было удалено из Flash Player 11.8 и более поздних версий для скриптов Pixel Bender. Pixel Bender - это более старая технология для написания высокопроизводительных фильтров обработки изображений на базе ЦП. Это помешало ряду менее обеспеченных проектов, в том числе Scratch Массачусетского технологического института , которым не удавалось найти рабочую силу для быстрого перекодирования своих приложений. [22] [23]
Функции
Stage3D состоит из следующих компонентов:
- Унифицированный API - Унифицированный API ActionScript 3 для управления памятью текстур, затенением вершин, затенением пикселей и рендерингом сетки. Прозрачно выполняется с использованием OpenGL (в Mac OS X и Linux ) и DirectX (в Microsoft Windows ).
- Ускоренный рендеринг графического процессора - встроенная поддержка графических карт, созданных NVidia, AMD и Intel, [3] Черный список несовместимых графических карт.
- Ускоренный рендеринг ЦП - резервное копирование интегрированного программного рендерера с использованием SwiftShader для систем с отсутствующими / несовместимыми видеокартами.
- AGAL (Adobe Графика ассемблер) - язык для написания Shaders (программ , которые работают на GPU) таким образом, что они могут быть преобразованы в OpenGL GLSL шейдеров и DirectX HLSL шейдер на Flash Player.
- ATF (Adobe Texture Format) - это текстура формат таким образом, что текстуры могут быть преобразованы в соответствующие платформы конкретных текстурных форматов , таких как ЦТС на ОС Windows и MacOS, PVRTC на прошивкой. [14] : 47–48 [24]
Stage3D поддерживается следующими компонентами:
- API-интерфейсы XC - «дополнительные функции» для Flash Player, состоящие из кодов операций высокоскоростного управления памятью (известных как «Алхимия» ) и API-интерфейсов Stage3D.
- CrossBridge - набор инструментов кросс-компиляции для компиляции 3D-игр на основе OpenGL или игровых движков для работы в Flash Player.
- Adobe Scout - визуальный профилировщик для Flash-контента, работающего на настольных компьютерах и мобильных устройствах. Scout обеспечивает углубленное профилирование содержимого Stage3D со следующими интегрированными функциями: [25]
- Предварительный просмотр Stage3D - просмотр текущего заднего буфера выполненного содержимого Stage3D [25]
- Запись Stage3D - захват каждой команды Stage3D, выполняемой содержимым Flash, и воспроизведение / пошаговое выполнение выполненных команд [25]
- Использование памяти графического процессора - профиль использования памяти текстур с разбивкой в реальном времени [25]
- Редактор программы Stage3D - изменяйте записанные команды Stage3D в интерактивном режиме и смотрите, как это влияет на рендеринг. Отредактируйте код AGAL для программ вершин и фрагментов, выполняемых каждым вызовом отрисовки. [25]
АГАЛ
Adobe Graphics Assembly Language (AGAL) - это язык ассемблера для написания шейдеров графического процессора . [26] AGAL был изобретен Adobe, чтобы предоставить единый язык шейдеров для всех платформ. [26] Программы AGAL написаны вручную с использованием низкоуровневых кодов операций и регистров . [26] Программы AGAL компилируются в байт-код, который затем встраивается в фильмы Flash SWF . [26] Этот AGAL байткодом автоматически компилируется в OpenGL GLSL шейдеры и DirectX HLSL шейдерами на Adobe Flash Player , в зависимости от платформы. [26]
С помощью AGAL разработчики могут писать шейдеры, которые преобразуют 3D-модели на GPU ( вершинный шейдер ), и шейдеры, которые визуализируют сложные эффекты динамического освещения на GPU ( пиксельный шейдер ). AGAL также обеспечивает высококачественный рендеринг текстур с MIP-отображением . [27] AGAL широко используется в движках Flash- игр, таких как Away3D и Flare3D, для создания различных эффектов. AGAL обычно используется , чтобы обеспечить динамическое освещение , высокую динамику в диапазоне (HDR), альфа - маскирование , многопроходной рендеринг, смещение отображения и отображение среды . [28] [29] Flare3D расширяет AGAL за счет проприетарного языка шейдеров под названием FLSL (FLare3D Shader Language), который упрощает написание программ шейдеров. [29] HLAG - еще один пример языка шейдеров высокого уровня, который компилируется в AGAL. [30]
При переносе 3D-видеоигр C ++ для воспроизведения в Adobe Flash Player разработчики должны перевести традиционные шейдеры HLSL и GLSL в AGAL. [31] Код видеоигры C ++ можно преобразовать во Flash-совместимый код с помощью CrossBridge .
Смотрите также
- Papervision3D
- WebGL
Рекомендации
- ^ а б в г д Джозеф Лабрек (2011). Что нового в Flash Player 11 . O'Reilly Media, Inc. стр. 17. ISBN 978-1-4493-1110-0.
- ^ a b Функции Adobe Premium для Flash Player , Центр разработки Flash Player, Adobe
- ^ a b Неподдерживаемые наборы микросхем Stage3D, драйверы, Flash Player 11, AIR 3 , справка Adobe
- ^ Мэтт Фишер (2013). HTML5 для разработчиков Flash . Packt Publishing Ltd. § Stage3D против WebGL, стр. 91. ISBN 978-1-84969-333-2.
- ^ а б в «Stage3D против производительности WebGL - герметичное интерактивное взаимодействие» . Airtightinteractive.com. 2011-10-28 . Проверено 4 августа 2014 . CS1 maint: обескураженный параметр ( ссылка )
- ^ Джозеф Лабрек (2011). Что нового в Adobe AIR 3 . O'Reilly Media, Inc., стр. 17–26. ISBN 978-1-4493-1108-7.
- ^ Реми Арно (2011). «3D в веб-браузере». В Эрике Ленгьеле (ред.). Самоцветы игрового движка 2 . CRC Press. С. 207–212. ISBN 978-1-56881-437-7.
- ^ а б Кристер Кайтила (2011). Adobe Flash 11 Stage3D (Molehill) Руководство для начинающих по программированию игр . Packt Publishing Ltd. ISBN 978-1-84969-169-7.
- ^ «Что такое AGAL | Adobe Developer Connection» . Adobe.com. 2011-10-10 . Проверено 4 августа 2014 . CS1 maint: обескураженный параметр ( ссылка )
- ^ Вагнер Джеймс Ау (2012). Секреты игрового дизайна . Джон Вили и сыновья. п. 130. ISBN 978-1-118-46391-8.
- ^ «Adobe Flash 11 использует Unreal Engine 3 для улучшения браузерных игр | The Verge» . theverge.com . Проверено 4 августа 2014 . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Обзор инструментов: CopperCube 4.0» . evelop-online.net. 2014-05-28 . Проверено 22 сентября 2014 . CS1 maint: обескураженный параметр ( ссылка )
- ^ Кейт Гладстиен (2013). Разработка флеш-игр в социальном, мобильном и трехмерном мире . Cengage Learning. С. 383–421. ISBN 978-1-4354-6021-8.
- ^ а б Тибо Имбер (2012). Представляем Скворца . ISBN O'Reilly Media, Inc. 978-1-4493-2089-8.
- ^ Рекс ван дер Спуй (2012). Основы игрового дизайна с помощью ActionScript 3.0 . Апресс. п. 641. ISBN. 978-1-4302-3993-2.
- ^ Тибо Имберт (4 декабря 2012 г.) Представляем инструменты разработчика игр (игровой SDK, Adobe Scout, FlasCC)
- ^ «Adobe Gaming SDK» . creative.adobe.com . Проверено 4 августа 2014 . CS1 maint: обескураженный параметр ( ссылка )
- ^ а б в г д Дорожная карта Adobe Flash , Adobe
- ^ a b А потом прибыли премиум-функции. Архивировано 5 февраля 2015 г. в Wayback Machine , блог ASV Guy
- ^ Обновление: Премиум-функции для Flash Player , Adobe AIR и блог FP
- ^ Имбер, Тибо. «Представляем бета-версию Flash Player 11.4 / AIR 3.4!» . ByteArray.
- ^ "Stage3D" . scratch.mit.edu . Проверено 5 августа 2014 . CS1 maint: обескураженный параметр ( ссылка )
- ^ Adobe Flash Player 11.8 - Ошибка 3591185: производительность шейдера Pixel Bender резко упала в FP11.8. Закрыто как "NeverFix". Архивировано 22 апреля 2014 г. на Wayback Machine.
- ^ «Сжатые текстуры Stage3D - Знакомство с ATF SDK - ByteArray.org» . bytearray.org . Проверено 4 августа 2014 . CS1 maint: обескураженный параметр ( ссылка )
- ^ a b c d e Начало работы с Adobe Scout , Adobe Developer Connection
- ^ a b c d e Что такое AGAL , Adobe Developer Connection
- ^ Mipmapping для более гладких текстур в Stage3D , Adobe Developer Connection
- ^ Сессия: Вспышка до максимума! Высокопроизводительная 3D-графика в Silent Hunter Online , GDC Europe 2013
- ^ a b FLSL , Flare3D Wiki
- ^ HLAG в настоящее время находится в альфа- версии, веб-сайт HLAG Tool
- ^ Crytek, Silent Hunter Online рассказывает о поздних добавлениях к GDC Europe 2013 , Gamasutra , «движок рендеринга консоли C ++ в Adobe Flash с использованием ActionScript / Stage3D и использованием AGAL для графических эффектов, таких как рендеринг океана»
Внешние ссылки
- Статьи Stage3D по Adobe Developer Connection
- «Разработка 3D-игр для Flash и видеоигр» . adobe.com . Проверено 4 августа 2014 . CS1 maint: обескураженный параметр ( ссылка )
- «Как работает Stage3D» . adobe.com . Проверено 17 сентября 2014 . CS1 maint: обескураженный параметр ( ссылка )
- «Создание 3D-флеш-игры с помощью Flare3D и Stage3D» . adobe.com . Проверено 17 сентября 2014 . CS1 maint: обескураженный параметр ( ссылка )
- «Создание 3D-игр и приложений с помощью Away3D 4 и Stage 3D» . adobe.com . Проверено 17 сентября 2014 . CS1 maint: обескураженный параметр ( ссылка )
- «Что такое АГАЛ» . adobe.com . Проверено 17 сентября 2014 . CS1 maint: обескураженный параметр ( ссылка )
- «Быстрое и легкое добавление 3D-контента в вашу флеш-игру» . adobe.com . Проверено 17 сентября 2014 . CS1 maint: обескураженный параметр ( ссылка )
- «Знакомство с 2D-фреймворком Starling» . adobe.com . Проверено 17 сентября 2014 . CS1 maint: обескураженный параметр ( ссылка )
- «Вершинные и фрагментные шейдеры» . adobe.com . Проверено 17 сентября 2014 . CS1 maint: обескураженный параметр ( ссылка )
- «Mipmapping для более гладких текстур в Stage3D» . adobe.com . Проверено 17 сентября 2014 . CS1 maint: обескураженный параметр ( ссылка )
- «Сценические игровые движки 3D» . adobe.com . Проверено 17 сентября 2014 . CS1 maint: обескураженный параметр ( ссылка )
- «Начало работы с Adobe Scout» . adobe.com . Проверено 17 сентября 2014 . CS1 maint: обескураженный параметр ( ссылка )
- «Компиляция игр OpenGL с помощью компилятора Flash C ++ (FlasCC)» . adobe.com . Проверено 17 сентября 2014 . CS1 maint: обескураженный параметр ( ссылка )
- Инструменты перевода из OpenGL и GLSL :
- "Adobe / GLS3D · GitHub" . github.com . Проверено 4 августа 2014 . CS1 maint: обескураженный параметр ( ссылка )
- "Adobe / glsl2agal · GitHub" . github.com . Проверено 4 августа 2014 . CS1 maint: обескураженный параметр ( ссылка )