Análisis de Alternativas para el Desarrollo de Aplicaciones Gráficas 3D sobre Dispositivos Móviles<br />SeminarioMáster Co...
Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE...
1<br />Introducción<br /><ul><li> Los teléfonos móviles han experimentado una evolución tecnológica muy importante durante...
 Prácticamente hoy en día se parecen a diminutos computadores capaces de procesar grandes cantidades de información
 Sus prestaciones gráficas no se quedan atrás y han permitido que los teléfonos móviles se conviertan en una pequeña plata...
1<br />Introducción<br />Evolución Gráfica<br />1998	2000	2002	2005	2007	2009	2008	2010<br />M3G – OpenGL ES<br />OpenGL E...
Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE...
2<br />Plataformas Actuales<br />Arquitectura monolítica (núcleo escrito en C)<br />2.1<br />Máquina virtual Dalvik  para ...
2<br />Plataformas Actuales<br />Mucha documentación y ejemplos<br />Cuidado con quedarnos sin memoria<br />Fácil de progr...
2<br />Plataformas Actuales<br />Sistema optimizado para dispositivos de baja batería<br />Desarrollo en C++<br />Arquitec...
2<br />Plataformas Actuales<br />Soporte de máquina virtual java<br />Buena gestión de memoria<br />Complejidad en el desa...
2<br />Plataformas Actuales<br />Open Source con componentes propietarios<br />Interfaz gráfica basada en GNOME<br />Plata...
2<br />Plataformas Actuales<br />Incompatibilidades entre SDKs en diferentes versiones<br />Complejo desarrollo y ejecució...
2<br />Plataformas Actuales<br />Quiere  llegar a los sistemas de vehículos y televisión<br />Sigue una línea paralela a M...
2<br />Plataformas Actuales<br />Utilización de Qt<br />Poca documentación<br />Compatibilidad con Maemo<br />Sistema aun ...
2<br />Plataformas Actuales<br />Diseñado desde sus inicios para terminales de pocos recursos<br />Desarrollo en C++ y .NE...
2<br />Plataformas Actuales<br />Desarrollo muy fácil y flexible<br />Mucha documentación y ejemplos<br />Sistema bastante...
2<br />Plataformas Actuales<br />Funciona de forma nativa<br />Posibilidad de usar C y C++ utilizando el PDK (Kit de desar...
2<br />Plataformas Actuales<br />Herramientas SDL y PDK<br />Limitación de JavaScript<br />Desarrollo Web básicamente<br /...
2<br />Plataformas Actuales<br />Interfaz de usuario basada en gestos multi-touch<br />Desarrollo en C, C++ y Objective-C<...
2<br />Plataformas Actuales<br />Se necesita un Mac para desarrollar aplicaciones<br />Primeras versiones no soportan mult...
2<br />Plataformas Actuales<br />Según Samsung, NO es un Sistema Operativo<br />Plataforma con un kernel configurable<br /...
2<br />Plataformas Actuales<br />SDK destinado a los desarrolladores libres<br />Poca documentación<br />Compatibilidad co...
2<br />Plataformas Actuales<br />Soporte nativo para correo corporativo<br />Desarrollo en C, C++ y Java<br />Sistema pate...
2<br />Plataformas Actuales<br />Soporte para Java MIDP 1.0 y WAP 1.2<br />Sistema Multitarea<br />Fragmentación de versio...
2<br />Plataformas Actuales<br />Independiente de cualquier equipo físico<br />Sistema Operativo basado en Linux<br />Prob...
2<br />Plataformas Actuales<br />Subconjunto destinado a dispositivos móviles<br />Programación en Java<br />J2ME no es un...
2<br />Plataformas Actuales<br />Fácil de programar<br />Limitaciones de las APIs<br />Conjunto amplio de APIs diseñadas<b...
2<br />Plataformas Actuales<br />Otros, firmware propietarios<br />Prácticamente todos disponen de una máquina virtual de ...
Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE...
3<br />Librerías gráficas 3D<br />OpenGL ES<br />Tiny Graphics Engine<br />TIGRE<br />Klimt<br />Vincent 3D<br />J2ME<br /...
3<br />Librerías gráficas 3D<br />OpenGL ES es una API de bajo nivel para gráficos 2D y 3D en sistemas avanzados embebidos...
3<br />Librerías gráficas 3D<br />OpenGL ES 1.1 Vs  OpenGL ES 2.0<br />iPhone 3GS<br />SHADER: Procedimiento de sombreado ...
3<br />Librerías gráficas 3D<br />Ejemplos en varias plataformas<br />Qualcomm MSM7x30 con Android y un juego en OpenGL ES...
3<br />Librerías gráficas 3D<br />Ejemplos en varias plataformas<br />Demo OpenGL ES 2.0 en un Sony Ericsson Satio<br />
3<br />Librerías gráficas 3D<br />Ejemplos en varias plataformas<br />Demo juego OpenGL ES en un N900<br />
3<br />Librerías gráficas 3D<br />Ejemplos en varias plataformas<br />Demo juego OpenGL ES en HTC HD2<br />
3<br />Librerías gráficas 3D<br />Disponibilidad<br />OpenGL ES es la API oficial para algunos sistemas operativos<br />
3<br />Librerías gráficas 3D<br />Basadas en OpenGL ES<br />Tiny Graphics Engine (TIGRE)<br />Librería de renderizado grat...
3<br />Librerías gráficas 3D<br />Basadas en OpenGL ES<br />Tiny Graphics Engine (TIGRE)<br />Windows Mobile tiene un prob...
3<br />Librerías gráficas 3D<br />Basadas en OpenGL ES<br />Vincent 3D<br />Librería de renderizado gratuita<br />Soporte ...
3<br />Librerías gráficas 3D<br />Basadas en OpenGL ES<br />Librería de código abierto<br />Soporte para Windows Mobile , ...
3<br />Librerías gráficas 3D<br />Basadas en OpenGL ES<br />Windows CE PDA using PocketKnife's TGA-export function<br />
3<br />Librerías gráficas 3D<br />Librerías para J2ME<br />Mobile 3D Graphics (M3G)<br />Librería escrita en Java destinad...
3<br />Librerías gráficas 3D<br />Librerías para J2ME<br />Mobile 3D Graphics (M3G)<br />Si no se gestiona debidamente y s...
3<br />Librerías gráficas 3D<br />Librerías para J2ME<br />Mobile 3D Graphics (M3G)<br />A pesar de las desventajas que pr...
3<br />Librerías gráficas 3D<br />Microsoft<br />Direct3D Mobile<br />Esta librería deriva de la Direct3D API basada en si...
Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE...
4<br />IDEs de Programación<br />Multiplataforma<br />SDK Java aunque también acepta proyectos en C/C++<br />No necesita i...
4<br />IDEs de Programación<br />IDE para sistemas Windows<br />C, C++, C#, J#, .NET y otros<br />Interfaz gráfica basada ...
4<br />IDEs de Programación<br />IDE de Apple<br />Compila código C, C++, Objetive-C y Objetive C++<br />Destinada a desar...
4<br />IDEs de Programación<br />Totalmente gratuito<br />Es una herramienta para el desarrollo de aplicaciones Symbian<br...
4<br />IDEs de Programación<br />Qt Creator<br />Desarrollo en C++<br />Buena gestión y refactorización<br />Tiene un dise...
4<br />IDEs de Programación<br />Relación<br />¿<br />¿<br />
Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE...
5<br />Tipos de aplicaciones<br />Prácticamente todas las aplicaciones desarrolladas para sistemas de escritorio pueden se...
5<br />Tipos de aplicaciones<br />¿Qué tengo o debo utilizar para desarrollar mis aplicaciones?<br />¿<br />¿<br />¿<br />...
5<br />Tipos de aplicaciones<br />Aplicaciones tipo formulario con gráficos 2D<br />Aplicaciones con interfaz 2D y objetos...
5<br />Tipos de aplicaciones<br />App Formularios<br />Interfaz 2D<br />Formularios simples de introducción de datos<br />...
5<br />Tipos de aplicaciones<br />App Formularios<br />Interfaz 2D con objetos 3D<br />Apoyo con elementos 3D<br />Aporta ...
5<br />Tipos de aplicaciones<br />App Internety RA<br />Aplicaciones Internet<br />Intercambio de información con la red<b...
5<br />Tipos de aplicaciones<br />App Web y RA<br />Realidad Aumentada<br />Uso de todos los recursos del dispositivo<br /...
5<br />Tipos de aplicaciones<br />Juegos<br />Juegos 2D<br />Gráficos 2D<br />Pueden necesitar acceso a la red<br />Ideale...
5<br />Tipos de aplicaciones<br />Juegos<br />Juegos 3D<br />Uso de librerías 3D del dispositivo<br />Algunos juegos requi...
5<br />Tipos de aplicaciones<br />App con componentes<br />Uso de la parte multimedia del dispositivo<br />Uso de la cámar...
Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE...
6<br />Nuestras Recomendaciones<br />App Formularios<br />Funcionalidad Requerida<br />Alta<br />Baja<br />DIFICULTAD<br /...
6<br />Nuestras Recomendaciones<br />App 2D y 3D<br />Funcionalidad Requerida<br />Alta<br />Baja<br />DIFICULTAD<br />Alt...
6<br />Nuestras Recomendaciones<br />Componentes del móvil<br />Utilización de componentes presentes en el dispositivo<br ...
6<br />Nuestras Recomendaciones<br />Juegos 2D<br />Funcionalidad Requerida<br />Alta<br />Baja<br />DIFICULTAD<br />Alta<...
6<br />Nuestras Recomendaciones<br />Juegos 3D<br />COMPLEJIDAD<br />Alta<br />Baja<br />DIFICULTAD<br />Alta<br />
Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE...
7<br />Conclusiones<br />Existen muchas alternativas a la hora de desarrollar aplicaciones para dispositivos móviles<br />...
Upcoming SlideShare
Loading in …5
×

Análisis de Alternativas para el Desarrollo de Aplicaciones Gráficas 3D

5,264 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,264
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
124
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Análisis de Alternativas para el Desarrollo de Aplicaciones Gráficas 3D

  1. 1. Análisis de Alternativas para el Desarrollo de Aplicaciones Gráficas 3D sobre Dispositivos Móviles<br />SeminarioMáster Computación Avanzada y Sistemas Inteligentes<br />Rubén Talón Argente<br />
  2. 2. Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE de programación<br />Tipos de aplicaciones<br />Nuestras Recomendaciones<br />Conclusiones<br />2<br />3<br />4<br />5<br />6<br />7<br />
  3. 3. 1<br />Introducción<br /><ul><li> Los teléfonos móviles han experimentado una evolución tecnológica muy importante durante esta última década
  4. 4. Prácticamente hoy en día se parecen a diminutos computadores capaces de procesar grandes cantidades de información
  5. 5. Sus prestaciones gráficas no se quedan atrás y han permitido que los teléfonos móviles se conviertan en una pequeña plataforma de trabajo, ocio y diversión</li></li></ul><li>1<br />Introducción<br />Evolución Tecnológica<br />1983 1999 2000 2002 2005 2007 2009 2010<br />< 84x48<br />960x460<br />480x800<br />320x240<br />176x220<br />176x208<br />MP3<br />Vídeo<br />Gráficos 3D<br />GPS<br />Touch<br />
  6. 6. 1<br />Introducción<br />Evolución Gráfica<br />1998 2000 2002 2005 2007 2009 2008 2010<br />M3G – OpenGL ES<br />OpenGL ES 1.1 – OpenGL ES 2.0<br />Java2D<br />
  7. 7. Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE de programación<br />Tipos de aplicaciones<br />Nuestras Recomendaciones<br />Conclusiones<br />2<br />3<br />4<br />5<br />6<br />7<br />
  8. 8. 2<br />Plataformas Actuales<br />Arquitectura monolítica (núcleo escrito en C)<br />2.1<br />Máquina virtual Dalvik para traducir el código a su lenguaje nativo<br />Programación en Java con la alternativa de utilizar NDK para C<br />Biblioteca de gráficos 2D y 3D basada en OpenGL ES<br />Primeros móviles: HTC Dream y HTC Magic. Actualmente funciona en una amplia variedad de móviles de distintas compañías: Motorola, Samsung, HTC, LG, etc.<br />2.2<br />EVOLUCIÓN<br />1.0<br />1.1<br />1.5<br />1.6<br />2.0/2.0.1<br />2.1<br />2.2<br />
  9. 9. 2<br />Plataformas Actuales<br />Mucha documentación y ejemplos<br />Cuidado con quedarnos sin memoria<br />Fácil de programar<br />Depuración en el emulador y móvil<br />Diseño complejo de interfaz<br />Fragmentación<br />Fácil publicación de software en el Android Market<br />Android 2.1 en un Motorola Milestone<br />EVOLUCIÓN<br />1.0<br />1.1<br />1.5<br />1.6<br />2.0/2.0.1<br />2.1<br />2.2<br />
  10. 10. 2<br />Plataformas Actuales<br />Sistema optimizado para dispositivos de baja batería<br />Desarrollo en C++<br />Arquitectura basada en micronúcleo escrito en C++<br />Ampliamente extendido<br />Política de licencias: Eclipse PublicLicense (EPL)<br />Symbian OS 9.4 y Symbian^3<br />EVOLUCIÓN<br />S60 9.3<br />^1<br />S60 9.2<br />^2<br />^3<br />
  11. 11. 2<br />Plataformas Actuales<br />Soporte de máquina virtual java<br />Buena gestión de memoria<br />Complejidad en el desarrollo<br />Los emuladores no disponen de todas las características reales de los móviles<br />Actualmente se pueden desarrollar interfaces con Qt<br />Symbian^3 en un Nokia N8<br />EVOLUCIÓN<br />S60 9.3<br />^1<br />S60 9.2<br />^2<br />^3<br />
  12. 12. 2<br />Plataformas Actuales<br />Open Source con componentes propietarios<br />Interfaz gráfica basada en GNOME<br />Plataforma desarrollada por Nokia basada en el Sistema Debian<br />Arquitectura de núcleo monolítico Linux<br />Utilizado en Nokia 770, N800, N810 y N900<br />EVOLUCIÓN<br />4.0<br />5.0<br />6.0<br />
  13. 13. 2<br />Plataformas Actuales<br />Incompatibilidades entre SDKs en diferentes versiones<br />Complejo desarrollo y ejecución<br />Utilización de Qt<br />Utilización de las herramientas proporcionadas por Debian<br />Los SDK se adaptan a los nuevos terminales<br />Plataforma desarrollada por Nokia<br />Maemo en un Nokia N900<br />EVOLUCIÓN<br />4.0<br />5.0<br />6.0<br />
  14. 14. 2<br />Plataformas Actuales<br />Quiere llegar a los sistemas de vehículos y televisión<br />Sigue una línea paralela a Maemo sin ser un reemplazo<br />Surge de la unión de Maemo y Moblin<br />MeeGo<br />EVOLUCIÓN<br />1.1<br />1.0<br />1.2<br />
  15. 15. 2<br />Plataformas Actuales<br />Utilización de Qt<br />Poca documentación<br />Compatibilidad con Maemo<br />Sistema aun en pruebas<br />MeeGo en un Nokia N900<br />EVOLUCIÓN<br />1.1<br />1.0<br />1.2<br />
  16. 16. 2<br />Plataformas Actuales<br />Diseñado desde sus inicios para terminales de pocos recursos<br />Desarrollo en C++ y .NET<br />Compatibilidad con aplicaciones muy utilizadas de Microsoft Windows<br />Ampliamente extendido<br />Windows Mobile 6.5 y Windows Phone 7<br />EVOLUCIÓN<br />6.0<br />6.5<br />2003<br />5.0<br />CE 3.0<br />7.0<br />
  17. 17. 2<br />Plataformas Actuales<br />Desarrollo muy fácil y flexible<br />Mucha documentación y ejemplos<br />Sistema bastante lento<br />Soporte Multi-Touch a partir de la última versión<br />Interfaz en ocasiones incómoda<br />EVOLUCIÓN<br />6.0<br />6.5<br />2003<br />5.0<br />CE 3.0<br />7.0<br />
  18. 18. 2<br />Plataformas Actuales<br />Funciona de forma nativa<br />Posibilidad de usar C y C++ utilizando el PDK (Kit de desarrollo Plug-in)<br />Lenguaje JavaScript junto con HTML y CSS<br />EVOLUCIÓN<br />1.2<br />1.0/1.1<br />1.4<br />1.3<br />
  19. 19. 2<br />Plataformas Actuales<br />Herramientas SDL y PDK<br />Limitación de JavaScript<br />Desarrollo Web básicamente<br />Rápido desarrollo y Rápida ejecución<br />Limitación de gráficos 3D<br />WebOS en un Palm<br />EVOLUCIÓN<br />1.2<br />1.0/1.1<br />1.4<br />1.3<br />
  20. 20. 2<br />Plataformas Actuales<br />Interfaz de usuario basada en gestos multi-touch<br />Desarrollo en C, C++ y Objective-C<br />Sistema derivado de Mac OS X<br />Núcleo Híbrido (Micronúcleo + Servicios)<br />Hay tres tipos de licencias: Universitaria, Estándar y Empresarial<br />La Universitaria es gratuita y las demás se paga un porcentaje a Apple<br />iOS 4.0<br />3.2.2 (iPad)<br />EVOLUCIÓN<br />3.1 (iPhone 2G)<br />4.0<br />4.1<br />
  21. 21. 2<br />Plataformas Actuales<br />Se necesita un Mac para desarrollar aplicaciones<br />Primeras versiones no soportan multitarea<br />No soporta ni Java ni Flash<br />Compatibilidad con HTML5 en últimas versiones<br />Aplicaciones fáciles de portar entre iPhone, iPod y iPad<br />iOS 4 en un iPhone 4<br />EVOLUCIÓN<br />3.1 (iPhone 2G)<br />3.2.2 (iPad)<br />4.0<br />
  22. 22. 2<br />Plataformas Actuales<br />Según Samsung, NO es un Sistema Operativo<br />Plataforma con un kernel configurable<br />Desarrollado por Samsung<br />Desarrollo en C++<br />Bada OS<br />EVOLUCIÓN<br />1.0.0.b3<br />
  23. 23. 2<br />Plataformas Actuales<br />SDK destinado a los desarrolladores libres<br />Poca documentación<br />Compatibilidad con Flash<br />Pocos dispositivos<br />Bada OS en un Samsung Wave<br />EVOLUCIÓN<br />1.0.0.b3<br />
  24. 24. 2<br />Plataformas Actuales<br />Soporte nativo para correo corporativo<br />Desarrollo en C, C++ y Java<br />Sistema patentado por RIM<br />BlackBerry OS 6<br />EVOLUCIÓN<br />5.0<br />6.0<br />4.5<br />
  25. 25. 2<br />Plataformas Actuales<br />Soporte para Java MIDP 1.0 y WAP 1.2<br />Sistema Multitarea<br />Fragmentación de versiones<br />Desarrollo utilizando plugin en Eclipse<br />Poco atractivo para un desarrollador multiplataforma<br />BlackBerry OS 6<br />EVOLUCIÓN<br />5.0<br />6.0<br />4.5<br />
  26. 26. 2<br />Plataformas Actuales<br />Independiente de cualquier equipo físico<br />Sistema Operativo basado en Linux<br />Problemas a la hora de conectar con la red<br />Sistema de código totalmente abierto<br />No hay controladores 100% funcionales<br />Precio Licencias: 0€<br />Limo Linux<br />
  27. 27. 2<br />Plataformas Actuales<br />Subconjunto destinado a dispositivos móviles<br />Programación en Java<br />J2ME no es un Sistema Operativo<br />Está muy extendido<br />La máquina virtual de J2ME viene integrada con el sistema Symbian<br />Presente en un amplio abanico de dispositivos sin importar la plataforma<br />AJUSTES<br />CLDC 1.0<br />MIDP 1.0<br />MIDP 2.0/2.1<br />CLDC 1.1<br />
  28. 28. 2<br />Plataformas Actuales<br />Fácil de programar<br />Limitaciones de las APIs<br />Conjunto amplio de APIs diseñadas<br />Mucha documentación y ejemplos<br />Recursos muy bajos en móviles<br />Multiplataforma<br />Incompatibilidad de APIs con algunas máquinas virtuales<br />AJUSTES<br />CLDC 1.0<br />MIDP 1.0<br />MIDP 2.0/2.1<br />CLDC 1.1<br />
  29. 29. 2<br />Plataformas Actuales<br />Otros, firmware propietarios<br />Prácticamente todos disponen de una máquina virtual de J2ME<br />Características según el fabricante<br />Funciones básicas de manejo del dispositivo<br />Algunos firmwares están desarrollados en Flash<br />Sony Ericsson T610<br />Sony Ericsson W660<br />LG BL40<br />
  30. 30. Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE de programación<br />Tipos de aplicaciones<br />Nuestras Recomendaciones<br />Conclusiones<br />2<br />3<br />4<br />5<br />6<br />7<br />
  31. 31. 3<br />Librerías gráficas 3D<br />OpenGL ES<br />Tiny Graphics Engine<br />TIGRE<br />Klimt<br />Vincent 3D<br />J2ME<br />Microsoft<br />M3G<br />Direct3D<br />
  32. 32. 3<br />Librerías gráficas 3D<br />OpenGL ES es una API de bajo nivel para gráficos 2D y 3D en sistemas avanzados embebidos<br />La principal diferencia entre las dos versiones es el soporte de Shaders en la 2.0<br />Existen varias versiones, las más utilizadas hoy en día son la OpenGL ES 1.1 y la OpenGL ES 2.0<br />Deriva de la API gráfica OpenGL. Se han eliminado módulos y características que los dispositivos móviles no pueden soportar por su bajo rendimiento<br />Está muy bien documentado y estructurado, además, los comandos lógicos se han modificado para facilitar la tarea de programación<br />
  33. 33. 3<br />Librerías gráficas 3D<br />OpenGL ES 1.1 Vs OpenGL ES 2.0<br />iPhone 3GS<br />SHADER: Procedimiento de sombreado e iluminación que permite especificar el renderizado de un vertex o de un pixel.<br />OpenGL ES 1.1<br />OpenGL ES 2.0<br />OpenGL ES 1.1<br />OpenGL ES 2.0<br />
  34. 34. 3<br />Librerías gráficas 3D<br />Ejemplos en varias plataformas<br />Qualcomm MSM7x30 con Android y un juego en OpenGL ES<br />
  35. 35. 3<br />Librerías gráficas 3D<br />Ejemplos en varias plataformas<br />Demo OpenGL ES 2.0 en un Sony Ericsson Satio<br />
  36. 36. 3<br />Librerías gráficas 3D<br />Ejemplos en varias plataformas<br />Demo juego OpenGL ES en un N900<br />
  37. 37. 3<br />Librerías gráficas 3D<br />Ejemplos en varias plataformas<br />Demo juego OpenGL ES en HTC HD2<br />
  38. 38. 3<br />Librerías gráficas 3D<br />Disponibilidad<br />OpenGL ES es la API oficial para algunos sistemas operativos<br />
  39. 39. 3<br />Librerías gráficas 3D<br />Basadas en OpenGL ES<br />Tiny Graphics Engine (TIGRE)<br />Librería de renderizado gratuita para Windows Mobile 5, 6, 6.1 y 6.5<br />Escrita en Managed C# y basada en la versión 3.5 de FrameWork<br />Utiliza aceleración por hardware<br />Actualmente existen dos versiones:<br />Máxima flexibilidad: Modelo de cámaras, texturas, filtros, renderizado de texto, etc.<br />Tigre 1.1 – fixed pipeline OpenGL ES<br />Tigre 2.0 – dynamic pipeline OpenGL ES<br />
  40. 40. 3<br />Librerías gráficas 3D<br />Basadas en OpenGL ES<br />Tiny Graphics Engine (TIGRE)<br />Windows Mobile tiene un problema con OpenGL ES, ya que no forma parte del Sistema en si. Se necesitas drivers que comuniquen la parte hardware con la API<br />Demo TIGRE en un HTC HD2<br />
  41. 41. 3<br />Librerías gráficas 3D<br />Basadas en OpenGL ES<br />Vincent 3D<br />Librería de renderizado gratuita<br />Soporte para Symbian y Windows Mobile<br />Utiliza aceleración por hardware<br />Actualmente sigue dos proyectos, uno basado en OpenGL ES 1.x y el otro en OpenGL ES 2.0<br />
  42. 42. 3<br />Librerías gráficas 3D<br />Basadas en OpenGL ES<br />Librería de código abierto<br />Soporte para Windows Mobile , Symbian y PalmOS<br />Está basada en Coin3D que a su vez es una librería basada en OpenGL<br />Dispone de iluminación, primitivas básicas de OpenGL, vídeo de fondo, entre otras<br />No soporta antialiasing<br />
  43. 43. 3<br />Librerías gráficas 3D<br />Basadas en OpenGL ES<br />Windows CE PDA using PocketKnife's TGA-export function<br />
  44. 44. 3<br />Librerías gráficas 3D<br />Librerías para J2ME<br />Mobile 3D Graphics (M3G)<br />Librería escrita en Java destinada a dispositivos móviles de pocos recursos<br />Contiene 30 clases para pintar una escena 3D compleja<br />M3G y Java3D son dos APIs totalmente distintas e incompatibles<br />Está tecnología está muy extendida. Prácticamente todos los móviles de soporte M3G y los que no se les puede instalar una máquina virtual de J2ME<br />Actualmente M3G tiene dos versiones: La M3G 1.1 (JSR-184) y la M3G 2.0 (JSR-297) con soporte de Shaders para dispositivos potentes<br />
  45. 45. 3<br />Librerías gráficas 3D<br />Librerías para J2ME<br />Mobile 3D Graphics (M3G)<br />Si no se gestiona debidamente y si el dispositivo carece de recursos M3G va muy lento<br />Las especificaciones recomiendan no sobrepasar los 1500 polígonos en pantalla<br />Se pueden importar modelos creados en Maya, Blender o 3D studio con un pluginespecial<br />Modelo final en un Nokia N95<br />Modelo SketchUp<br />3D Studio<br />
  46. 46. 3<br />Librerías gráficas 3D<br />Librerías para J2ME<br />Mobile 3D Graphics (M3G)<br />A pesar de las desventajas que presenta M3G podemos ajustarlo a cualquier dispositivo compatible haciendo que funcione con fluidez<br />Podemos encontrar multitud de juegos con gráficos excelentes corriendo en móviles de pocos recursos debido a una buena gestión de la librería<br />
  47. 47. 3<br />Librerías gráficas 3D<br />Microsoft<br />Direct3D Mobile<br />Esta librería deriva de la Direct3D API basada en sistemas de escritorio y está optimizada para el uso en sistemas embebidos<br />Se han eliminado algunos módulos de soporte 3D debido a la baja potencia de los sistemas móviles<br />Al igual que OpenGL, el dispositivo tiene que soportar las características que nos da la API<br />Demo Direct3D con unalibrería de física<br />A diferencia de OpenGL estas librerías son propietarias<br />
  48. 48. Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE de programación<br />Tipos de aplicaciones<br />Nuestras Recomendaciones<br />Conclusiones<br />2<br />3<br />4<br />5<br />6<br />7<br />
  49. 49. 4<br />IDEs de Programación<br />Multiplataforma<br />SDK Java aunque también acepta proyectos en C/C++<br />No necesita instalación<br />Funcionalidad basada en módulos donde el usuario elige los que necesita<br />Buena refactorización<br />Multiplataforma<br />SDK Java aunque también acepta proyectos en otros lenguajes.<br />Necesita instalación<br />Funcionalidad basada en módulos donde el usuario elige los que necesita<br />Mejor soporte para aplicaciones Web<br />
  50. 50. 4<br />IDEs de Programación<br />IDE para sistemas Windows<br />C, C++, C#, J#, .NET y otros<br />Interfaz gráfica basada en Windows Forms<br />Utiliza frameworks para el desarrollo de la interfaz<br />
  51. 51. 4<br />IDEs de Programación<br />IDE de Apple<br />Compila código C, C++, Objetive-C y Objetive C++<br />Destinada a desarrollar interfaces gráficas<br />IDE organizado en diferentes programas por separado<br />Desarrollo obligado en ordenadores MAC<br />
  52. 52. 4<br />IDEs de Programación<br />Totalmente gratuito<br />Es una herramienta para el desarrollo de aplicaciones Symbian<br />Está basada en el IDE Eclipse añadiendo plugins para Symbian<br />Gestiona el desarrollo Symbian mejor que el Visual Studio<br />
  53. 53. 4<br />IDEs de Programación<br />Qt Creator<br />Desarrollo en C++<br />Buena gestión y refactorización<br />Tiene un diseñador de interfaces pero es muy complejo<br />Soporte para Windows, Linux y Mac<br />Contiene un simulador para desarrollar aplicaciones para móviles<br />
  54. 54. 4<br />IDEs de Programación<br />Relación<br />¿<br />¿<br />
  55. 55. Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE de programación<br />Tipos de aplicaciones<br />Nuestras Recomendaciones<br />Conclusiones<br />2<br />3<br />4<br />5<br />6<br />7<br />
  56. 56. 5<br />Tipos de aplicaciones<br />Prácticamente todas las aplicaciones desarrolladas para sistemas de escritorio pueden ser portadas a dispositivos móviles<br />Actualmente las compañías intentan sacar el mismo producto tanto para sistemas de escritorio como para móviles<br />Algunos Ejemplos:<br />
  57. 57. 5<br />Tipos de aplicaciones<br />¿Qué tengo o debo utilizar para desarrollar mis aplicaciones?<br />¿<br />¿<br />¿<br />¿<br />¿<br />¿<br />¿<br />¿<br />¿<br />¿<br />¿<br />¿<br />
  58. 58. 5<br />Tipos de aplicaciones<br />Aplicaciones tipo formulario con gráficos 2D<br />Aplicaciones con interfaz 2D y objetos 3D<br />Aplicaciones con servicios web<br />Juegos 2D (Ej. Plataformas)<br />Juegos 3D<br />Aplicaciones que utilicen la cámara, GPS, Acelerómetros, Sensores, etc.<br />Aplicaciones que utilicen todos los recursos multimedia (Ej. RA)<br />
  59. 59. 5<br />Tipos de aplicaciones<br />App Formularios<br />Interfaz 2D<br />Formularios simples de introducción de datos<br />Imágenes estáticas<br />Información visual muy simple para el usuario<br />Feedback - iPhone<br />Registros - iPhone<br />Formularios – J2ME<br />
  60. 60. 5<br />Tipos de aplicaciones<br />App Formularios<br />Interfaz 2D con objetos 3D<br />Apoyo con elementos 3D<br />Aporta más información visual al usuario<br />Google Navigation - Android<br />Nokia Maps - Symbian<br />Interfaz – Palm WebOS<br />
  61. 61. 5<br />Tipos de aplicaciones<br />App Internety RA<br />Aplicaciones Internet<br />Intercambio de información con la red<br />Conexión permanente a la red<br />Aplicaciones estéticamente simples<br />Spotify - iPhone<br />ustream - Android<br />Qik - Android<br />
  62. 62. 5<br />Tipos de aplicaciones<br />App Web y RA<br />Realidad Aumentada<br />Uso de todos los recursos del dispositivo<br />Algunas aplicaciones se ayudan de internet para actualizar datos<br />Urbanspoon - iPhone<br />Layar - Android<br />TAT Augmented - Android<br />
  63. 63. 5<br />Tipos de aplicaciones<br />Juegos<br />Juegos 2D<br />Gráficos 2D<br />Pueden necesitar acceso a la red<br />Ideales para dispositivos con pocos recursos<br />J2ME<br />Symbian<br />WebOS<br />Maemo<br />
  64. 64. 5<br />Tipos de aplicaciones<br />Juegos<br />Juegos 3D<br />Uso de librerías 3D del dispositivo<br />Algunos juegos requieren dispositivos potentes<br />Convivencia entre 2D y 3D en la mayoría de juegos<br />J2ME<br />iPhone<br />Android<br />
  65. 65. 5<br />Tipos de aplicaciones<br />App con componentes<br />Uso de la parte multimedia del dispositivo<br />Uso de la cámara para manipular las capturas en tiempo real<br />Uso del GPS para la localización<br />Uso de sensores para aplicaciones especificas (niveles, luz, brújula)<br />Compass - Android<br />Speedometer - WM<br />Cámara - Symbian<br />GPS - Symbian<br />
  66. 66. Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE de programación<br />Tipos de aplicaciones<br />Nuestras Recomendaciones<br />Conclusiones<br />2<br />3<br />4<br />5<br />6<br />7<br />
  67. 67. 6<br />Nuestras Recomendaciones<br />App Formularios<br />Funcionalidad Requerida<br />Alta<br />Baja<br />DIFICULTAD<br />Alta<br />
  68. 68. 6<br />Nuestras Recomendaciones<br />App 2D y 3D<br />Funcionalidad Requerida<br />Alta<br />Baja<br />DIFICULTAD<br />Alta<br />
  69. 69. 6<br />Nuestras Recomendaciones<br />Componentes del móvil<br />Utilización de componentes presentes en el dispositivo<br />Alta<br />Baja<br />DIFICULTAD<br />Alta<br />
  70. 70. 6<br />Nuestras Recomendaciones<br />Juegos 2D<br />Funcionalidad Requerida<br />Alta<br />Baja<br />DIFICULTAD<br />Alta<br />
  71. 71. 6<br />Nuestras Recomendaciones<br />Juegos 3D<br />COMPLEJIDAD<br />Alta<br />Baja<br />DIFICULTAD<br />Alta<br />
  72. 72. Índice de Contenidos<br />1<br />Introducción<br />Alternativas y plataformas actuales<br />Librerías gráficas 3D<br />IDE de programación<br />Tipos de aplicaciones<br />Nuestras Recomendaciones<br />Conclusiones<br />2<br />3<br />4<br />5<br />6<br />7<br />
  73. 73. 7<br />Conclusiones<br />Existen muchas alternativas a la hora de desarrollar aplicaciones para dispositivos móviles<br />Actualmente los dispositivos se decantan por utilizar de forma nativa la librería OpenGL ES<br />Hay una alta competitividad entre todas las empresas que se especializan en el desarrollo y nuevas tecnologías para dispositivos móviles<br />A pesar de que la temática de todas las plataformas es similar cada empresa quiere desarrollar su software por separado en un mercado donde la más original y la que mejor sepa vender será la beneficiaria<br />Es necesario saberse la tabla de relaciones (Plataforma-IDE) y las especificaciones del sistema a desarrollar<br />
  74. 74. 7<br />Conclusiones<br />Con nuestra experiencia hemos visto que el mercado tecnológico en desarrollar para tecnología móvil tiene un comportamiento tipo Onda<br />Exige un esfuerzo adicional en información continua en el equipo de desarrollo<br />

×