Crossplatform GPU-rendering on the most common browser platforms

dc.contributorAalto-yliopistofi
dc.contributorAalto Universityen
dc.contributor.advisorKajastila, Raine
dc.contributor.authorAhvenniemi, Johannes
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.schoolPerustieteiden korkeakoulufi
dc.contributor.supervisorHämäläinen, Perttu
dc.date.accessioned2015-07-01T08:15:33Z
dc.date.available2015-07-01T08:15:33Z
dc.date.issued2014
dc.description.abstractThis study was about utilizing GPU in cross platform development for the most common browser application platforms: HTML5 and Flash. The intent was to find out if this can be done. Also the solution's performance and cost-efficiency was evaluated. In this thesis the basic concepts of rendering are explained and basic research for cross platform development is studied. Technologies are compared based on their documentation and software developer forums. A new GPU programming interface was proposed for cross platform development. The interface was implemented for Flash using Stage3D and HTML5 using WebGL. The proposed interface is a subset of the Stage3D interface with support for GLSL ES shaders. Because Stage3D only supports AGAL shaders, GLSL ES shaders were compiled to AGAL with glsl2agal. The interface was put to use with the Haxe programming language which can be compiled to both HTML5 and Flash. The implementation was evaluated by programming applications to test the functionality and performance. In addition a list of strengths and flaws are pointed out based on the experience from the process. The solution worked visually in simple cases. A more complex case worked as intended only on HTML5. The performance was worse than that of a native Flash application. Also several flaws were found in the technologies used. The conclusion was that the task is feasible. However, the implementation didn't work completely as intended and the performance was weak. Based on this the chosen technologies can't be recommended. On the other hand not many alternatives were found.en
dc.description.abstractTässä työssä tutkittiin näytönohjain-, eli GPU-renderöintiä hyödyntävän sovelluksen alustariippumatonta kehitystä tämän hetken yleisimmille selainalustoille, eli Flashille ja HTML5:lle. Tarkoituksena oli selvittää, onko tämä mahdollista. Lisaksi arvioitiin esitettyä ratkaisua laadun ja ajankäytön kannalta. Työssä esitellään renderöinnin peruskäsitteet ja käydään läpi alustariippumattoman ohjelmoinnin perustutkimusta. Teknologioita vertaillaan niiden dokumentaation ja sovelluskehittäjien keskustelupalstojen pohjalta. Alustariippumatonta kehitystä varten ehdotettiin uutta GPU-ohjelmointirajapintaa, joka toteutettiin Flashille ja HTML5:lle. Flash-toteutus käyttää apunaan Stage3D-rajapintaa ja HTML5-toteutus WebGL-rajapintaa. Ehdotettu rajapinta on Stage3D:n pelkistetty versio, joka toimii GLSL ES -sävyttimien kanssa. Koska Stage3D tukee vain AGAL-sävyttimiä, GLSL ES -sävyttimet käännetään Flash-toteutuksessa gls12agalilla AGAL-sävyttimiksi. Rajapintaa käytettiin Haxe-ohjelmointikielellä, joka voidaan kääntää HTML5- ja Flash-alustoille. Toteutusta arvioitiin ohjelmoimalla koesovelluksia, joilla tarkasteltiin ratkaisun toimivuutta sekä mitattiin suoritustehoa. Lisäksi läpi käydyn prosessin pohjalta arvioitiin valittujen teknologioiden vahvuuksia ja heikkouksia. Havaitaan, että toteutus toimi visuaalisesti yksinkertaisissa tapauksissa. Monimutkaisempi koe toimi täydellisesti vain HTML5-alustalla. Suoritusteholtaan toteutus ei yltänyt natiivin Flash-sovelluksen tasolle. Lisaksi teknologioissa havaittiin useita puutteita. Johtopäätös oli, että toteutus on mahdollista. Lopputulos oli kuitenkin vajaatoimintainen ja suoritusteholtaan heikko. Tämän perusteella ainakaan kyseistä teknologiavalintaa ei voida suositella. Toisaalta monia muita vaihtoehtoja teknologiaksi ei löytynyt.fi
dc.format.extent64 s.
dc.identifier.urihttps://aaltodoc.aalto.fi/handle/123456789/17073
dc.identifier.urnURN:NBN:fi:aalto-201507013715
dc.language.isoenen
dc.programme.majorTietokoneverkotfi
dc.programme.mcodeT-110
dc.rights.accesslevelclosedAccess
dc.subject.keywordtietokonegrafiikkafi
dc.subject.keyword3Dfi
dc.subject.keywordalustariippumatonfi
dc.subject.keywordcomputer graphicsen
dc.subject.keywordcrossplatformen
dc.subject.keywordflashen
dc.subject.keywordhtml5en
dc.subject.keywordstage3den
dc.subject.keywordwebglen
dc.subject.keywordhaxeen
dc.titleCrossplatform GPU-rendering on the most common browser platformsen
dc.titleAlustariippumaton GPU-renderöinti yleisimmillä selainalustoillafi
dc.typeG2 Pro gradu, diplomityöfi
dc.type.dcmitypetexten
dc.type.okmG2 Pro gradu, diplomityö
dc.type.ontasotDiplomityöfi
dc.type.ontasotMaster's thesisen
dc.type.publicationmasterThesis
local.aalto.digifolderAalto_92285
local.aalto.idinssi49349
local.aalto.openaccessno
Files