SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Estructuras de Datos para VR
    Dr. José Enrique Alvarez Estrada




                    DCBeI

             jeae@ucaribe.edu.mx

  http://www.facebook.com/LeonardoDaVinciMX

  http://www.slideshare.net/LeonardoDaVinciMX/
De qué les voy a hablar hoy
●   El doble origen de la VR
●   AR: una nueva área de la VR
●   Algunos casos de éxito de VR y AR
●   Cómo iniciar con la programación de
    aplicaciones de VR y AR
●   Algunas de las bibliotecas que debo aprender
●   Conclusiones
●   Preguntas
Dos “escuelas” de VR




VR Militar        VR de Garage
¡Yo pertenezco a la segunda!
Y ahora me dedico más
a la Realidad Aumentada

¡¡¡ Tal como ellos !!!
Antes de comenzar
   cabe preguntarse...



¿ Qué hace realmente
 un COMPILADOR ?
Compilador: DFD Nivel 0



.c
              gcc         a.out
.h
Compilador: DFD Nivel 1.1
                 /usr/include
           .h    /usr/local/include


.c
     cpp        .c                    a.out

.h

             Código
           “expandido”
Compilador: DFD Nivel 1.2
                 /usr/include
           .h    /usr/local/include


.c
     cpp        .c       cc           .s
.h

                       Código
                     ensamblador           a.out
Compilador: DFD Nivel 1.3
                 /usr/include
           .h    /usr/local/include


.c
     cpp        .c       cc           .s
.h

      as        .o                         a.out


            Código objeto
Compilador: DFD Nivel 1.4
                 /usr/include
           .h    /usr/local/include

                                                 /usr/lib
.c                                         /usr/local/lib
     cpp        .c       cc           .s
                                                  .a
.h

      as        .o           ld             a.out


                          Código ejecutable
TODA LA PRODUCCIÓN ACTUAL
 DE REALIDAD VIRTUAL (VR)
  SE HACE EN BASE AL USO

  DE BIBLIOTECAS
 Y/O FRAMEWORKS
Pero...

¿qué contienen esas

bibliotecas?
Niklaus Wirth diría que...

                    ESTRUCTURAS
ALGORITMOS               DE
                       DATOS
Niklaus Wirth diría que...

                                        ESTRUCTURAS
    ALGORITMOS                               DE
                                           DATOS

Implementación         Interfaz
{                     Int F(int x, int y)
     if(x > y)
        return y++;
     else
        return x++;
}
Niklaus Wirth diría que...

                            ESTRUCTURAS
 ALGORITMOS                      DE
                               DATOS

Implementación   Interfaz




     .a                         .h
¿Y los Frameworks?
●   También son Bibliotecas
●
    Generalmente OO
    ●   Clases
    ●   Herencia
    ●   Polimorfismo
●   Toman el control del flujo de la aplicación
●   El programador sólo produce código
    para manejar eventos
Una Taxonomía


                  FreeVR


SVGAlib   Open   Toolkits (GTK+, KDE)
           GL                           OSG
                 OSX Win32 XWindow

          HARDWARE DE DESPLIEGUE
Una Taxonomía

                                 scenegraph
                  FreeVR


SVGAlib   Open   Toolkits (GTK+, KDE)
           GL                           OSG
                 OSX Win32 XWindow

          HARDWARE DE DESPLIEGUE
Una Taxonomía
   interface/integration

                  FreeVR


SVGAlib   Open   Toolkits (GTK+, KDE)
           GL                           OSG
                 OSX Win32 XWindow

          HARDWARE DE DESPLIEGUE
Scene Graph: Qué es
●   Una estructura de de datos general
●   Comúnmente usada por:
    ●   Aplicaciones de edición de gráficos vectorizados
        –   Acrobat 3D
        –   Adobe Illustrator
        –   AutoCAD
        –   CorelDRAW
        –   OpenSceneGraph
        –   OpenSG
        –   VRML97
        –   X3D
    ●   Videojuegos
Scene Graph: Características
●   Acomoda la representación lógica (y a veces la
    espacial) de una escena gráfica
●   Colección de nodos
●   En un grafo o un árbol
●   Operaciones recursivas
    ●   Si se aplican al padre, se aplican a los hijos
    ●   Se propaga el efecto
●   Generalmente mediante matrices de
    transformación
Una implementación open source




   http://www.openscenegraph.org/
FreeVR: Qué es
●   Una biblioteca open source de interfaz e
    integración
●   Diseñada para trabajar con una amplia
    variedad de HW de I/O
●   Aísla los detalles de implementación de la
    aplicación
●   Adaptable para trabajar sobre casi cualquier
    infraestructura de VR existente
ARToolKit: Qué es
●   Una biblioteca para el desarrollo de
    aplicaciones de realidad aumentada
●   Capta imágenes de la cámara de video
    mediante la biblioteca gstreamer
●   Reconoce patrones impresos en las imágenes
●   Sobrepone a los patrones impresos imágenes
    definibles por el usuario
Conclusiones
●   Tras años en las sombras, ha llegado el
    momento de la VR y la AR
●   Innumerables áreas de aplicación...
              ●   ¡sólo falta encontrarlas!
●   Para programar VR y AR hay que aprender...
                         ●   C y C++
●   La VR y la AR se trabaja mejor con...
                   ●   SW open source
¿ PREGUNTAS ?
    Gracias por su Atención
  Dr. José Enrique Alvarez Estrada

           jeae@ucaribe.edu.mx

http://www.facebook.com/LeonardoDaVinciMX/

http://www.slideshare.net/LeonardoDaVinciMX/

Más contenido relacionado

Similar a Estructuras de datos para realidad virtual

Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDKFe
 
Introducción android ndk
Introducción android ndkIntroducción android ndk
Introducción android ndkBarcelona GTUG
 
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptxLo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptxSergio Antonio Ochoa Martinez
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloMarco Bellido
 
Lleva tu Android App al Sigiente Nivel
Lleva tu Android App al Sigiente NivelLleva tu Android App al Sigiente Nivel
Lleva tu Android App al Sigiente NivelSoftware Guru
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdfJosé Moreno
 
Optimización de Aplicaciones Android para X86
Optimización de Aplicaciones Android para X86Optimización de Aplicaciones Android para X86
Optimización de Aplicaciones Android para X86Software Guru
 
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018  Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018 Codemotion
 
Presentacion Arduino PowerPoint
Presentacion Arduino PowerPointPresentacion Arduino PowerPoint
Presentacion Arduino PowerPointcristianperea
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosGabriel Huecas
 
Sanchez montesdeoca angela 2 b2
Sanchez montesdeoca angela 2 b2Sanchez montesdeoca angela 2 b2
Sanchez montesdeoca angela 2 b2angelasanchezM
 
Sanchez montesdeoca angela 2 b2
Sanchez montesdeoca angela 2 b2Sanchez montesdeoca angela 2 b2
Sanchez montesdeoca angela 2 b2angelasanchezm29
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Alincita Simon
 

Similar a Estructuras de datos para realidad virtual (20)

Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDK
 
Introducción android ndk
Introducción android ndkIntroducción android ndk
Introducción android ndk
 
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptxLo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrollo
 
01 - Introducción al lenguaje C
01 - Introducción al lenguaje C01 - Introducción al lenguaje C
01 - Introducción al lenguaje C
 
Lleva tu Android App al Sigiente Nivel
Lleva tu Android App al Sigiente NivelLleva tu Android App al Sigiente Nivel
Lleva tu Android App al Sigiente Nivel
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdf
 
introducción a flutter
introducción a flutterintroducción a flutter
introducción a flutter
 
Optimización de Aplicaciones Android para X86
Optimización de Aplicaciones Android para X86Optimización de Aplicaciones Android para X86
Optimización de Aplicaciones Android para X86
 
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018  Jerónimo López | Introducción a GraalVM | Codemotion Madrid  2018
Jerónimo López | Introducción a GraalVM | Codemotion Madrid 2018
 
Presentacion Arduino PowerPoint
Presentacion Arduino PowerPointPresentacion Arduino PowerPoint
Presentacion Arduino PowerPoint
 
Presentacion
PresentacionPresentacion
Presentacion
 
Arduino PowerPoint
Arduino PowerPointArduino PowerPoint
Arduino PowerPoint
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos Básicos
 
Odroid 13-es-201501
Odroid 13-es-201501Odroid 13-es-201501
Odroid 13-es-201501
 
Sanchez montesdeoca angela 2 b2
Sanchez montesdeoca angela 2 b2Sanchez montesdeoca angela 2 b2
Sanchez montesdeoca angela 2 b2
 
Sanchez montesdeoca angela 2 b2
Sanchez montesdeoca angela 2 b2Sanchez montesdeoca angela 2 b2
Sanchez montesdeoca angela 2 b2
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Open gl chica
Open gl chicaOpen gl chica
Open gl chica
 
Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++Manual de Practicas de Open GL con Dev C++
Manual de Practicas de Open GL con Dev C++
 

Más de José Enrique Alvarez Estrada

Elon Musk: el verdadero Ironman [detrás de Tesla Motors, SpaceX y SolarCity]
Elon Musk: el verdadero Ironman [detrás de Tesla Motors, SpaceX y SolarCity]Elon Musk: el verdadero Ironman [detrás de Tesla Motors, SpaceX y SolarCity]
Elon Musk: el verdadero Ironman [detrás de Tesla Motors, SpaceX y SolarCity]José Enrique Alvarez Estrada
 
Utilidad e impacto de las redes sociales versión 1.5
Utilidad e impacto de las redes sociales versión 1.5Utilidad e impacto de las redes sociales versión 1.5
Utilidad e impacto de las redes sociales versión 1.5José Enrique Alvarez Estrada
 
¡Crea tu propio Lab de Ciencias con tu Computadora o Smartphone!
¡Crea tu propio Lab de Ciencias con tu Computadora o Smartphone!¡Crea tu propio Lab de Ciencias con tu Computadora o Smartphone!
¡Crea tu propio Lab de Ciencias con tu Computadora o Smartphone!José Enrique Alvarez Estrada
 
De aventón... Una historia de TERROR en [y con] el transporte público
De aventón... Una historia de TERROR en [y con] el transporte públicoDe aventón... Una historia de TERROR en [y con] el transporte público
De aventón... Una historia de TERROR en [y con] el transporte públicoJosé Enrique Alvarez Estrada
 
De ingeniero a hacker... ¡y de hacker a maker! La necesidad de más práctica e...
De ingeniero a hacker... ¡y de hacker a maker! La necesidad de más práctica e...De ingeniero a hacker... ¡y de hacker a maker! La necesidad de más práctica e...
De ingeniero a hacker... ¡y de hacker a maker! La necesidad de más práctica e...José Enrique Alvarez Estrada
 

Más de José Enrique Alvarez Estrada (20)

Video Mapping con Open Source
Video Mapping con Open SourceVideo Mapping con Open Source
Video Mapping con Open Source
 
Video Mapping con Open Source
Video Mapping con Open SourceVideo Mapping con Open Source
Video Mapping con Open Source
 
BAT 2 CLI, CLI 2 COW, COW 2 GUI
BAT 2 CLI, CLI 2 COW, COW 2 GUIBAT 2 CLI, CLI 2 COW, COW 2 GUI
BAT 2 CLI, CLI 2 COW, COW 2 GUI
 
Clubes de ciencia
Clubes de cienciaClubes de ciencia
Clubes de ciencia
 
Elon Musk: el verdadero Ironman [detrás de Tesla Motors, SpaceX y SolarCity]
Elon Musk: el verdadero Ironman [detrás de Tesla Motors, SpaceX y SolarCity]Elon Musk: el verdadero Ironman [detrás de Tesla Motors, SpaceX y SolarCity]
Elon Musk: el verdadero Ironman [detrás de Tesla Motors, SpaceX y SolarCity]
 
Cómo el Open Source Cambió mi Vida
Cómo el Open Source Cambió mi VidaCómo el Open Source Cambió mi Vida
Cómo el Open Source Cambió mi Vida
 
Breve historia de la propiedad industrial
Breve historia de la propiedad industrialBreve historia de la propiedad industrial
Breve historia de la propiedad industrial
 
Utilidad e impacto de las redes sociales versión 1.5
Utilidad e impacto de las redes sociales versión 1.5Utilidad e impacto de las redes sociales versión 1.5
Utilidad e impacto de las redes sociales versión 1.5
 
Taller "Small Data con SQL"
Taller "Small Data con SQL"Taller "Small Data con SQL"
Taller "Small Data con SQL"
 
De profesor a emprendedor
De profesor a emprendedorDe profesor a emprendedor
De profesor a emprendedor
 
¡Crea tu propio Lab de Ciencias con tu Computadora o Smartphone!
¡Crea tu propio Lab de Ciencias con tu Computadora o Smartphone!¡Crea tu propio Lab de Ciencias con tu Computadora o Smartphone!
¡Crea tu propio Lab de Ciencias con tu Computadora o Smartphone!
 
Las sinrazones de la Educación Superior
Las sinrazones de la Educación SuperiorLas sinrazones de la Educación Superior
Las sinrazones de la Educación Superior
 
De aventón... Una historia de TERROR en [y con] el transporte público
De aventón... Una historia de TERROR en [y con] el transporte públicoDe aventón... Una historia de TERROR en [y con] el transporte público
De aventón... Una historia de TERROR en [y con] el transporte público
 
Grammars and Syntax
Grammars and SyntaxGrammars and Syntax
Grammars and Syntax
 
Pensamiento STEM Guiado por Datos
Pensamiento STEM Guiado por DatosPensamiento STEM Guiado por Datos
Pensamiento STEM Guiado por Datos
 
De ingeniero a hacker... ¡y de hacker a maker! La necesidad de más práctica e...
De ingeniero a hacker... ¡y de hacker a maker! La necesidad de más práctica e...De ingeniero a hacker... ¡y de hacker a maker! La necesidad de más práctica e...
De ingeniero a hacker... ¡y de hacker a maker! La necesidad de más práctica e...
 
Las apps en el Sector Educativo
Las apps en el Sector EducativoLas apps en el Sector Educativo
Las apps en el Sector Educativo
 
Pirámide organizacional
Pirámide organizacionalPirámide organizacional
Pirámide organizacional
 
De homo sapiens a homo deus
De homo sapiens a homo deusDe homo sapiens a homo deus
De homo sapiens a homo deus
 
Inducción al Sistema de Posgrado y MIGA
Inducción al Sistema de Posgrado y MIGAInducción al Sistema de Posgrado y MIGA
Inducción al Sistema de Posgrado y MIGA
 

Estructuras de datos para realidad virtual

  • 1. Estructuras de Datos para VR Dr. José Enrique Alvarez Estrada DCBeI jeae@ucaribe.edu.mx http://www.facebook.com/LeonardoDaVinciMX http://www.slideshare.net/LeonardoDaVinciMX/
  • 2. De qué les voy a hablar hoy ● El doble origen de la VR ● AR: una nueva área de la VR ● Algunos casos de éxito de VR y AR ● Cómo iniciar con la programación de aplicaciones de VR y AR ● Algunas de las bibliotecas que debo aprender ● Conclusiones ● Preguntas
  • 3. Dos “escuelas” de VR VR Militar VR de Garage
  • 4. ¡Yo pertenezco a la segunda!
  • 5. Y ahora me dedico más a la Realidad Aumentada ¡¡¡ Tal como ellos !!!
  • 6. Antes de comenzar cabe preguntarse... ¿ Qué hace realmente un COMPILADOR ?
  • 7. Compilador: DFD Nivel 0 .c gcc a.out .h
  • 8. Compilador: DFD Nivel 1.1 /usr/include .h /usr/local/include .c cpp .c a.out .h Código “expandido”
  • 9. Compilador: DFD Nivel 1.2 /usr/include .h /usr/local/include .c cpp .c cc .s .h Código ensamblador a.out
  • 10. Compilador: DFD Nivel 1.3 /usr/include .h /usr/local/include .c cpp .c cc .s .h as .o a.out Código objeto
  • 11. Compilador: DFD Nivel 1.4 /usr/include .h /usr/local/include /usr/lib .c /usr/local/lib cpp .c cc .s .a .h as .o ld a.out Código ejecutable
  • 12. TODA LA PRODUCCIÓN ACTUAL DE REALIDAD VIRTUAL (VR) SE HACE EN BASE AL USO DE BIBLIOTECAS Y/O FRAMEWORKS
  • 14. Niklaus Wirth diría que... ESTRUCTURAS ALGORITMOS DE DATOS
  • 15. Niklaus Wirth diría que... ESTRUCTURAS ALGORITMOS DE DATOS Implementación Interfaz { Int F(int x, int y) if(x > y) return y++; else return x++; }
  • 16. Niklaus Wirth diría que... ESTRUCTURAS ALGORITMOS DE DATOS Implementación Interfaz .a .h
  • 17. ¿Y los Frameworks? ● También son Bibliotecas ● Generalmente OO ● Clases ● Herencia ● Polimorfismo ● Toman el control del flujo de la aplicación ● El programador sólo produce código para manejar eventos
  • 18. Una Taxonomía FreeVR SVGAlib Open Toolkits (GTK+, KDE) GL OSG OSX Win32 XWindow HARDWARE DE DESPLIEGUE
  • 19. Una Taxonomía scenegraph FreeVR SVGAlib Open Toolkits (GTK+, KDE) GL OSG OSX Win32 XWindow HARDWARE DE DESPLIEGUE
  • 20. Una Taxonomía interface/integration FreeVR SVGAlib Open Toolkits (GTK+, KDE) GL OSG OSX Win32 XWindow HARDWARE DE DESPLIEGUE
  • 21. Scene Graph: Qué es ● Una estructura de de datos general ● Comúnmente usada por: ● Aplicaciones de edición de gráficos vectorizados – Acrobat 3D – Adobe Illustrator – AutoCAD – CorelDRAW – OpenSceneGraph – OpenSG – VRML97 – X3D ● Videojuegos
  • 22. Scene Graph: Características ● Acomoda la representación lógica (y a veces la espacial) de una escena gráfica ● Colección de nodos ● En un grafo o un árbol ● Operaciones recursivas ● Si se aplican al padre, se aplican a los hijos ● Se propaga el efecto ● Generalmente mediante matrices de transformación
  • 23. Una implementación open source http://www.openscenegraph.org/
  • 24. FreeVR: Qué es ● Una biblioteca open source de interfaz e integración ● Diseñada para trabajar con una amplia variedad de HW de I/O ● Aísla los detalles de implementación de la aplicación ● Adaptable para trabajar sobre casi cualquier infraestructura de VR existente
  • 25. ARToolKit: Qué es ● Una biblioteca para el desarrollo de aplicaciones de realidad aumentada ● Capta imágenes de la cámara de video mediante la biblioteca gstreamer ● Reconoce patrones impresos en las imágenes ● Sobrepone a los patrones impresos imágenes definibles por el usuario
  • 26. Conclusiones ● Tras años en las sombras, ha llegado el momento de la VR y la AR ● Innumerables áreas de aplicación... ● ¡sólo falta encontrarlas! ● Para programar VR y AR hay que aprender... ● C y C++ ● La VR y la AR se trabaja mejor con... ● SW open source
  • 27. ¿ PREGUNTAS ? Gracias por su Atención Dr. José Enrique Alvarez Estrada jeae@ucaribe.edu.mx http://www.facebook.com/LeonardoDaVinciMX/ http://www.slideshare.net/LeonardoDaVinciMX/