Stage3D

Stage3D (Molehill gako-izena) Adobe Flash Player API bat da, GPU azelerazioa duten 3D grafiko interaktiboak errendatzeko, Flash joko eta aplikazioen barruan. ActionScript 3n idatzitako Flash Player edo AIR aplikazioek Stage3D erabili dezakete 3D grafikoak errendatzeko, eta aplikazio horiek jatorriz exekutatzen dira Windows, Mac OS X, Linux, Apple iOS eta Google Androiden. Stage3D WebGLren antzekoa da asmo eta diseinuari dagokionez.

Stage3D Adobe Flash Player 11.0 eta AIR 3.0 aplikazioetan sartu zen, 3D edukien GPUko azelerazioa errazteko Flash Player 10 eta aurreko bertsioetan, Flash 3D aplikazioek 3D grafikoak CPUn guztiz errendatu behar zituzten. Flash Player 10ek materialen azelerazio modu mugatua onartzen zuen GPUn, Pixel Bender izeneko API batean.

Stage3Dko GPU itzalgailuak Adobe Graphics Assembly Language-an adierazten dira (AGAL). Stage3D objektuak SWFen errendatze-eredu tradizionaletik aldentzen dira; eredu horretan ezin dira SWFen bistaratze-zerrendetan sartu, eta ActionScript bidez konektatu behar dira.

Stage3D zuzenean erabiltzeko aspergarria izan daitekeen maila txikiko liburutegia denez, goi-mailako 3D eta 2D liburutegi batzuk sortu dira eskaintzen duen errendimendu handienaz baliatzeko. Erabiltzen duten liburutegien eta joko motorren zerrenda osatu gabe dago: Unreal Engine 3, Away3D 4, CopperCube, Flare3D, Starling, ND2D edo Proscenium Adobe Labs. Era berean, 3D WebGL aplikazioak three.js-ekin eraiki daitezke, horien antzeko maila handiko liburutegia. Adobe Gaming SDKren osagai ofizial izendatu dituzte Away3D eta Starling.

Historia 
2011n, Flash Player 11 merkaturatu zen, eta horrekin batera, Stage3Dren lehen bertsioa, GPUk Flash aplikazio eta jokoetarako bizkortutako 3D errendatzea ahalbidetzen zuena, Microsoft Windows eta Mac OS X bezalako mahaigaineko plataformetan.

2012ko martxoan, Flash Player 11.2 argitaratu zen, Android eta iOS plataformetan Stage3D/GPU bateragarritasuna gaituz. API Stage3D jokoak plataforma mugikor hauetan aldaketarik gabe funtzionatzen dute.

2012ko ekainean, Flash Player 11.3 merkaturatu zen, Stage3D testurako mapak pixkanaka transmititzea ahalbidetzen duena, Stage3D erabiltzen duten joko eta aplikazioetarako errendimendu eta hasierako denbora azkarragoak ahalbidetzen dituena.

2012ko abuztuan, Flash Player 11.4 argitaratu zen, eta, 2006ra arte, handitu egin zen hardware bateragarri bidez azeleratutako bideo-txartelen kopurua, eta Stage3D egitura konprimituetarako alfa-kanalak baimendu ziren.

2012ko martxoan, Adobek iragarri zuen Stage3D Flash Player-en premium funtzioen parte izango zela (Flash Player 11.2 bertsiotik aurrera) eta, beraz, ez zela guztiz doan egongo garatzaileentzat, diru-sarrerak banatzeko sistema batean oinarrituko zela baizik. Flash komunitateko hainbat kide nabarmen aldaketaren aurka agertu ziren, "abiaduraren gaineko zerga" deituz.

2013ko urtarrilean, Adobek premium funtzio guztiak erabilgarritasun orokorrekotzat sailkatu zituen, eta Flash aplikazioek libreki erabil zitzaketen, garatzaileek edo editoreek lizentzia edo kanonik behar izan gabe.

2012ko irailean, Flash Player 11.4 merkaturatu zen, jokoei "profil murriztuetan" aritzeko aukera ematen ziena, horien artean Stage3D funtzio guztiak onartzen ez zituzten txip grafiko zaharrenak zeudelarik.

2013ko apirilean, Flash Player 11.7 argitaratu zen, Stage3D edukirako 16 biteko testura-mapak onartzen zituena, memoriaren erabilera murrizteko eta haren kudeaketa hobetzeko.

2013ko uztailean, Flash Player 11.8 argitaratu zen, eta ehundura-mapen gehienezko tamaina 4096 x 4096ra igo zen. Horrez gain, Stage3D edukirako egitura angeluzuzenen (ez karratuen) mapak ere onartu ziren. Horri esker, testuren mapetan xehetasun gehiago eman ziren eta errendimendu hobea lortzeko testuren atlas handiagoak sortu ziren.

2014tik aurrera, GPU azelerazioa kendu zen Flash Player 11.8 scriptetarako. Pixel Bender teknologia zaharra zen CPUn oinarritutako errendimendu handiko irudiak prozesatzeko iragazkiak idazteko. Horrek hainbat proiektu oztopatu ditu, besteak beste, MITeko Scratch, bere aplikazioak azkar berreskuratzeko behar zuen eskulana aurkitzen ez zutenak.

Ezaugarriak 
Stage3Dk osagai hauek ditu:

 API bateratua - API ActionScript 3 bateratua, ehunduren memoria, erpinen itzaldura, pixelen itzaldura eta sareen errendatzea kudeatzeko. Exekuzio gardena OpenGL (Mac OS X eta Linux) eta DirectX (Microsoft Windows) bidez.
 Renderizatu GPU azeleratua: NVidia, AMD eta Intel txartel grafikoekin bateragarritasun integratua, txartel grafiko bateraezinen zerrenda beltza.
 CPUz bizkortutako errenderizazioa - SwiftShader bidez integratutako softwarez errendatzea, txartel grafiko bateraezinak edo bateraezinak dituzten sistemetarako.
 AGAL (Adobe Graphics Assembly Language): itzalgailuak (GPUn exekutatzen diren programak) idazteko lengoaia, Flash Player OpenGL GLSL itzalgailu eta DirectX HLSL itzalgailu bihurtzeko.
 ATF (Adobe Texture Format) - Testura formatua plataforma bakoitzaren testura formatu espezifiko bihur daiteke, hala nola DXT Windows eta MacOS, PVRTC iOS.

Stage3D bateragarria da osagai hauekin:

 API XC - Flash Player "premium funtzioak", abiadura handiko memoria manipulatzeko opkodeak (Alchemy) eta API Stage3D.
 CrossBridge - OpenGL-n oinarritutako 3D jokoak edo Flash Player-en exekutatzeko jokoen motorrak konpilatzeko konpilazio gurutzatuko tresna multzo bat.
 Adobe Scout - gailu mugikorretan mahai gaineko ordenagailuetan exekutatzen diren Flash edukietarako perfiladore bisuala. Scoutek Stage3D profil xehatuak sortzeko aukera ematen du.
 Stage3Dren aurrebista - exekutatutako Stage3Dren edukiaren egungo bitarteko memoria ikusteko aukera ematen du.
 Stage3D grabatzea - Flash edukiak exekutatutako Stage3D komando guztiak atzitzen ditu eta exekutatutako komandoak erreproduzitzen ditu.
 GPUren memoria erabiltzea - Ehundura-memoria denbora errealean xehatuta erabiltzeko profila.
 Stage3D programen editorea - Stage3D komando grabatuak modu interaktiboan aldatzen ditu eta errendatzean duten eragina egiaztatzen du. Marrazketa-dei bakoitzeko erpinen eta pasarteen programen AGAL kodea editatzen du.

AGAL 
Adobe Graphics Assembly Language (AGAL) GPU itzalgailuak idazteko lengoaia mihiztatzailea da. AGAL Adobek asmatu zuen plataforma guztientzako itzal lengoaia bateratua emateko. AGAL programak eskuz idazten dira, opkodeekin eta maila txikiko erregistroekin. AGAL programak bytecodean lehiatzen dira, eta gero Flasheko SWF filmetan sartzen dira. Adobe Flash Player automatikoki AGAL byte-kode hau OpenGL GLSL itzalgailuetan eta DirectX HLSL itzalgailuetan, plataformaren arabera.

AGALekin, garatzaileek GPUan (erpinen itzalgailua) 3D ereduak eraldatzen dituzten itzalgailuak eta GPUn (pixelen itzalgailua) argiztapen dinamikoaren efektu konplexuak errendatzen dituzten itzalgailuak idatzi ditzakete. AGALek kalitate handiko testurak mip-mapping-arekin errendatzea ere ahalbidetzen du. AGAL asko erabiltzen da Flash joko motorretan, hala nola Away3D eta Flare3D efektu desberdinetarako. AGAL argiztapen dinamikoa, maila dinamiko altua (HDR), alfa maskaratzea, pase anitzeko errendatzea, desplazamendu-mapatzea eta ingurunea mapatzea emateko erabiltzen da. Flare3Dk AGAL zabaltzen du FLSL (FLare3D Shader Language) izeneko berezko itzaltze-lengoaiarekin, zeinak itzaltze-programak idaztea errazten duen. HLAG AGALen pilatzen den goi-mailako itzaltze-hizkuntzaren beste adibide bat da.

Adobe Flash Player-en erreproduzitzeko C++-en 3D bideo-jokoak erosita, garatzaileek HLSL eta GLSL shader tradizionalak AGAL-ra itzuli behar dituzte. Bideo-jokoaren C++ kodea Flash kodearekin bateragarria izan daiteke Crossbridge bidez.

Erreferentziak

Kanpo estekak 

 Stage3D-ren artikuluak Adobe Developer Connection(e)n
 
 
 
 
 
 
 
 
 
 
 
 
 OpenGL eta GLSLren itzulpen-tresnak:
 
 

Grafikoen softwarea
3D ordenagailu bidezko grafikoak