computación gráfica en dispositivos móviles
DESCRIPTION
Computación Gráfica en Dispositivos Móviles. Fundamentos y Técnicas en Computación Gráfica Marzo, 2014. Introducción. Cuál es el videojuego más jugado en el mundo? Opciones: Halo, Mario, Final Fantasy…, WoW, Tetris? Respuesta:. Introducción. - PowerPoint PPT PresentationTRANSCRIPT
Computación Gráfica en Dispositivos Móviles
Fundamentos y Técnicas en Computación GráficaMarzo, 2014
Introducción Cuál es el videojuego más jugado en el
mundo? Opciones: Halo, Mario, Final Fantasy…, WoW,
Tetris? Respuesta:
Introducción Cuál es el videojuego más jugado en el mundo? Opciones: Halo, Mario, Final Fantasy…, WoW,
Tetris? Respuesta: Snake
En 10 años Nintendo ha vendido 100M GameBoys
En el 2003 Nokia vendió 128M de celulares
¿Por qué gráficos en móviles? No es solo un teléfono. Un teléfono tiene:
calendario, cámara, mensajes, imágenes, animaciones, juegos, navegación, sonido, tv, notas, etc.
Aproximadamente 1 billón de teléfonos x año El factor visual es un factor sumamente
importante
Aplicaciones iPhone/iPod El 22 de Enero 2011 a las 10:26 AM, el Apple
App Store vendió la aplicación nro. 10 billones 50% de los usuarios de iPhone son < 30 años 93% de los usuarios ha comprado al menos 1
vez en el App Store
Hrdware Gráfico en móviles OpenGL ES 1.0
100 millones de teléfonos OpenGL ES 2.0
Adreno GPU, Qualcomm Tecnología Imagination Power NVIDIA Tegra Google Native Client (NaCl) WebGL Ouya Android desde 2.0 a 2.2 BlackBerry OS 7.0 a 10 Raspberry PI
Hardware Gráfico en móviles OpenGL ES 3.0
Publicada el 6 de Agosto 2013 Pocos dispositivos la contienen Nexus 7 LG G2 Samsung Galaxy S4 Dispositivos con iOS >= 7.0 Power VR (serie 6) Versiones recientes de la GPU
Procesadores Embebidos
Diseñado para despliegue de gráficos
ARM Mali – T604 GPU
4ta. Generación
GPGPU
Soporta OpenCL y DirectX
OpenGL ES 1.1
OpenVG 1.1
Procesadores Embebidos
Dual-Core ARM Cortex A9
1 GHz por core
8 cores GPU
OpenGL ES 2.0
OpenVG 1.1
EGL 1.4
Procesador de reproducción de video a 1080p
Dificultades en móviles Poca cantidad de memoria Conjunto de instrucciones limitadas En general, relojes de baja frecuencia
100 - 200 MHz ARM9 400 – 600 MHz ARM11 600 MHz ARM CortexA8
Área pequeña para la GPU Debe ser barato y de poco espacio físico Consumo de memoria
Acceso a memoria es una de las operaciones más costosas
Comparación
Dispositivos no móviles Dispositivos móviles
Gran poder de cómputo
Dispositivos de salida de gran tamaño
Conexión rápida a internet
Bajo poder de cómputo
Dispositivos de salida de pequeños
Conexión lenta a internet
La entrada de datos puede resultar tediosa y no es estándar
Investigación en Móviles
Compresión de texturas Mecanismos de culling Técnicas de iluminación Stereo rendering Shaders, etc…
Aspectos importantes en el desarrollo APIs para diversas plataformas “Debería” funcionar donde sea OpenGL ES y JSR239
OpenGL ES OpenGL es muy poderoso para móviles ES es un subconjunto de OpenGL PS3, iPhone, Nokia N900, MS Zune, etc.
OpenGL vs. OpenGL ES Modelo de iluminación completa
Back materials, local viewer: NO
Primitivas Polígonos y Quads: NO. Solo puntos, triángulos y líneas
Punto fijo para eficiencia
OpenGL ES Soporta “todo” lo que un móvil necesita Versiones
OpenGL ES 1.x es para hardware con pipeline fijo OpenGL ES 2.0 es para hardware con pipeline
programable
Adrenaline Golf2009
EGL Interfaz entre OpenGL ES/OpenVG y el
sistema de ventana nativo Diversas superficies de rendering
windows pbuffers pixmaps
Khronos Diversos estándares multimedia para móviles
Java M3G (JSR 184), Java Specification Request JSR 239, Java Bindings for OpenGL ES JSR 226, 2D Vector graphics for Java
J2ME API de Java, Java MicroEdition Utilizado con los MIDP (Mobile Information
Device Profile) Mobile 3D Graphics API: MIDP 1.1 Interfaz de bajo nivel Gráficos 3D interactivos
No requiere de hardware especializado Dos modos (retained + immediate)
Le Bar Guide
WorkSnug
Realidad Aumentada
Car Finder
Android 2007, Open Handset Alliance 2008, Android
Android 2007, Open Handset Alliance 2008, Android Android Development Tools (ADT) plug-in de
Eclipse Emulador en el Android Virtual Device (AVD) Android.package Soporte para OpenGL ES 1.0
totalmente $25 para el registro
Android A partir de la v. 2.2 (Froyo), Android soporta
OpenGL ES 2.0 Se tiene básicamente dos opciones:
Java Android Native Development Kit (NDK)
Android A partir de la v. 2.2 (Froyo), Android soporta
OpenGL ES 2.0 Se tiene básicamente dos opciones:
Java Android Native Development Kit (NDK)
iPhone/iPod/iPad Objective – C en Mac OS. iPhone SDK Cocos 2D, Bullet Physics, Appsamuck, etc. Editor xCode 5 Licencia Anual de $99 Al igual que Android, gran cantidad de:
Blogs Libros Videos Código Conferencias Campamentos
List of game engineshttp://en.wikipedia.org/wiki/List_of_game_engines
Librerías – Cocos2D http://cocos2d-iphone.org OpenSource engine iPhone o Android Diversos juegos se han desarrollado Utilizado en el ámbito académico
Librerías – Corona Labs Ambiente 2D desarrollado por Ansca Mobile Especializado para el desarrollo de Juegos 2D
y software gráfico Emplea LUA y soporta iPhone/iPad y Android Desde $16/$49/$79/$199 mensual
Librerías - iTorque Garage Games Engine muy conocido y de amplia trayectoria Torque 2D y Torque 3D Diversas herramientas a diversos costos
Librerías - ShiVa Plataforma de desarrollo 3D, Stonetrip Linux, Mac, Windows, Android, iPhone, iPad ,
Windows Phone, PSVita, Wii, Client-Server, etc.
Los scripts utilizan Lua. Una solución que facilita mucho el desarrollo sobre iOS
desde $200
Librerías - Unity Muy popular en los últimos años (PC y iPhone) Los scripts son en JavaScript/C#. Unity3D
Engine
Gratis (Unity)+ $1500 - pro
Librerías Existen muchas otras librerías/engines de
desarrollo Oolong Engine, iPad / iPhone / iPod touch
Librerías Existen muchas otras librerías/engines de desarrollo
Edgelib
Librerías Existen muchas otras librerías/engines de desarrollo
jMonkey
Librerías Existen muchas otras librerías/engines de
desarrollo SIOS Engine
Ejemplo de Otras Aplicaciones INSTAR (Siemens VDO, FutureLab)
Ejemplo de Otras Aplicaciones ARDrone
Ideas Finales Las limitaciones son netamente de hardware Trabajar en una Pentium 1 ó 2 Amplio campo de investigación del futuro La tendencia es wireless y en menor tamaño Otros tópicos con computación gráfica en
móviles: Fotografía computacional:
FCam
The end Next class: Introduction to GPU for General
Purpose