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