stringtranslate.com

Stage3D

Stage3D ( кодовое название Molehill [1] ) — API Adobe Flash Player для рендеринга интерактивной 3D-графики с ускорением GPU в играх и приложениях 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 для того, чтобы облегчить ускорение GPU 3D-контента в приложениях Flash [1] [6] Во Flash Player 10 и более ранних версиях 3D Flash-приложения должны были полностью рендерить 3D-графику на CPU . Flash Player 10 поддерживал ограниченную форму поддержки ускорения GPU для материалов в API, называемом Pixel Bender . [1] [7]

Шейдеры графического процессора в Stage3D выражены на языке Adobe Graphics Assembly Language (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' Proscenium. [15] Аналогично, 3D-приложения WebGL могут быть созданы с помощью three.js , высокоуровневой библиотеки, похожей на эти. [5] Away3D и Starling были окрещены как официальные компоненты Adobe Gaming SDK. [16] [17]

История

В 2011 году был выпущен Flash Player 11, а вместе с ним и первая версия Stage3D, обеспечивающая ускоренный на GPU 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 года, ускорение GPU было удалено в Flash Player 11.8 и выше для скриптов Pixel Bender. Pixel Bender была старой технологией для написания высокопроизводительных фильтров обработки изображений на базе CPU. Это нарушило ряд менее обеспеченных проектов, включая Scratch MIT , которые не смогли найти рабочую силу для быстрого перекодирования своих приложений. [22] [23]

Функции

Stage3D состоит из следующих компонентов:

Stage3D поддерживается следующими компонентами:

АГАЛ

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 .

Смотрите также

Ссылки

  1. ^ abcde Joseph Labrecque (2011). Что нового во Flash Player 11. O'Reilly Media, Inc. стр. 17. ISBN 978-1-4493-1110-0.
  2. ^ ab Adobe Premium Features для Flash Player, Центр разработки Flash Player, Adobe
  3. ^ ab Stage3D неподдерживаемые чипсеты, драйверы, Flash Player 11, AIR 3, Adobe Help
  4. ^ Мэтт Фишер (2013). HTML5 для разработчиков Flash. Packt Publishing Ltd. § Stage3D против WebGL, стр. 91. ISBN 978-1-84969-333-2.
  5. ^ abc "Производительность Stage3D против WebGL — Airtight Interactive". Airtightinteractive.com. 2011-10-28 . Получено 2014-08-04 .
  6. ^ Джозеф Лабрек (2011). Что нового в Adobe AIR 3. O'Reilly Media, Inc. стр. 17–26. ISBN 978-1-4493-1108-7.
  7. ^ Реми Арно (2011). «3D в веб-браузере». В Эрик Лендьел (ред.). Game Engine Gems 2. CRC Press. стр. 207–212. ISBN 978-1-56881-437-7.
  8. ^ аб Кристер Кайтила (2011). Adobe Flash 11 Stage3D (Molehill) Руководство для начинающих по программированию игр . ISBN Packt Publishing Ltd. 978-1-84969-169-7.
  9. ^ "Что такое AGAL | Adobe Developer Connection". Adobe.com. 2011-10-10 . Получено 2014-08-04 .
  10. ^ Вагнер Джеймс Ау (2012). Секреты игрового дизайна . John Wiley & Sons. стр. 130. ISBN 978-1-118-46391-8.
  11. ^ "Adobe Flash 11 использует Unreal Engine 3 для улучшения браузерных игр | The Verge". theverge.com. 7 октября 2011 г. Получено 04.08.2014 .
  12. ^ "Tools Spotlight: CopperCube 4.0". MCV . evelop-online.net. 2014-05-28 . Получено 2014-09-22 .
  13. ^ Кит Глэдстиен (2013). Разработка Flash-игр в социальном, мобильном и 3D-мире . Cengage Learning. С. 383–421. ISBN 978-1-4354-6021-8.
  14. ^ ab Thibault Imbert (2012). Знакомство со Старлингом . O'Reilly Media, Inc. ISBN 978-1-4493-2089-8.
  15. ^ Рекс ван дер Спай (2012). Основы игрового дизайна с ActionScript 3.0. Apress. стр. 641. ISBN 978-1-4302-3993-2.
  16. Тибо Имбер (4 декабря 2012 г.) Знакомство с инструментами разработчика игр (Gaming SDK, Adobe Scout, FlasCC)
  17. ^ "Adobe Gaming SDK". creative.adobe.com . Получено 2014-08-04 .
  18. ^ abcde Adobe Flash Roadmap, Adobe
  19. ^ ab И затем появились премиум-функции Архивировано 2015-02-05 в Wayback Machine , ASV Guy Blog
  20. ^ Обновление: Премиум-функции для Flash Player, Adobe AIR и FP Блог
  21. ^ Имбер, Тибо. «Представляем Flash Player 11.4/AIR 3.4 beta!». ByteArray.
  22. ^ "Stage3D". scratch.mit.edu . Получено 2014-08-05 .
  23. ^ Adobe Flash Player 11.8 - Ошибка 3591185: производительность шейдера Pixel Bender резко упала в FP11.8. Закрыто как "NeverFix" Архивировано 22.04.2014 на Wayback Machine
  24. ^ "Сжатые текстуры Stage3D – Знакомство с ATF SDK - ByteArray.org". bytearray.org . Получено 2014-08-04 .
  25. ^ abcde Начало работы с Adobe Scout, Adobe Developer Connection
  26. ^ abcde Что такое AGAL, ​​Adobe Developer Connection
  27. ^ Mip-текстурирование для более гладких текстур в Stage3D, Adobe Developer Connection
  28. ^ Сессия: Flash to the Max! Высокопроизводительная 3D-графика в Silent Hunter Online, GDC Europe 2013
  29. ^ ab FLSL, Flare3D Wiki
  30. ^ HLAG в настоящее время находится в стадии альфа-тестирования, веб-сайт инструмента HLAG
  31. ^ Crytek, Silent Hunter Online рассказывают о последних дополнениях к GDC Europe 2013, Gamasutra , «Движок рендеринга консоли C++ в Adobe Flash с использованием Actionscript/Stage3D и AGAL для графических эффектов, таких как рендеринг океана»

Внешние ссылки