• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Análisis de Alternativas para el Desarrollo de Aplicaciones Gráficas 3D
 

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

on

  • 5,151 views

 

Statistics

Views

Total Views
5,151
Views on SlideShare
5,151
Embed Views
0

Actions

Likes
1
Downloads
104
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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