El API de WebGL JUAN CARLOS CONDE RAMÍREZ COMPUTER ANIMATION
|
|
|
- María Luisa Acuña Santos
- hace 7 años
- Vistas:
Transcripción
1 El API de WebGL JUAN CARLOS CONDE RAMÍREZ COMPUTER ANIMATION
2 Evolución de los gráficos, I Los conceptos básicos de gráficos interactivos no han cambiando mucho desde hace varios años. Por otro lado, las implementaciones evolucionan continuamente, en especial por la reciente proliferación de dispositivos y S. O. La piedra angular de todos estos cambios siempre ha sido OpenGL. Creado a finales de los 80 s, OpenGL ha sido por mucho tiempo el API estándar para la industria. Ha superado amenazas competitivas por parte de DirectX de Microsoft, emergiendo como el estándar indiscutible para la programación de gráficos 3D. Las características de las distintas plataformas como: computadoras de escritorio, televisiones, teléfonos inteligentes y tabletas, son tan divergentes que se han tenido que desarrollar diferentes versiones de OpenGL. FCC-BUAP 2
3 Evolución de los gráficos, II OpenGL ES (for Embedded Systems) es la versión de OpenGL desarrollada para ejecutarse sobre pequeños dispositivos (dispositivos móviles). Quizás de forma fortuita, ya que no se planeó al momento de su desarrollo, pero OpenGL ES se ha vuelto el núcleo ideal para WebGL. El API de WebGL es pequeño y ligero, lo que significa que no sólo es fácil de implementar en un navegador, sino que también es más seguro que se implemente dentro de los navegadores actuales. Así una aplicación WebGL escrita para determinado navegador funcionará de forma similar en otro. FCC-BUAP 3
4 Evolución de los gráficos, III Para el desarrollador Web promedio, WebGL representa una curva de aprendizaje llena de conceptos bastante especiales, por no decir extraños. Otra vez la buena noticia es que existen varias librerías de código abierto que hacen que el desarrollo con WebGL sea más accesible e incluso divertido. FCC-BUAP 4
5 Pipeline gráfico de WebGL FCC-BUAP 5
6 Anatomía de una aplicación WebGL, I Al final del día, WebGL sólo es una librería de dibujo una biblioteca de dibujo con esteroides, considerando la calidad y el potencial de los gráficos que pueden obtenerse con WebGL quien aprovecha al máximo el hardware gráfico de la mayoría de los dispositivos actuales. Pero la realidad es que sólo se trata de otro tipo de lienzo (canvas), similar al canvas 2D soportado de forma nativa en todo navegador con HTML5. De hecho WebGL utiliza el elemento <canvas> de HTML5 para mostrar gráficos 3D dentro de una página Web. FCC-BUAP 6
7 Anatomía de una aplicación WebGL, II Con el fin de renderizar objetos 3D con WebGL, una aplicación debe implementar los siguientes 8 pasos básicos: 1. Crear un elemento canvas. 2. Establecer un contexto de dibujo para el elemento canvas. 3. Inicializar el viewport o puerto de visión. 4. Inicializar una o más matrices para definir transformaciones desde el buffer de vértices (vertex buffer) hasta el espacio en pantalla. 5. Crear uno o más buffers que contengan los datos a ser renderizados (normalmente vértices). 6. Crear uno o más shaders para implementar el algoritmo de dibujado. 7. Inicializar los shaders con parámetros. 8. Dibujar. FCC-BUAP 7
8 canvas y contexto de dibujo, I Todo el renderizado de WebGL toma lugar dentro de un contexto determinado; un objeto DOM de JavaScript proporciona el API completa de WebGL. Esta estructura refleja el contexto de dibujo 2D provisto en la etiqueta <canvas> de HTML5. Por lo tanto, lo primero que se debe hacer es: Crea el elemento <canvas> en algún lugar de la página. Obtén el objeto DOM asociado con el elemento <canvas> mediante la instrucción: document.getelementbyid(..) Obtener un contexto WebGL para el objeto DOM del elemento <canvas> FCC-BUAP 8
9 canvas y contexto de dibujo, II Ejemplo 1-1. Obtención de un contexto WebGL desde un canvas. function initwebgl(canvas) { var gl; try { gl = canvas.getcontext("experimental-webgl"); } catch (e) { var msg = "Error creating WebGL Context!: " + e.tostring(); alert(msg); throw Error(msg); } return gl; } FCC-BUAP 9
10 canvas y contexto de dibujo, III Nótese que el bloque try/catch del ejemplo anterior es útil para los casos en donde el navegador no soporta WebGL, ya sea por el tipo o por la versión del navegador. Incluso puede darse el caso de navegadores que soporten WebGL ejecutándose sobre hardware obsoleto que no sea capas de brindar un contexto válido de renderizado para WebGL. Así que un código como el anterior, que detecta dicho soporte, será de gran utilidad para optar por la implementación de un renderizado de respaldo basado en un canvas 2D o al menos para poder proporcionar una salida elegante. FCC-BUAP 10
11 El viewport, I Una vez que se ha obtenido un contexto válido de dibujo para WebGL, a partir del canvas, es necesario especificar los límites rectangulares en donde se va a dibujar. A esto se le conoce como viewport en WebGL. La configuración del viewport en WebGL es simple; sólo se debe llamar al método viewport() del contexto. Ejemplo 1-2. Configuración delviewport dewebgl. function initviewport(gl, canvas) { gl.viewport(0, 0, canvas.width, canvas.height); } FCC-BUAP 11
12 El viewport, II Nótese que el objeto gl utilizado aquí es el mismo que se creo anteriormente en initwebgl(). En este caso, se ha inicializado el viewport de WebGL para ocupar el área completa de visualización del canvas. FCC-BUAP 12
13 Buffers y Arrays, I Ahora si ya está todo listo para comenzar a dibujar con WebGL. El dibujo con WebGL se realiza con primitivas que son tipos de objetos para dibujar tales como conjuntos de: puntos, líneas, triángulos (arreglos de triángulos) o tiras de triángulos (descritos de forma más corta). Tales primitivas utilizan arreglos de datos, llamados buffers para definir las posiciones de los vértices que serán dibujados. FCC-BUAP 13
14 Buffers y Arrays, II En el Ejemplo 1-3 se muestra cómo crear un buffer de datos para los vértices de un cuadrado de una unidad largo (1x1). Los resultados son retornados en un objeto de JavaScript que contiene los datos del buffer de vértices, el tamaño de la estructura de vértices (en este caso, tres números de coma flotante para almacenar x, y, y z), el número de vértices y el tipo de primitiva que será usada para dibujar el cuadrado, para este ejemplo se usa una tira de triángulos (triangle strip). Un triangle strip es una primitiva que define una secuencia de triángulos usando los primeros tres vértices para crear el primer triángulo, y cada vértice subsecuente junto con los dos anteriores para crear los siguientes. FCC-BUAP 14
15 Buffers y Arrays, III Ejemplo 1-3. Creación del buffer de datos para los vértices de un cuadrado de 1x1 unidades. function createsquare(gl) { var vertexbuffer; vertexbuffer = gl.createbuffer(); gl.bindbuffer(gl.array_buffer, vertexbuffer); var verts = [ 0.5, 0.5, 0.0, -0.5, 0.5, 0.0, 0.5, -0.5, 0.0, -0.5, -0.5, 0.0 ]; gl.bufferdata(gl.array_buffer, new Float32Array(verts), gl.static_draw); var square = {buffer:vertexbuffer, vertsize:3, nverts:4, primtype:gl.triangle_strip}; return square; } FCC-BUAP 15
16 Buffers y Arrays, IV Nótese que el tipo Float32Array es un nuevo tipo de dato introducido a los navegadores Web para uso de WebGL. Float32Array es una clase de BufferArray, también conocido como arreglo tipado (typed array). Éste es un tipo de tipo de JavaScript que almacena datos binarios compactos. Los arreglos tipados pueden ser accedidos desde JavaScript utilizando la misma sintaxis de los arreglos ordinarios, pero son más rápidos y consumen menos memoria. Son ideales para usarse con datos binarios cuando el rendimiento es crítico. FCC-BUAP 16
17 Buffers y Arrays, V Los arreglos tipados son de uso general, pero su introducción dentro de los navegadores Web fue gracias a los esfuerzos iniciales de WebGL. La última especificación puede ser consultada en el sitio Web del grupo Khronos en: FCC-BUAP 17
18 Matrices, I Antes de que se pueda dibujar, por ejemplo un cuadrado, se deben crear un par de matrices. Primero, se necesita una matriz para definir dónde será posicionado el cuadrado dentro del sistema de coordenadas 3D, relativo a la cámara activa. Esta es conocida como matriz ModelView, debido a que combina transformaciones del modelo (malla 3D) y de la cámara. En el Ejemplo 1-4, se está transformando el cuadrado a través de una traslación a lo largo del eje negativo de Z (i.e. alejándolo de la cámara unidades). FCC-BUAP 18
19 Matrices, II La segunda matriz que se necesita es la matriz de proyección (projection matrix), la cual será requerida por el shader para convertir el espacio de coordenadas 3D del modelo (espacio de la cámara) en coordenadas de dibujo 2D (espacio del viewport). Esta matriz es bastante desagradable; la mayor parte de los programadores no codifica las matrices de proyección a mano, por lo general usa librerías. Existe una gran librería de código abierto llamada glmatrix que realiza matemáticas matriciales en JavaScript ( por Brandon Jones). FCC-BUAP 19
20 Matrices, III Ejemplo 1-4. Configuración de las matrices ModelView y de Proyección. function initmatrices() { // Matriz de transformación para el cuadrado traslación negativa en Z // para la cámara modelviewmatrix = new Float32Array( [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 3.333, 1]); // Matriz de proyección (para un campo de visión de 45 grados) projectionmatrix = new Float32Array( [ , 0, 0, 0, 0, , 0, 0, 0, 0, , 1, 0, 0, , 0]); } FCC-BUAP 20
21 Los shaders, I Hay una pieza más de la configuración que considerar: el shader. Como se mencionó antes, los shaders son pequeños programas escritos en un lenguaje de alto nivel tipo C, que definen cómo serán mostrados los pixeles de los objetos 3D dibujados en pantalla. WebGL requiere que el desarrollador proporcione un shader por cada objeto a dibujar. El mismo shader puede ser usado para múltiples objetos, por lo que en la práctica es suficiente proporcionar un solo shader para toda la aplicación (reutilizándolo con diferentes parámetros). FCC-BUAP 21
22 Los shaders, II Un shader se compone típicamente de dos partes: 1. El vertex shader 2. El fragment shader (también conocido como pixel shader) El vertex shader es responsable de transformar coordenadas o vértices del objeto (3D) en coordenadas de pantalla (2D). El fragment shader es responsable de generar el color final de salida para cada pixel de los vértices transformados, basado en parámetros de entrada tales como: color, textura, iluminación y material. FCC-BUAP 22
23 Los shaders, III Shaders: Relación entre vértices y fragmentos FCC-BUAP 23
24 Los shaders, IV Para nuestro primer ejemplo, el vertex shader combina los valores de la modelviewmatrix y projectionmatrix para crear un vértice transformado para cada entrada, y el fragment shader simplemente genera un color blanco (en código duro). En WebGL, la configuración de shaders requiere una secuencia de pasos, incluyendo la compilación individual de las piezas, y su vinculación posterior. Por brevedad, a continuación se muestra sólo el código GLSL ES para nuestros dos shaders de ejemplo, pero el código completo se puede consultar en documento HTML completo. FCC-BUAP 24
25 Los shaders, V Ejemplo 1-5. Los vertex y fragment shaders var vertexshadersource = " attribute vec3 vertexpos;\n" + " uniform mat4 modelviewmatrix;\n" + " uniform mat4 projectionmatrix;\n" + " void main(void) {\n" + " // Return the transformed and projected vertex value\n" + " gl_position = projectionmatrix * modelviewmatrix * \n" + vec4(vertexpos, 1.0);\n" + " }\n"; var fragmentshadersource = " void main(void) {\n" + " // Return the pixel color: always output white\n" + " gl_fragcolor = vec4(1.0, 1.0, 1.0, 1.0);\n" + "}\n"; FCC-BUAP 25
26 Dibujo de primitivas, I Por fin está todo listo para dibujar un cuadrado: el contexto ha sido creado, elviewport ha sido configurado y el buffer de vértices, matrices y shaders han sido creados e inicializados. Ahora es necesario definir una función, draw(), la cual tomará el contexto de WebGL y el cuadrado previamente definido. FCC-BUAP 26
27 Dibujo de primitivas, II Este procedimiento involucra los siguientes pasos: 1. La función limpia el canvas con un color de fondo blanco. 2. Después se enlaza ( binds ) el buffer de vértices con el que se dibujará el cuadrado. 3. Se coloca ( uses ) el shader que se usará. 4. Posteriormente se conecta el buffer de vértices y las matrices como entradas del shader. 5. Finalmente se invoca al método drawarrays() de WebGL para dibujar el cuadrado. El método drawarrays() recibe como argumentos qué tipo de primitiva y cuántos vértices tiene la primitiva; WebGL conoce el resto de la información puesto que ya se han establecido los otros elementos como parte de su estado. FCC-BUAP 27
28 Dibujo de primitivas, III Ejemplo 1-6. El código dedibujo. function draw(gl, obj) { // se limpia el fondo (con blanco) gl.clearcolor(0.0, 0.0, 0.0, 1.0); gl.clear(gl.color_buffer_bit); // se configure el buffer de vertices que se dibujará gl.bindbuffer(gl.array_buffer, obj.buffer); // se configure el shader que se usará gl.useprogram(shaderprogram); // se vinculan los parámetros del shader: posición de vertices y matrices (projection/model) gl.vertexattribpointer(shadervertexpositionattribute, obj.vertsize, gl.float, false, 0, 0); gl.uniformmatrix4fv(shaderprojectionmatrixuniform, false, projectionmatrix); gl.uniformmatrix4fv(shadermodelviewmatrixuniform, false, modelviewmatrix); // se dibuja el objeto gl.drawarrays(obj.primtype, 0, obj.nverts); } FCC-BUAP 28
29 Dibujo de primitivas, IV FCC-BUAP 29
30 Consideraciones... Hasta aquí ha terminado el tour a nuestra primera aplicación básica con WebGL. Seguramente estés pensando Uff! Cuanto trabajo para dibujar sólo un cuadrado de color blanco, Cielos, ni siquiera es un objeto 3D!. Si bien la programación con WebGL a este nivel es ardua, la API es ligera y simple a costa de tener que hacer mucha codificación del lado de la aplicación. Además, obviamente no se desea utilizar WebGL sólo para dibujar objetos 2D. Bueno hay buenas noticias, otros programadores ya han realizado el trabajo duro por ti. Por tanto, más adelante se crearán aplicaciones con WebGL usando la librería Three.js FCC-BUAP 30
31 Un vistazo a Threejs.org FCC-BUAP 31
Introducción a OpenGL Shading Language (GLSL)
a OpenGL Shading Language (GLSL) November 20, 2007 a OpenGL Shading Language (GLSL) Fixed Pipeline Programmable Pipeline Características de GLSL Por qué escribir un Shader? Vertex Processor Fragment Processor
Tema 1: Modelado poligonal
Tema 1: Modelado poligonal José Ribelles SIU020 Síntesis de Imagen y Animación Departamento de Lenguajes y Sistemas Informáticos, Universitat Jaume I Tema 1: Modelado poligonal 1 Hoy veremos... 1 Introducción
Tema 1: Modelado poligonal
Tema 1: Modelado poligonal José Ribelles VJ1221 Informática Gráfica Departamento de Lenguajes y Sistemas Informáticos, Universitat Jaume I Tema 1: Modelado poligonal 1 Contenido 1 Introducción 2 Orígenes
Tema 4: Viendo en 3D
J. Ribelles SIE020: Síntesis de Imagen y Animación Institute of New Imaging Technologies, Universitat Jaume I Contenido Introducción 1 Introducción 2 3 Proyección Paralela Proyección Perspectiva 4 5 6
GPU - Procesadores de vértices
GPU - Procesadores de vértices Sistemas Gráficos 66.71 UBA 2014 Sistemas Gráficos 66.71 (UBA) GPU - Procesadores de vértices 2014 1 / 28 Índice 1 Arquitectura de la GPU Vertex Shaders Actividad 1 Actividad
Tema 2: Modelado. J.Ribelles. SIE020: Síntesis de Imagen y Animación Institute of New Imaging Technologies, Universitat Jaume I
J. Ribelles SIE020: Síntesis de Imagen y Animación Institute of New Imaging Technologies, Universitat Jaume I Contenido Introducción 1 Introducción 2 3 Introducción Se denomina modelo al conjunto de datos
Tema 1 Introducción. David Vallejo Fernández. Curso 2007/2008. Escuela Superior de Informática
Tema 1 Introducción David Vallejo Fernández Curso 2007/2008 Escuela Superior de Informática Índice de contenidos 1.Computer Graphics. 2.Principales aplicaciones. 3.APIs gráficas. 4.. 5.Resumen. 2 1 Computer
Laboratorio 2: Viewports e Interacción con el Mouse (en 2D) Seleccionar un área de la figura para hacer zoom.
Laboratorio 2: Viewports e Interacción con el Mouse (en 2D) Seleccionar un área de la figura para hacer zoom. Introducción Los vértices sufren transformaciones para pasar del mundo a la pantalla. Estas
FUNCIONES JAVASCRIPT. CONCEPTO. PARÁMETROS O ARGUMENTOS Y TIPOS. PASO POR VALOR. RETURN. EJEMPLOS. (CU01122E)
APRENDERAPROGRAMAR.COM FUNCIONES JAVASCRIPT. CONCEPTO. PARÁMETROS O ARGUMENTOS Y TIPOS. PASO POR VALOR. RETURN. EJEMPLOS. (CU01122E) Sección: Cursos Categoría: Tutorial básico del programador web: JavaScript
Introducción a la programación en OpenGL
Introducción a la programación en OpenGL Qué es OpenGL? Es una interfaz para la generación de gráficos (Graphics rendering API) Imágenes de alta calidad generadas a partir de primitivas geométricas. Independiente
GRAPHICS PIPELINE. Computación Gráfica
GRAPHICS PIPELINE Computación Gráfica Rendering Proceso de generar una imagen 2D a partir de un modelo 3D Offline vs. Real-time Rendering Exactitud sobre rapidez. Películas, diseño de productos, aplicaciones
GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.
1 Programación II, Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. Objetivos Utilizar la sintaxis de las funciones
Introducción a la programación en OpenGL
Introducción a la programación en OpenGL Primera aplicación gráfica Primera aplicación gráfica MUNDO CÁMARA Primera aplicación gráfica MUNDO CÁMARA OBJETOS Primera aplicación gráfica ENTRADA: - Posición
C =[x 1,y 1,x 2,y 2,...,x n,y n ]
Práctica 1 Realizar un programa que presente una nube de puntos en 2D utilizando los comandos de OpenGL vistos en clase. Los puntos deben variar aleatoriamente en posición, tamaño y color. Realizar un
Viewports e Interacción con el Mouse CG 2014.
Viewports e Interacción con el Mouse CG 2014. Introducción Los vértices sufren transformaciones para pasar del mundo a la pantalla. Estas transformaciones, las especificamos mediante matrices. Ventana
C =[x 1,y 1,x 2,y 2,...,x n,y n ]
Práctica 1 Realizar un programa que presente una nube de puntos en 2D utilizando los comandos de OpenGL vistos en clase. Los puntos deben variar aleatoriamente al menos en posición y color. Realizar un
Visualización y Realismo: Problemas Capítulo 2
Visualización y Realismo: Problemas Capítulo 2 Carlos Ureña Almagro Curso 2011-12 1 Problema 2.1 Calcula los coeficientes de la ecuación implícita de la recta que pasa por los puntos p 0 y p 1 Y p 0 p
NÚMERO DE HORAS: 160H PROGRAMACIÓN WEB EN EL ENTORNO CLIENTE OBJETIVO
PACK FORMATIVO EN DESARROLLO DE APLICACIONES CON TECNOLOGÍA WEB NÚMERO DE HORAS: 160H PROGRAMACIÓN WEB EN EL ENTORNO CLIENTE OBJETIVO - Identificar la estructura de una página web conociendo los lenguajes
Requisitos. Conceptos de graficación en 3D:
Requisitos Conceptos de graficación en 3D: 1. Cámara virtual. 2. Iluminación. 3. Representación de cuerpos en 3D (modelado). 4. Materiales. 5. Interacción de la luz con los materiales. 6. Transformaciones
Computación Gráfica = CG = Computer Graphics
Computación Gráfica = CG = Computer Graphics Porqué computación gráfica? Para qué sirve? Cómo se utiliza? Cuáles son las principales áreas? Necesidad contemporanea Visualizar/Analizar lo imposible Una
Planificaciones Sistemas Gráficos. Docente responsable: ABBATE HORACIO ANTONIO. 1 de 5
Planificaciones 6671 - Sistemas Gráficos Docente responsable: ABBATE HORACIO ANTONIO 1 de 5 OBJETIVOS El desarrollo alcanzado por la industria de hardware informático es tal, que en la actualidad aún las
Librerías JavaScript Processing.js
Librerías JavaScript Processing.js Programación Multimedia. G.I.M. Francisco Grimaldo, Inmaculada Coma 1 Índice Librerías JavaScript Processing.js vs Three.js Processing & Processing.js Plantillas de uso
20480 Programación en HTML5 con JavaScript y CSS3
20480B 20480 Programación en HTML5 con JavaScript y CSS3 Fabricante: Microsoft Grupo: Desarrollo Subgrupo: Microsoft Visual Studio 2012 Formación: Presencial Horas: 25 Se requieren los siguientes requisitos
Tema 6: Aplicación de Texturas 2D
J. Ribelles SIE020: Síntesis de Imagen y Animación Institute of New Imaging Technologies, Universitat Jaume I Contenido Introducción 1 Introducción 2 3 4 Introducción Introducción El uso de texturas para
ELEMENTOS HARDWARE DEL ORDENADOR. Tarjeta gráfica
ELEMENTOS HARDWARE DEL ORDENADOR Tarjeta gráfica Qué es? Tarjeta Gráfica 1. Interpreta los datos que le llegan del procesador, ordenándolos y calculando el valor de cada píxel, lo almacena en la memoria
Computación Gráfica I CI4321
Computación Gráfica I CI4321 Teoría Prof. Víctor Theoktisto (vtheok @ usb.ve) consulta (Lunes 11:30-12:30) Laboratorio Prof. Alexander Baranya(abaranya @ ldc.usb.ve) Contenido del curso http://ldc.usb.ve/~vtheok/cursos/ci4321/sd11
Arreglos de vértices
Arreglos de vértices En lugar de que se especifiquen datos individuales del vértice en el modo inmediato (entre los pares glbegin() y glend()), es posible almacenar datos en un conjunto de arreglos incluyendo
Introducción a JSON JUAN CARLOS CONDE RAMÍREZ WEB-TECHNOLOGIES
Introducción a JSON JUAN CARLOS CONDE RAMÍREZ WEB-TECHNOLOGIES Objetivos Conocer el origen, la utilidad y las bases sintácticas que dieron lugar a JSON. Entender las diferencias de notación entre XML y
Tema 9: Texturas Avanzadas
J. Ribelles SIE020: Síntesis de Imagen y Animación Institute of New Imaging Technologies, Universitat Jaume I Contenido 1 2 3 4 5 6 La principal diferencia con lo visto hasta el momento en la asignatura
Introducción a la programación en OpenGL
Introducción a la programación en OpenGL Qué es OpenGL? Es una interfaz para la generación de gráficos (Graphics rendering API) Imágenes de alta calidad generadas a partir de primitivas geométricas. Independiente
El pipeline de visualización es el conjunto de
Sistemas de Visualización Pipeline de visualización 3D Definición del modelo geométrico Transformaciones geométricas Transformaciones de visualización Volumen de visualización Proyecciones Pipeline de
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES ACATLÁN HORAS SEMANA
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES ACATLÁN PLAN DE ESTUDIOS DE LA LICENCIATURA EN MATEMÁTICAS APLICADAS Y COMPUTACIÓN PROGRAMA DE ASIGNATURA SEMESTRE: 7 (SÉPTIMO) Graficación
Curso HTML 5 y CSS 3. HTML5 general. Parte 1-Introducción. Perfil. Objetivos. Temario
Curso HTML 5 y CSS 3 Duración: 25 horas teórico-prácticas Perfil Objetivos Temario Programadores, Diseñadores Web y maquetadores. Profesionales con experiencia almenos de 1 año con el lenguaje html en
Historia de graficación
Historia de graficación Elaborado por: Ing. Apolinar Baltazar Alejandro Ing. Ascencio Camacho Nancy Anahí Ing. Bermúdez Gil Iris Ing. García Rivera Alberto Ing. Garduño Ayala Juan Carlos Ing. Martínez
Guía docente de la asignatura
Guía docente de la asignatura Asignatura Materia PROGRAMACIÓN DE APLICACIONES GRÁFICAS COMPUTACIÓN Módulo TECNOLOGÍAS ESPECIFICAS Titulación GRADO EN INGENIERÍA INFORMÁTICA Plan 545 46949 Periodo de impartición
API: REST o RESTful WEB-SERVICES
API: REST o RESTful JUAN CARLOS CONDE RAMÍREZ WEB-SERVICES API: Qué? y Por qué? Si estás construyendo apps o sitios Web, es probable que ya hayas oído hablar de APIs REST o incluso ya hasta las hayas utilizado,
Guía docente de la asignatura
Guía docente de la asignatura Asignatura Materia Módulo Titulación PROGRAMACIÓN DE APLICACIONES GRÁFICAS En MAYÚSCULAS, ver memoria del grado (vacío) GRADO EN INGENIERÍA INFORMÁTICA (463) Plan 463 45221
4.1 Conceptos Básicos de Matlab. Matlab es creado por The MathWorks, el cual es un idioma de alto rendimiento
MATLAB CAPÍTULO 4 Realización Activa en 4.1 Conceptos Básicos de es creado por The MathWorks, el cual es un idioma de alto rendimiento para la informática técnica. Integra cómputo, visualización, y programación
Tema 3: Transformaciones Geométricas
J. Ribelles SIE020: Síntesis de Imagen y Animación Institute of New Imaging Technologies, Universitat Jaume I Contenido Introducción 1 Introducción 2 Traslación Escalado Rotación 3 4 5 6 Introducción Por
Prof. Alexandra La Cruz ld
Computación Gráfica I CI4321 Teoría Prof. Alexandra La Cruz (alacruz @ ld dc.usb.ve) alexandra.lacruz @ gmail.com consulta (Lunes 11:30-12:30) Laboratorio Prof. VictorTheoktisto (vtheok @ usb.ve) Preparador
Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java Dr. (c) Noé Alejandro Castro Sánchez Programas Java Applets Pueden correr en navegadores Web Agregan funcionalidad a páginas Web Se llega a restringir su funcionalidad (e. g., no pueden:
Three.js-ESP Documentation. Versión latest
Three.js-ESP Documentation Versión latest 08 de marzo de 2017 Índice general 1. Presentación 3 2. Preparando el terreno 5 3. Conceptos básicos 7 4. Creando una escena 9 5. Añadiendo objetos 13 6. Movimiento
Guía Introductoria. 1 Sistemas Expertos e Inteligencia Artificial / Guía I / Ciclo / Ing. Herson Serrano. Introducción. Objetivos Específicos
1 Sistemas Expertos e Inteligencia Artificial / Guía I / Ciclo 01 2018 / Ing. Herson Serrano Guía Introductoria Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Sistemas Expertos e Inteligencia
APLICACIONES MÓVILES NATIVAS. Sesión 6: Programación móvil en java y android
APLICACIONES MÓVILES NATIVAS Sesión 6: Programación móvil en java y android Contextualización Actualmente, los medios de programación son diferentes a lo que eran hace 10 años, estos es por la evolución
El pipeline gráfico Figura 3.1
El pipeline gráfico Para llevar a cabo una representación virtual de un ambiente tridimensional, se realiza un modelado del escenario. Dicho modelo incluye la representación geométrica de los objetos presentes,
E.T.S. ARQUITECTURA SEVILLA HISTORIA II CURSO 2017/18 GRUPO 2.06 DAMIAN FLORES LORITE SALOME MOYA RIVERO CARMEN FERNANDEZ MUÑOZ
E.T.S. ARQUITECTURA SEVILLA HISTORIA II CURSO 2017/18 GRUPO 2.06 DAMIAN FLORES LORITE SALOME MOYA RIVERO CARMEN FERNANDEZ MUÑOZ INDICE - QUE ES AUTOCAD? QUE ES RHINOCEROS? - VENTAJAS DE AUTOCAD -VENTAJAS
Modelación de objetos 3D Parte I: Mallas de polígonos y triangulaciones
Modelación de objetos 3D Parte I: Mallas de polígonos y triangulaciones Contenido Motivación Polígonos simples 3D Almacenamiento de mallas de polígonos OpenGl y mallas de polígonos Triangulaciones Triangulaciones
3 Eficiencia con polígonos
INGENIERÍA INFORMÁTICA 3 Eficiencia con polígonos Introducción Técnicas de aceleración Nivel de detalle Hardware gráfico Prof. Miguel Chover Introducción Representación poligonal Los triángulos mejoran
Clases y Objetos en C++
Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar
Planificaciones Sistemas Gráficos. Docente responsable: ABBATE HORACIO ANTONIO. 1 de 6
Planificaciones 8643 - Sistemas Gráficos Docente responsable: ABBATE HORACIO ANTONIO 1 de 6 OBJETIVOS El desarrollo alcanzado por la industria de hardware informático es tal, que en la actualidad aún las
GUIA 1: Repaso sobre uso de C#. Funciones, procedimientos y arreglos.
1 POO, Guía 1 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación Orientada a Objetos GUIA 1: Repaso sobre uso de C#. Funciones, procedimientos y arreglos. Competencia Desarrolla sistemas
OpenGL 1. Visualización 3D. Cristina Cañero
OpenGL 1. Visualización 3D Cristina Cañero Introducción OpenGL es una librería de funciones, y se puede llamar desde C. Es transparente al hardware de gráficos disponible. Tres librerías: OpenGL GLU GLUT
Lenguaje de Programación: C++ GLUT
UG Lenguaje de Programación: C++ GLUT Universidad de Guanajuato Noviembre 2010 GLUT Se trata de una librería diseñada para facilitar el manejo de ventanas y eventos en aplicaciones que pretenden mostrar
Programación Orientada a Objetos en C++
Unidad I Programación Orientada a Objetos en C++ Programación Orientada a Objetos en C++ Programación I - 0416202 Contenido Esta lección abarca los siguientes temas: Estructura y declaración de una clase
Vertex Arrays (VAs) Vertex Buffer Objects (VBOs), Vertex Array Objects (VAOs) C. Andujar, A. Vinacua Nov 2015
Vertex Arrays (VAs) Vertex Buffer Objects (VBOs), Vertex Array Objects (VAOs) C. Andujar, A. Vinacua Nov 2015 Formes de pintar geometria Mode immediat (glbegin,glend) Compatibility Usant Vertex Arrays
TEMA 2.3 ETAPA DE GEOMETRÍA E IMPLEMENTACIÓN HARDWARE
TEMA 2.3 ETAPA DE GEOMETRÍA E IMPLEMENTACIÓN HARDWARE Curso 2013 / 14 Procesadores Gráficos y Aplicaciones en Tiempo Real Profesores: David Miraut y Óscar D. Robles c GMRV 2005-2014 Febrero 2014 1 / David
Descripción. Objetivos de Aprendizaje. Estructura y Contenidos
Descripción El programa de aplicaciones híbridas tiene un enfoque de programación para dispositivos móviles que combina los puntos fuertes de la programación nativa y el desarrollo de aplicaciones web
Programación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
7 Efectos. avanzados. Múltiples pasos de dibujo Algoritmos de varias pasadas Texturas múltiples Ejemplos de texturas múltiples. Prof.
INGENIERÍA INFORMÁTICA 7 Efectos avanzados Múltiples pasos de dibujo Algoritmos de varias pasadas Texturas múltiples Ejemplos de texturas múltiples Prof. Miguel Chover Múltiples pasos de dibujo Dibujar
CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE
CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE 1 Estructura de Datos 1. Logica de Programación 2. Uso de Algoritmos usando Lenguaje Java 3. Ingreso de datos 4. Sentencias de Control 1.
MALLA CURRICULAR JÓVENES PROGRAMADORES
MALLA CURRICULAR JÓVENES PROGRAMADORES DESCRIPCIÓN DE LOS MÓDULOS NIVEL 0 MÓDULO INTRODUCTORIO (MIA) 8 años. Introduce al estudiante en el mundo de la programación mediante el lenguaje Scratch. Se requiere
Proyecciones en OpenGL
Proyecciones en OpenGL Una vez definida una escena en coordenadas del mundo, tenemos que tomar la foto. Para esto, tenemos que hacer dos cosas: colocar la cámara en el mundo (o sea, en la escena) y definir
Introducción a c++ Introducción a la programación EIS Informática III
Introducción a c++ Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras. Pueden usarse para crear programas
Tema: Clases y Objetos en C#. Parte II.
Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y
Introducción a la programación
Introducción a la programación PROGRAMACION I Grado en Matematicas Informática Programación I - 2015/2016 Introducción 1 Introducción a la programación Computador: aparato electrónico capaz de interpretar
SINTAXIS DEL PROGRAMA
SINTAXIS DEL PROGRAMA ÓRDENES O INSTRUCCIONES: Son los elementos estructurales del programa. Todas las instrucciones deben finalizar con ; Ejemplo: point (50,100); COMENTARIOS EN EL CÓDIGO: Son usados
Introducción a Android. [Tema 2]
Introducción a Android [Tema 2] 1. Android 1 / 24 2 / 24 Android Android es un sistema operativo diseñado principalmente para teléfonos inteligentes (Smatphones); fue creado inicialmente por Android Inc.
Programación Avanzada con PHP Duración: 40 horas Código: DAW-106
Programación Avanzada con PHP Duración: 40 horas Código: DAW-106 Descripción: El curso está diseñado para que desarrolladores Web y otros programadores avanzados puedan construir Portales dinámicos utilizando
Tipos Recursivos de Datos
1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),
Presentación del Curso Presencial. Programación en Java Nivel Básico
Presentación del Curso Presencial Programación en Java Nivel Básico Tabla de contenido Presentación del curso... 3 Objetivos de aprendizaje... 6 Contenidos del curso... 7 Competencias previas... 9 Recursos...
Tema: Funciones, Procedimientos y Recursividad en C#.
2 Programación I Programación I. Guía 6 3 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Utilizar la
CAPÍTULO IV: 4.1 Introducción a la. Programación Funcional
CAPÍTULO IV: Programación Funcional 4.1 Introducción a la Programación Funcional 1 Programación Funcional Paradigma diferente a los imperativos, que se aleja de la máquina de von Neumann Basado en funciones
Fundamentos de programación JAVA
Pág. N. 1 Fundamentos de programación JAVA Familia: Editorial: Autor: Computación e informática Macro Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-238-7 N. de páginas: 296 Edición: 2. a 2014 Medida:
PROG AVZ TARJETAS GRÁFICAS. Texturas procedurales
PROG AVZ TARJETAS GRÁFICAS Texturas procedurales TEXTURAS PROCEDURALES. CREACIÓN. Las texturas procedurales se generan mediante algoritmos matemáticos: programas a partir de los que se construye una imagen
Mallas poligonales y curvas cuádricas en OpenGL
Mallas poligonales y curvas cuádricas en OpenGL Introducción Las aplicaciones opengl están construidas sobre un loop principal que se verá más adelante en las clases de opengl. El loop principal es donde
abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples
Desarrollo de aplicaciones en Java Generación de código fuente Compilación Ejecución Elementos de aplicaciones simples EII147-01-02 Introducción a las tecnologías de información Escuela de Ingeniería Industrial
2.4. Unidades de Aprendizaje. Unidad de aprendizaje: Desarrollo de páginas web estáticas. Número 1. Propósito de la unidad
2.4. Unidades de Aprendizaje Unidad de aprendizaje: Desarrollo de páginas web estáticas. Número 1 Propósito de la unidad Desarrollará páginas web con contenido estático siguiendo la metodología de diseño
