11.07.2015 Aufrufe

c't magazin für computer technik 24/2013 - since

c't magazin für computer technik 24/2013 - since

c't magazin für computer technik 24/2013 - since

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Peter Faber, Sebastian Och, Martin SchlottVirtuelles GucklochPanoramabilder mit OpenGL ESauf Android-Handys anzeigenAm natürlichsten und intuitivsten lassen sich Panoramabilder betrachten,indem man sie so anzeigt, wie sie aufgenommen wurden, nämlich durchBewegung des Smartphones. Eine App dafür ist leicht gebaut.Seit Android 4.2 ist es möglich, 360-Grad­Panoramabilder aufzunehmen. Im Folgendenentsteht eine App, die solche (odermit anderen Mitteln erzeugte) Panoramabilderauf der Innenwand eines Zylinders erscheinenlässt, in dessen Mitte sich der Betrachterbefindet. Mit der Rotation um dieSenkrechte und Neigung der Horizontalebenedes Smartphones soll sich der aufdem Bildschirm gezeigte Ausschnitt des Panoramabildsändern.Den Beispiel-Code in Gestalt vier aufeinanderaufbauender Eclipse-Projekte findenSie über den <strong>c't</strong>-Link am Artikelende. ZumÜbersetzen benötigen Sie aktuelle Versionendes Java SDK, der EntwicklungsplattformEclipse sowie der Android Developer Tools.OpenGL ESAls Grafik-API kommt bei Android OpenGL ESzum Einsatz [1]. Dabei handelt es sich umeine für vergleichsweise leistungsschwacheMobil- und Embedded-Systeme optimierteProgrammierschnittstelle auf der Grundlagevon OpenGL; das ES steht für Embedded Systems.Beispielsweise wurde double durch floatersetzt, da Embedded-Systeme Gleitkommazahlendoppelter Genauigkeit häufig nichtunterstützen.Die Versionen 1 und 2 von OpenGL ESstellen unabhängige Zweige des Standardsdar, wobei Version 1 auf der einfacher zu verwendenden"fixed-function pipeline" basiert,während Version 2 die auf modernerer Hardwareverfügbare programmierbare Pipeline(Stichwort: Shader) unterstützt. Die im Folgendenbeschriebene App verwendet derEinfachheit halber OpenGL ES 1.1.Um OpenGL ES in Android nutzen zu können,benötigt man zur Activity zwei Klassen:GLView erzeugt die Zeichenfläche (Canvas), aufder sämtliche Grafikoperationen später abgebildetwerden. Diese erbt von der Android-KiasseGlSurfaceView und implementiertdas Zusammenspiel von View und Activity mitOpenGL ES. Die Haupt-Activity der App setztdeshalb bei der lnitialisierung in onCreate() dieView auf ein Objekt der Klasse GLView:view = new GLView(this);setContentView(view);Mithilfe der Klasse GLRenderer lassen sich zuzeichnende Objekte definieren, mittelsTranslation, Rotation und Skalierung manipulierenund unter Einsatz virtueller Lichtquellenbeleuchten. Welcher Renderer zuverwenden ist, bestimmt GLView im KonstruktormitGLView(Context context) {renderer = new GLRenderer(context);212<strong>c't</strong> <strong>2013</strong>, Heft <strong>24</strong>

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!