Crossplatform GPU-rendering on the most common browser platforms

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Master's thesis
Date
2014
Department
Major/Subject
Tietokoneverkot
Mcode
T-110
Degree programme
Language
en
Pages
64 s.
Series
Abstract
This 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.

Tä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.
Description
Supervisor
Hämäläinen, Perttu
Thesis advisor
Kajastila, Raine
Keywords
tietokonegrafiikka, 3D, alustariippumaton, computer graphics, crossplatform, flash, html5, stage3d, webgl, haxe
Other note
Citation