스테이지 3D
Stage3D컴퓨팅에서 Stage3D(코드네임[1] Molehill)는 플래시 게임 및 응용 프로그램 내에서 GPU 가속으로 대화형 3D 그래픽을 렌더링하기 위한 Adobe Flash Player API입니다.ActionScript 3으로 작성된 Flash Player 또는 AIR 응용 프로그램은 Stage3D를 사용하여 3D [2]그래픽을 렌더링할 수 있으며 이러한 응용 프로그램은 Windows, Mac OS X, Linux, Apple iOS [3]및 Google Android에서 기본적으로 실행됩니다.Stage3D는 WebGL과 [4][5]목적과 설계가 유사합니다.
에서 질서와 이전의 3D플래시 애플리케이션이 CPU. 플래시 플레이어 10에 3D그래픽을 렌더링 하는 데, API라고 불리는 파이의 재료에 대하여 GPU가속 지원을 제한한 형태를 지지했다 GPU-acceleration 3D콘텐츠의 플래시 applications[1][6]에 플래시 플레이어 10에서 용이하도록 Stage3D 어도비 플래시 플레이어보다 11.0과 공기 3.0에 도입되었다.xel 승진nder.[1][7]
Stage3D의 GPU 셰이더는 Adobe Graphics Assembly Language(AGAL)[8]: 57 [9]로 표현됩니다.Stage3D 객체는 SWF의 표시 목록에 추가할 수 없다는 점에서 기존 SWF 렌더링 모델에서 벗어나 ActionScript를 [1][8]: 25 통해 인스턴스화해야 합니다.
Stage3D는 직접 사용하는 것이 지루할 수 있는 낮은 수준의 라이브러리이기 때문에 높은 성능을 제공하기 위해 그 위에 일부 상위 수준의 3D 및 2D 라이브러리가 구축되었습니다.라이브러리 및 이를 사용하는 게임 엔진의 불완전한 목록은 다음과 같습니다.Unreal Engine [10][11]3, Away3D [5]4, CopperCube,[12] Flare3D,[13] Starling,[14]: vii ND2D 또는 Adobe Labs의 Proscenium.[15]마찬가지로 WebGL 3D 애플리케이션은 이와 유사한 [5]상위 레벨 라이브러리인 3.js를 사용하여 구축될 수 있습니다.Away3D와 Starling은 Adobe Gaming [16][17]SDK의 공식 컴포넌트로 명명되었습니다.
역사
2011년에 Flash Player 11이 출시되었으며, Microsoft Windows 및 Mac OS [1]X와 같은 데스크톱 플랫폼에서 플래시 애플리케이션 및 게임의 GPU 가속 3D 렌더링을 가능하게 하는 첫 번째 Stage3D 버전이 출시되었습니다.
2012년 3월에는 Flash Player 11.2가 출시되어 Android 및 iOS 플랫폼에서 Stage3D/GPU를 지원할 수 있게 되었습니다.Stage3D API를 사용하는 게임은 이러한 모바일 [18]플랫폼에서 아무런 변경 없이 작동합니다.
2012년 6월에는 Flash Player 11.3이 출시되어 Stage3D 텍스처 맵의 점진적인 스트리밍이 가능하여 Stage3D를 [18]활용한 게임 및 애플리케이션의 성능과 시작 시간을 단축할 수 있습니다.
2012년 8월 Flash Player 11.4가 출시되어 지원되는 하드웨어 가속 비디오 카드 수를 2006년으로 늘렸으며 Stage3D 압축 [18]텍스처를 위한 알파 채널을 사용할 수 있게 되었습니다.
2012년 3월, Adobe는 Stage3D가 Flash Player 버전 11.2에서 제공하는 Flash Player의 프리미엄 기능의 일부가 될 것이라고 발표했습니다.따라서 개발자에게 완전히 무료로 제공되는 것은 아니지만 수익 공유 [19][20]방식을 기반으로 합니다.플래시 커뮤니티의 다양한 유명 인사들은 이를 "속도세"[19]라고 부르며 반대했다.
2013년 1월 Adobe는 모든 프리미엄 기능을 일반 가용성으로 분류했으며 개발자 또는 [2]퍼블리셔의 라이센스나 로열티 없이 플래시 애플리케이션에서 자유롭게 사용할 수 있었습니다.
2012년 9월,[21] Flash Player 11.4가 출시되어 게임이 Stage3D의 모든 기능을 지원하지 않는 오래된 그래픽 칩을 포함한 "제한된 프로파일"을 공략할 수 있게 되었습니다.
2013년 4월, Flash Player 11.7이 출시되었으며, 이 제품은 Stage3D 콘텐츠에 대한 16비트 텍스처 맵을 지원하여 메모리 사용량을 줄이고 메모리 [18]관리를 개선했습니다.
2013년 7월, Flash Player 11.8이 출시되었으며, Stage3D 콘텐츠에 대한 직사각형(비사각형) 텍스처 맵을 지원하며 최대 텍스처 맵 크기를 4096 x 4096으로 늘렸습니다.이를 통해 텍스처 맵의 상세도가 향상되고 더 큰 텍스처 아틀라스가 생성되어 성능이 [18]향상되었습니다.
2014년 현재 픽셀 벤더 스크립트의 경우 Flash Player 11.8 이상에서 GPU 가속이 제거되었습니다.픽셀 벤더는 고성능 CPU 기반 이미지 처리 필터를 쓰기 위한 오래된 기술이었다.이로 인해 MIT의 Scratch를 비롯한 많은 부족한 프로젝트들이 중단되어 애플리케이션을 [22][23]신속하게 재코딩할 인력을 확보하지 못했습니다.
특징들
Stage3D는 다음 컴포넌트로 구성됩니다.
- Unified API - 텍스처 메모리, 정점 쉐이딩, 픽셀 쉐이딩 및 메쉬 렌더링을 관리하기 위한 Unified ActionScript 3 API.OpenGL(Mac OS X 및 Linux) 및 DirectX(Microsoft Windows)를 사용하여 투과적으로 실행됩니다.
- 고속 GPU 렌더링 - NVidia, AMD 및 [3]인텔이 구축한 그래픽 카드 통합 지원, 호환성이 없는 그래픽 카드 블랙리스트.
- 고속 CPU 렌더링 - SwiftShader를 사용한 통합 소프트웨어 렌더러 폴백. 그래픽 카드가 없거나 호환되지 않는 시스템을 지원합니다.
- AGAL(Adobe Graphics Assembly Language) - Flash Player에 의해 OpenGL GLSL 셰이더 및 DirectX HLSL 셰이더로 변환할 수 있도록 셰이더(GPU 상에서 실행되는 프로그램)를 기술하기 위한 언어입니다.
- ATF(Adobe Texture Format) - 텍스처를 적절한 플랫폼 고유의 텍스처 포맷(Windows 및 MacOS의 DXT, iOS의 [14]: 47–48 [24]PVRTC 등)으로 변환할 수 있는 텍스처 포맷.
Stage3D는 다음 컴포넌트에서 지원됩니다.
- XC API - Flash Player의 "프리미엄 기능"으로, 고속 메모리 조작 opcode ("Alchemy"라고 불림)와 Stage 3D API로 구성됩니다.
- CrossBridge - Flash Player에서 실행할 OpenGL 기반 3D 게임 또는 게임 엔진을 컴파일하기 위한 교차 컴파일 툴킷입니다.
- Adobe Scout - 모바일 데스크톱에서 실행되는 플래시 콘텐츠의 비주얼 프로파일러입니다.Scout은 다음과 같은 통합 [25]기능을 통해 Stage3D 콘텐츠의 상세 프로파일링을 가능하게 합니다.
AGAL
Adobe Graphics Assembly Language(AGAL)는 GPU 셰이더를 [26]쓰기 위한 어셈블리 언어입니다.AGAL은 Adobe가 모든 플랫폼에 [26]통합 셰이더 언어를 제공하기 위해 개발했습니다.AGAL 프로그램은 저레벨의 opcode와 [26]레지스터로 수작업으로 작성됩니다.AGAL 프로그램은 바이트 코드로 컴파일되어 플래시 SWF [26]동영상에 삽입됩니다.이 AGAL 바이트 코드는 플랫폼에 [26]따라 Adobe Flash Player에 의해 OpenGL GLSL Shaders 및 DirectX HLSL Shaders로 자동으로 컴파일됩니다.
AGAL을 사용하면 개발자는 GPU(버텍스 셰이더)에 3D 모델을 변환하는 셰이더와 GPU(픽셀 셰이더)에 복잡한 동적 조명 효과를 렌더링하는 셰이더를 작성할 수 있습니다.또한 AGAL은 [27]mip-mapping을 통한 고품질 텍스처 렌더링을 가능하게 합니다.AGAL은 어웨이3D, 플레어3D 등 플래시 게임 엔진에서 다양한 효과를 위해 광범위하게 사용되고 있습니다.AGAL은 동적 조명, High Dynamic Rangeing(HDR; 고 다이내믹 레인징), 알파 마스킹, 멀티패스 렌더링,[28][29] 변위 매핑 및 환경 매핑을 제공하기 위해 사용됩니다.Flare3D는 FLSL(Flare3D Shader Language)이라는 독자적인 Shader 언어를 사용하여 AGAL을 확장하여 Shader 프로그램을 쉽게 [29]작성할 수 있도록 합니다.HAG는 AGAL로 [30]컴파일되는 고급 셰이더 언어의 또 다른 예입니다.
Adobe Flash Player에서 재생하기 위해 C++ 3D 비디오 게임을 이식할 때 개발자는 기존의 HLSL 및 GLSL 셰이더를 AGAL로 [31]변환해야 합니다.C++ 비디오 게임 코드는 CrossBridge를 사용하여 플래시 호환 코드로 변환할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ a b c d e Joseph Labrecque (2011). What's New in Flash Player 11. O'Reilly Media, Inc. p. 17. ISBN 978-1-4493-1110-0.
- ^ a b Flash Player용 Adobe Premium 기능, Flash Player Dev Center, Adobe
- ^ a b Stage3D 미지원 칩셋, 드라이버, Flash Player 11, AIR 3, Adobe 도움말
- ^ Matt Fisher (2013). HTML5 for Flash Developers. Packt Publishing Ltd. § Stage3D versus WebGL, p. 91. ISBN 978-1-84969-333-2.
- ^ a b c "Stage3D vs WebGL Performance — Airtight Interactive". Airtightinteractive.com. 2011-10-28. Retrieved 2014-08-04.
- ^ Joseph Labrecque (2011). What's New in Adobe AIR 3. O'Reilly Media, Inc. pp. 17–26. ISBN 978-1-4493-1108-7.
- ^ Remi Arnaud (2011). "3D in a Web Browser". In Eric Lengyel (ed.). Game Engine Gems 2. CRC Press. pp. 207–212. ISBN 978-1-56881-437-7.
- ^ a b Christer Kaitila (2011). Adobe Flash 11 Stage3D (Molehill) Game Programming Beginner's Guide. Packt Publishing Ltd. ISBN 978-1-84969-169-7.
- ^ "What is AGAL Adobe Developer Connection". Adobe.com. 2011-10-10. Retrieved 2014-08-04.
- ^ Wagner James Au (2012). Game Design Secrets. John Wiley & Sons. p. 130. ISBN 978-1-118-46391-8.
- ^ "Adobe Flash 11 adopts Unreal Engine 3 for better browser games The Verge". theverge.com. Retrieved 2014-08-04.
- ^ "Tools Spotlight: CopperCube 4.0". evelop-online.net. 2014-05-28. Retrieved 2014-09-22.
- ^ Keith Gladstien (2013). Flash Game Development In a Social, Mobile and 3D World. Cengage Learning. pp. 383–421. ISBN 978-1-4354-6021-8.
- ^ a b Thibault Imbert (2012). Introducing Starling. O'Reilly Media, Inc. ISBN 978-1-4493-2089-8.
- ^ Rex van der Spuy (2012). Foundation Game Design with ActionScript 3.0. Apress. p. 641. ISBN 978-1-4302-3993-2.
- ^ Thibault Imbert (2012년 12월 4일)게임 개발자 도구 소개 (Gaming SDK, Adobe Scout, FlasCC)
- ^ "Adobe Gaming SDK". creative.adobe.com. Retrieved 2014-08-04.
- ^ a b c d e Adobe Flash 로드맵, Adobe
- ^ a b 그리고 2015-02-05년 프리미엄 기능이 Wayback Machine, ASV Guy 블로그에 아카이브되었습니다.
- ^ 업데이트: Flash Player, Adobe AIR 및 FP 블로그용 프리미엄 기능
- ^ Imbert, Thibault. "Introducing Flash Player 11.4/AIR 3.4 beta!". ByteArray.
- ^ "Stage3D". scratch.mit.edu. Retrieved 2014-08-05.
- ^ Adobe Flash Player 11.8 - Bug 3591185 : FP11.8로 픽셀 벤더 셰이더의 퍼포먼스가 대폭 저하. 2014-04-22 Wayback Machine에서 "NeverFix" 아카이브 완료
- ^ "Stage3D compressed textures – Introducing the ATF SDK - ByteArray.org". bytearray.org. Retrieved 2014-08-04.
- ^ a b c d e Adobe Scout, Adobe Developer Connection 시작
- ^ a b c d e AGAL, Adobe Developer Connection이란
- ^ Stage3D, Adobe Developer Connection에서 매끄러운 텍스처를 실현하는 맵핑
- ^ 세션 : Silent Hunter Online, GDC Europe 2013의 고성능 3D 그래픽스를 통한 플래시 투 더 맥스!
- ^ a b FLSL, Flare3D Wiki
- ^ HLAG는 현재 Alpha, HLAG Tool Web 사이트입니다.
- ^ Crytek, Silent Hunter Online은 GDC Europe 2013, Gamasutra, "Actionscript/Stage3D를 사용하고 해양 렌더링 등의 그래픽 효과를 위해 AGAL을 사용하여 C++ 콘솔 렌더링 엔진을 Adobe Flash에 늦게 추가했다고 말합니다."
외부 링크
- Adobe Developer Connection 관련 Stage3D 기사
- "3D game development for Flash and video games". adobe.com. Retrieved 2014-08-04.
- "How Stage3D works". adobe.com. Retrieved 2014-09-17.
- "Building a 3D Flash game with Flare3D and Stage3D". adobe.com. Retrieved 2014-09-17.
- "Creating 3D games and apps with Away3D 4 and Stage 3D". adobe.com. Retrieved 2014-09-17.
- "What is AGAL". adobe.com. Retrieved 2014-09-17.
- "Adding 3D content to your Flash game fast and easy". adobe.com. Retrieved 2014-09-17.
- "Introducing the Starling 2D framework". adobe.com. Retrieved 2014-09-17.
- "Vertex and Fragment Shaders". adobe.com. Retrieved 2014-09-17.
- "Mipmapping for smoother textures in Stage3D". adobe.com. Retrieved 2014-09-17.
- "Stage 3D gaming engines". adobe.com. Retrieved 2014-09-17.
- "Getting started with Adobe Scout". adobe.com. Retrieved 2014-09-17.
- "Compiling OpenGL games with the Flash C++ Compiler (FlasCC)". adobe.com. Retrieved 2014-09-17.
- OpenGL 및 GLSL 번역 도구:
- "adobe/GLS3D · GitHub". github.com. Retrieved 2014-08-04.
- "adobe/glsl2agal · GitHub". github.com. Retrieved 2014-08-04.