Gráficos 3D X3DOM - WEBGL



Documentos relacionados
ESCUELA SUPERIOR DE HUEJUTLA PRIMITIVAS TRIDIMENSIONALES EN SISTEMAS DE REALIDAD VIRTUAL CON X3DOM

DESARROLLO WEB EN ENTORNO CLIENTE

ESCUELA SUPERIOR DE HUEJUTLA PRIMITIVAS BÁSICAS TRIDIMENSIONALES EN SISTEMAS DE REALIDAD VIRTUAL CON X3DOM

JavaScript,, AJAX y otras tecnologías web. Área de Ingeniería Telemática

Curso Online de Diseño Web avanzado con HTML5 y CSS3

Modelos de gestión de contenidos

Prácticas de Programación Multimedia.

Introducción a la programación multimedia.

e-windtech Integración de simulaciones 3D en cursos e-learning Pamplona, 3 de junio de 2010

HTML5 y V. Studio Sitios y aplicaciones Web con los nuevos estándares HTML5, CSS 3 y Javascript 5 manejados desde Visual Studio 2012

Capitulo 4. JavaFX. Se da a conocer la plataforma de desarrollo JavaFX, los niveles en el cual se encuentra

Introducción a Gestión de Proyectos. Beneficios del Sistema. Arquitectura y Diseño del Aplicativo. Requerimientos del Sistema.

La guía de la programación HTML5, CSS y JavaScript con Visual Studio

DISEÑO ORGANIZACIONAL. Diseño web avanzado con HTML5 y CSS5

ACCIÓN FORMATIVA FINANCIADA POR EL SERVICIO PÚBLICO DE EMPLEO ESTATAL

DISEÑO WEB (I y II) CONTENIDO TEMÁTICO

Programación Multimedia. Examen Primera Convocatoria. Junio2013

Juan Ramón Pérez Pérez

TEMA: DESARROLLO DE APLICACIONES WEB INTERACTIVAS UTILIZANDO LA TÉCNICA AJAX AUTOR: MERY SUSANA ZAMBONINO BAUTISTA

INGENIERÍA INFORMÁTICA Curso Académico 2006/2007. Sofía Bayona Beriso Francisco Javier Sánchez Zurdo. Realidad Virtual y Animación 1

Arquitecturas Distribuidas 09/10

DIPLOMADO EN MULTIMEDIOS

Ajax. Asynchronous JavaScript And XML No es un lenguaje de programación Varias tecnologías unidas de manera muy potente:

SITNA en tu móvil. SITNA en tu móvil TALLER SITNA PARA MÓVILES. Para empezar. SITNA en tu móvil TALLER SITNA PARA MÓVILES

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

TFM Comunicación, Redes y Gestión de Contenidos

Curso de HTML5 y CSS3

APÉNDICE A - Especificación VRML 2.0

Parte III. Características del proyecto. Web corporativa. Aplicación gestión. Comandas. Gestión cocina.

Confección y publicación de páginas Web

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)

DESARROLLO DE CONTENIDOS A MEDIDA E-DUCATIVA

TEMA. Diseño orientado a la web. Internet y las páginas web. [9.1] Cómo estudiar este tema? [9.2] Internet y los navegadores

PRODUCCIÓN DE CONTENIDOS EDUCATIVOS PARA DISPOSITIVOS MÓVILES. Oscar Boude Figueredo Maestría en Informática educativa

Curso Facebook Curso Online Desarrollo de Aplicaciones para Facebook

Experto en Diseño Gráfico aplicado al Diseño Web

BASES DE DATOS OFIMÁTICAS

Aplicaciones web ricas con jquery y Ajax Jorge Bustos sp@danysoft.com

Introducción a Internet

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

KESDEE Equipo de Apoyo. Fecha: 03 de enero 2014

Desarrollo de App responsive con ArcGIS API for javascript, Html5 y CSS3 REUNIÓN DE USUARIOS SIGSA ESRI 2015

LENGUAJES DE PROGRAMACIÓN 4 MÓDULOS. 56 Horas

El papel del estándar WPS en la arquitectura orientada a servicios en SIG.

V Jornadas Pedagógicas en Tecnología e Innovación Educativa LABORATORIO VIRTUAL PARA LA SIMULACIÓN DE LOS COMPONENTES INTERNOS DEL COMPUTADOR

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO. Informáticas

DIPLOMADO Desarrollo de Aplicaciones para Web y Móviles con HTML5

Entidades Colaboradoras: Entidad Organizadora:

Desarrollo Web. Realizamos todo tipo de páginas web adaptando el diseño a tus gustos y posibilidades.

Aplicaciones y Diseño para Web

PROGRAMACIÓN DE APLICACIONES PARA ANDROID. 30 horas 45 días

Click Computación Especialidad: Diplomado Materia: HTML y CSS3 40 Horas HTMLY CSS3: HISTORIA, PRESENTE Y FUTURO

Este documento se distribuye bajo los términos de la licencia Creative Commons by sa. sa/2.

(Rich Internet Applications) (Aplicaciones de internet enriquecidas).

Introducción al Desarrollo de Aplicaciones Web D R A. M A R I C E L A B R A V O

Diseño de páginas web 2011

DISEÑO MICROCURRICULAR

Dirección General de Educación Superior Tecnológica

Temario 23/09/2008. UNIVERSIDAD ABIERTA INTERAMERICANA Facultad de Tecnología Informática. Luis Perdomo Rocio Gimenez

Introducción a la Web 2.0

Capacitación Proyecto IDE Galápagos

ACREDITACIÓN DE DOCENTES PARA TELEFORMACIÓN. 50 horas 60 días

Curso: DISEÑO WEB PARA DISPOSITIVOS MOVILES CON HTML5 + CSS3 + JAVASCRIPT

Informe Final Desarrollo del Proyecto Áreas Naturales Protegidas del Ecuador. Desarrollado por: Jessica Nathaly Correa María Isabel Granda.

Aspectos prácticos de Internet

Qué es una aplicación web

CAPITULO 3 VRML-JAVA-WWW

MANUAL DE USUARIO Joomla 2.5

Máster en DISEÑO Y DESARROLLO DE PROYECTOS WEB

Tema: ANIMACIONES SOFTWARE MULTIMEDIA. Msc. Richard Henry Argote Ticona Ciencias de la computación

Librerías JavaScript Processing.js

Taller de Introducción

Noviembre Qué es jquery? Por: César Amauri Villarreal Fuentes QUÉ ES JQUERY? NOVIEMBRE 2013

CURSO DE JUVENTUD DISEÑO Y COMUNICACIÓN WEB

INDICE Capitulo 1. Internet y la Web Capitulo 2. Páginas Web Capitulo 3. Introducción al Lenguaje HTML Capitulo 4. Imágenes

Experto en Diseño Web Para Dispositivos Móviles con HTML5 + CSS3 + JavaScript

ACADEMIA DDW TEMARIO

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Ciclo Formativo de Grado Superior Desarrollo de Aplicaciones Web

Desarrollo. multidispositivo. multiplataforma.

SEGUNDA PARTE: DOM y jquery

CURSO DE FLASH CS3 OBJETIVOS:

Servicio de Mapas. Portal Inteligente Medellín Documentación de la Arquitectura de Software

Introducción a Gestión de Conocimiento y Capital Humano. Beneficios del Sistema. Arquitectura y Diseño del Aplicativo. Requerimientos del Sistema.

Desarrollo de Aplicaciones con Tecnologías Web

FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS

Nivel Intermedio. Escribir lenguaje de marcado HTML. Utilizar programas editores de HTML. Utilizar Hojas de Estilo en Cascada CSS

Clientes de XProtect Acceda a su vigilancia

Los requisitos de accesibilidad en un proyecto software. Implicaciones de usuarios discapacitados en el proceso software

Navegadores y páginas web

Reflexión. Inicio. Contenido

I: Formación complementaria en TI

Tema Tecnologías de Desarrollo

Web. Web Diapositiva 1

Mozilla y el desarrollo del web para todos. Percy Cabello percy@mozilla.pe

Técnico Profesional en Diseño Web Avanzado con HTML5 y CSS3 (Online)

Capitulo 1: Plataforma Android

Apéndice A Herramientas utilizadas

Transcripción:

Gráficos 3D X3DOM - WEBGL Programación Multimedia. G.I.M. Francisco Grimaldo, Inmaculada Coma 1

Índice Información 3D en la Web Tecnologías para gráficos 3D Web X3D X3DOM WEBGL: Web Graphics Library Referencias 2

Información 3D en la Web Interés creciente en aplicaciones web para: Presentación de productos. Visualización de información abstracta (p.ej. líneas temporales de datos). Navegación enriquecida (p.ej. museos). Visualizaciones sofisticadas: Ayer ( sólo?): Uso de Adobe Flash y vídeos. Mañana: Inmersión 3D a través de navegadores.

Tecnologías para gráficos 3D Web (1/2) Basadas en lenguajes de marcas: VRML: Virtual Reality Modeling Language. X3D: Evolución de VRML. X3DOM: X3D en HTML. Desarrollado por Web 3D Consortium: http://www.web3d.org Basadas en script: WebGL: OpenGL + GLSL mediante JavaScript. Desarrollado por Khronos Group http://www.khronos.org

Tecnologías para gráficos 3D Web (2/2)

X3D: Introducción X3D es un formato de fichero estándar abierto basado en XML que permite la comunicación en tiempo real de datos 3D entre aplicaciones y aplicaciones de red. Ofrece una amplia gama de características para el uso en ingeniería y visualización científica, CAD y arquitectura, visualización médica, entrenamiento y simulación, multimedia, entretenimiento, educación, Heredero de VRML97.

X3D: Características Integración XML: Servicios Web, multiplataforma, transferencia de datos entre aplicaciones. Compartimentado: Distribuciones, perfiles y extensiones. Visualización en múltiples dispositivos. Gráficos, audio y vídeo interactivos en tiempo real. Estándar ISO bien especificado

X3D: Funcionalidades Objetos definidos por el usuario: Posibilidad de extender la funcionalidad del navegador para definir tipos de datos definidos por el usuario. Scripting: Capacidad de cambio dinámico de la escena utilizando lenguajes de programación y de script. Red: Capacidad de composición de una escena X3D a partir de assets ubicados en una red; hiperenlace de objetos a otras escenas o assets alojados en cualquier lugar de la WWW. Simulación física: Animación humanoide, conjuntos de datos geoespaciales, integración con protocolos DIS (Distributive Interactive Simulation).

X3D: Grafo de escena (1/2) Grafo acíclico que describe el mundo 3D creado (objetos 3D, interactividad, ). Cada nodo del grafo es una instancia de uno de los tipos de nodos disponibles: Un nodo Shape define una forma; uno Transform posiciona, orienta y escala sus nodos hijos; y un nodo DirectionalLight define una fuente de luz. Respecto a VRML97, en X3D aparecen nuevos nodos que incorporan avances tridimensionales aprovechando los nuevos recursos hardware y software.

X3D: Grafo de escena (2/2) Ejemplos básicos: http://www.web3d.org/x3d/content/examples/basic/

X3DOM: X3D en HTML5 X3DOM = X3D + DOM Integra los gráficos 3D definidos de forma declarativa en HTML5. Permite el uso de JavaScript y el acceso al DOM para contenido 3D

X3DOM: Ventajas (1/2) Integración nativa con el navegador: No necesita la instalación de plugins o aplicaciones. Evita problemas de instalación, permisos y seguridad Independiente del sistema operativo, especialmente en dispositivos móviles Facilita el desarrollo: Entorno de ejecución completo en el navegador. Ubicuidad de navegadores incrementa accessibilidad. Carece de un API especial y avanzada. Integración con otras técnicas Web estándar: CSS, Ajax

X3DOM: Ventajas (2/2) Descripción de contenido declarativo y legible: Encapsula detalles gráficos de bajo nivel. Interacción con el usuario mediante APIs Web estándar (p.ej. JavaScript y CSS). Interoperabilidad: El mismo código se ejecuta en escritorio, red y dispositivo móvil. Integración HTML vs Sistema cerrado: Metadatos. Facilita la indexación y búsqueda. Permite la combinación de contenidos de diversas fuentes (mashups). Conexión de datos existentes (p.ej. geo-información) con contenido 3D.

X3DOM: Plantilla básica (1/2) <!DOCTYPE html> <html> <head> <title>plantilla X3DOM</title> <link rel="stylesheet" type="text/css" href="http://www.x3dom.org/download/dev/x3dom.css"> <script type="text/javascript" src="http://www.x3dom.org/download/dev/x3dom.js"> </script> </head>

X3DOM: Plantilla básica (2/2) <body> <h1>plantilla X3DOM</h1> <x3d width="400" height="300"> <scene> <shape> <appearance> <material diffusecolor='red'> </material> </appearance> <box></box> </shape> </scene> </x3d> </body> </html>

X3DOM: Background Nodo X3D: <scene> <shape> </shape> <background skycolor="0 0 0"> </background> </scene> Estilo CSS: <x3d style= background-color:#00f > <scene> </scene> </x3d>

X3DOM: Formas geométricas <sphere radius= 1.0 > <cylinder radius= 1.0 height= 2.0 > <box size= 2.0 2.0 2.0 > <cone bottomradius= 1.0 height= 2.0 > <torus innerradius= 0.5 outerradius= 1.0 >

X3DOM: Creación de formas Marcador de final del polígono <scene> <shape> <appearance> <material diffusecolor="salmon"> </material> </appearance> <indexedfaceset coordindex="0 1 2 3-1"> <coordinate point="2 2 0, 7 2 0, 7 5 0, 2 5 0"> </coordinate> </indexedfaceset> </shape> <viewpoint position="0 0 15"></viewpoint> </scene> Sobre el eje Z y mirando hacia abajo

X3DOM: Fuentes de luz

X3DOM: Iluminación de los objetos <body> <x3d width="400" height="300"> <scene> <shape> <appearance> <material diffusecolor='red specularcolor="#808080"> </material> </appearance> <box></box> </shape> </scene> </x3d> </body>

X3DOM: Texturas Imágenes Vídeo: <x3d width="500px" height="400px"> <scene> <shape> <appearance> <imagetexture url="logo.png"></imagetexture> </appearance> <box></box> </shape> </scene> </x3d> <movietexture url= foo.mp4, foo.ogv ></movietexture>

X3DOM: Traslaciones <transform translation="-2 0 0"> <shape> <appearance> <material diffusecolor="red"></material> </appearance> <box></box> </shape> </transform> <transform translation="2 0 0"> <shape> <appearance> <material diffusecolor="blue"></material> </appearance> <sphere></sphere> </shape> </transform>

X3DOM: Grupos y transformaciones Los nodos <group> y <transform>, respectivamente, agrupan y posicionan uno o más objetos del grafo de escena: <transform translation="0 0 0" rotation="0 1 0 0" scale="1 1 1"> </transform>

X3DOM: Acceso al DOM Nombrar nodos: <group id= root ></group> También se usa mucho el atributo ref. Añadir nodos: root = document.getelementbyid( root ); trans = document.createelement('transform'); trans.setattribute( translation, 1 2 3 ); root.appendchild(trans); Eliminar nodos: root.removechild(trans); Modificar atributos: document.getelementbyid( mat ).setattribute( diffusecolor, red );

X3DOM: Interacción con usuario (1/2) Alternativa A: <shape> <appearance> <material id="mat" diffusecolor="red"> </material> </appearance> <box onclick= document.getelementbyid('mat').setattribute('diffusecolor', 'green');" > </box> </shape>

X3DOM: Interacción con usuario (2/2) Alternativa B: <shape> <appearance> <material id="mat" diffusecolor="red"></material> </appearance> <box id="box"></box> </shape> <script type="text/javascript"> document.onload = function() { document.getelementbyid('box').addeventlistener('click', function() { document.getelementbyid('mat').setattribute('diffusecolor', 'olive'); }, false) }; </script>

X3DOM: Animaciones <scene> <transform id="trafo" rotation="0 1 0 0"> <shape> <appearance> <material diffusecolor="red"> </material> </appearance> <box></box> </shape> </transform> <timesensor id="ts" loop="true" cycleinterval="2"> </timesensor> <orientationinterpolator id="oi" key="0.0 0.5 1.0" keyvalue="0 1 0 0, 0 1 0 3.14, 0 1 0 6.28"> </orientationinterpolator> <ROUTE fromnode='ts' fromfield='fraction_changed' tonode='oi' tofield='set_fraction'></route> <ROUTE fromnode='oi' fromfield='value_changed' tonode='trafo' tofield='set_rotation'></route> </scene> El primer <route> hace que el nodo <timesensor> ts active al nodo <orientationinterpolator> oi, que proporciona los ángulos de rotación alrededor del eje Y (0 1 0). El segundo <route> hace que el valor resultante se use para el atributo rotation del nodo <transform> trafo.

Referencias X3DOM Web 3D Consortium: Información general X3D. http://www.web3d.org X3DOM: Sitio oficial, documentación y ejemplos. http://www.x3dom.org http://x3dom.org/docs/dev/index.html http://www.x3dom.org/?page_id=5 http://x3dom.org/x3dom/test/functional/

WebGL: Web Graphics Library Interfaz de programación de gráficos 3D dentro de páginas web. Origen: 2006, desarrollo de su propio Canvas3D por Mozilla. Actualmente desarrollado por Khronos Group del cual forman parte tanto Mozilla, Opera como Apple y Google. Especificación WebGL 1.0 (Feb. 2011) https://www.khronos.org/registry/webgl/specs/1.0/

WebGL: Introducción Herramienta multiplataforma para dibujar contenido 3D en HTML que se basa en: OpenGL ES 2.0. OpenGL Shading Language (GLSL ES). JavaScript para acceder al DOM a bajo nivel. Utiliza el elemento canvas de HTML5: gl = canvas.getcontext( webgl ); Soportado: Firefox, Chrome, Opera y Safari. http://www.doesmybrowsersupportwebgl.com Con IExplorer necesita un plug-in: IEWebGL.

WebGL: Modelos Se pueden importar modelos 3D creados con programas con Blender y exportados o descargar modelos creados: https://sketchfab.com/ Se puede trabajar a bajo nivel con el API de programación de WebGL o utilizar algunas librerías de alto nivel que encapsulan esta API.

WebGL: Librerías de programación WebGLU: la primera librería WebGL disponible públicamente. C3DL: Canvas 3D JavaScript Library. Librerías alto nivel: Three.js, GLGE, SceneJS, Oak3D Processing.js: utiliza WebGL para renderizar un objeto 2D o 3D, programado en Processing, dentro de un canvas de HTML. GLOW: Envolvente (wrapper) de WebGL desarrollado por la BBC. SpiderGL: librería gráfica JavaScript 3D basada en WebGL. gwt-g3d: librería 3D para GWT (Google Web Toolkit).

Referencias WebGL WebGL en Wikipedia: Introducción al lenguaje. Breve reseña histórica http://es.wikipedia.org/wiki/webgl http://en.wikipedia.org/wiki/webgl.lenguaje WebGL: Sitio oficial. Especificaciones completas, documentación del API, recursos de programación, foros y demás. http://www.khronos.org/webgl/ Tutorial WebGL de Mozilla Developer Network: Tutorial de Mozilla sobre WebGL, centrado en el navegador Firefox. https://developer.mozilla.org/en/webgl Learning WebGL: Blog con lecciones incrementales, ejercicios y ejemplos (original en inglés y traducción al español). http://learningwebgl.com/blog/ http://www.jlabstudio.com/webgl/tutoriales-webgl/ Tutorial de WebGL. Universidad de La Coruña: Ejemplos de uso de librerías de desarrollo para WebGL (WebGLU y C3DL). http://sabia.tic.udc.es/gc/contenidos%20adicionales/trabajos/tutoriales/tutorialwebgl/index.htm