Download Slide 1 - Centro de Computación Gráfica

Document related concepts
no text concepts found
Transcript
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





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



Gran poder de cómputo
Dispositivos de salida de
gran tamaño
Conexión rápida a
internet
Dispositivos móviles




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


Primitivas


Back materials, local viewer: NO
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 Golf
2009
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)
Realidad Aumentada
WorkSnug
Le Bar Guide
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 engines
http://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