Tema 5 Lenguajes de programación
|
|
- María Luisa Ruiz Nieto
- hace 8 años
- Vistas:
Transcripción
1 Tema 5 Lenguajes de programación David Vallejo Fernández Curso 2007/2008 Escuela Superior de Informática 1 Índice de contenidos Programming Language. 4.DirectX High-Level Shader Language. 5.Resumen. 2 3 Shader. Conjunto de instrucciones destinadas a aplicar efectos de renderizado. Shader. Flexibilidad! Eficiencia! Utilizados para programar la GPU. Fixed pipeline --> programmable pipeline. Mayor flexibilidad. Mayor eficiencia. Parte del proceso de render responsable de calcular el color de un objeto. 4 5
2 Vertex shaders. Ejecutados por la GPU para cada vértice. Transformar la posición 3D en 2D. Manipulan posiciones, colores, coordenadas de texturas. Salida hacia un geometry shader o a la etapa de rasterización. Vertex shaders. // Transformación de la posición de un punto simulando // la aceleración de la gravedad. uniform float t; // Tiempo obtenido desde la aplicación. attribute vec4 vel; // Velocidad de la partícula. Const vec4 g = vec4(0.0, -9.80, 0.0); void main () vec4 posicion = gl_vertex; posicion += t * vel + t *t * g; 6 gl_position = gl_modelviewprojectionmatrix * posicion; 7 Geometry shaders. Pueden añadir y eliminar vértices de una malla. Usados para generar geometrías o añadir volumen. Salida hacia la etapa de rasterización. 8 Geometry shaders.!!nvgp4.0 # División de un triángulo en 4 triángulos iguales. PRIMITIVE_IN TRIANGLES; PRIMITIVE_OUT TRIANGLE_STRIP; VERTICES_OUT 8; ATTRIB v0 = vertex[0].position; ATTRIB v1 = vertex[1].position; ATTRIB v2 = vertex[2].position; TEMP m0, m1, m2; # Cálculo de puntos. ADD m0, v0, v1; MUL m0, m0, 0.5; ADD m1, v1, v2; MUL m1, m1, 0.5; ADD m2, v2, v0; MUL m2, m2, 0.5; # output 3 triangles as triangle strip MOV result.position, v0; EMIT; MOV result.position, m2; EMIT; MOV result.position, m0; EMIT; MOV result.position, m1; EMIT; MOV result.position, v1; EMIT; ENDPRIM; # output 4th triangle MOV result.position, v2; EMIT; MOV result.position, m1; EMIT; MOV result.position, m2; EMIT; ENDPRIM; END 9 Pixel shaders. a.k.a. fragment shaders. Calculan el color de píxeles individuales. Utilizados para iluminación y efectos como el bump mapping. DirectX usa el término pixel shader y OpenGL el de fragment shader. Pixel shaders. // Mapeado de texturas simple. varying vec2 texture_coordinate; void main() // Transformación del vértice. gl_position = gl_modelviewprojectionmatrix * gl_vertex; // Paso de la coordenada de la textura al fragment shader. texture_coordinate = vec2(gl_multitexcoord0); varying vec2 texture_coordinate; uniform sampler2d my_color_texture; 10 void main() // Muestreo de la textura y envío al frame buffer. gl_fragcolor = texture2d(my_color_texture, texture_coordinate); 11 Shading language. Unified shader model. Unificación de los tres tipos de shader. En OpenGL y en DirectX 10. Flexibilidad al asignar más shaders a la tarea con más carga de trabajo. Ejemplos de tarjetas gráficas. Serie 8 de NVIDIA GeForce. Serie 2000 de ATI Radeon HD. Serie X3000 de Intel GMA. Lenguaje de programación para shaders. Tipos de datos especiales (color, normal...). Clasificación. Renderizado en producción. RenderMan Shading Language. Renderizado en tiempo real. OpenGL shading language. Cg programming language. DirectX High-Level Shader Language
3 2 OpenGL Shading Language Cómo opera OpenGL? 2 máquinas: vertex y fragment Con OpenGL Programmable shading pipeline. Procesamiento de vértices. Transformación de vértices. Procesamiento de vértices y fragments con GLSL. Qué estudiaremos? Cómo afectan los shaders al procesamiento de vértices y fragments. Qué se requiere para la integración de shaders en un programa OpenGL. Cómo escribir shaders. Transformación y normalización de normales. Generación de coordenadas de textura. Transformación de coordenadas de textura. Iluminación. Etc Procesamiento de fragments. Operaciones en valores interpolados. Parecido a programar en C. Acceso a texturas. Compilación. Aplicación de texturas. Debugging. Niebla. Suma de colores. Etc. Generación de código objeto. Enlazado. Diferencias... El compilador y el enlazador son parte del driver OpenGL Para cada objeto shader... Crear un objeto (vertex o fragment). Compilar el código del shader en dicho objeto. Por qué crear múltiples objetos shader en un programa? Funciones importantes. Verificar que la compilación fue correcta. Para enlazar varios objetos en un programa... Crear un programa shader. Asociar los objetos al programa. Enlazar el programa. Verificar que el enlazado fue correcto. Gluint glcreateshader (GLenum type); void glshadersource (Gluint shader, Glsizei count, const Glchar **string, const Glint *length); void glcompileshader (Gluint shader); Gluint glcreateprogram (); void glattachshader (Gluint program, Gluint shader); void gllinkprogram (Gluint program); void gluseprogram (Gluint program); Utilizar el shader
4 Creación de shaders con GLSL. 1) Crear los shaders y el programa. ~ programa en C. glhandlearb v, f, p; v = glcreateshaderobjectarb (GL_VERTEX_SHADER_ARB); f = glcreateshaderobjectarb (GL_FRAGMENT_SHADER_ARB); p = glcreateprogramarb(); 2) Leer el código de los shaders. char *vs = read (vertex_shader_path); char *fs = read (fragment_shader_path); glshadersourcearb (v, 1, &vs, NULL); glshadersourcearb (f, 1, &fs, NULL); void main () // Código del shader. /* Más código...*/ // No se devuelve un int. // Instrucciones terminan con ; Fuertemente tipado (float f = 10). 3) Compilar, asociar y enlazar los shaders. Tipos agregados. glcompileshaderarb (v); glcompileshaderarb (f); glattachobjectarb (p, v); glattachobjectarb (p, f); gllinkprogramarb (p); 22 vec2, ivec3, bvec4, mat2... Ej.: vec3 velocity = vec3 (0.0, 2.0, 3.0); Estructuras, arrays Creación de shaders con GLSL. Modificadores de tipos. const, attribute, uniform, varying. Sentencias. Operaciones aritméticas (++, --, (), [],...).... Operadores de sobrecarga (vec_a * vec_b). Funciones. Paso de parámetros. 3 Programming Language Basado en el lenguaje C. Distintos perfiles. Vertex y frament programs. Modelo de programación. Perfiles avanzados. OpenGL ARB, NV40, NV30, DirectX 9. Perfiles básicos. OpenGL NV2X, DirectX 8. Declaraciones. Similares a C (y a GLSL). E/S. Varying inputs. Uniform inputs Tipos y operaciones de datos. Cg Runtime. Básicos. #include <Cg/cg.h> Estructuras. #include <Cg/cgGL.h> Arrays. #include <Cg/cgD3D9.h> Conversiones de tipo. Interfaces (como en C# y C++). interface Light float3 illuminate (float3 P, out float3 L); float3 color (void); Sentencias y operaciones (~ C). // Crear un contexto. CGcontext ctx = cgcreatecontext (); // Compilar un programa. Cgprogram p = cgcreateprogram (ctx, CG_SOURCE, vertexprogramstring, CG_PROFILE_ARBVP1, main, args); // Cargar un programa en OpenGL. cgglloadprogram(program); // Modificar un parámetro en OpenGL. CgGLSetParameter4fv (param, value); 28 // Ejecutar un programa en OpenGL. CgGLBindProgram (p); 29
5 Puesta en marcha. Requisitos. Nvidia-cg-toolkit (no es free software). Debian y derivados. Paquetes nvidia-cg-toolkit y xorg-dev. apt-get install nvidia-cg-toolkit xorg-dev Documentación en /usr/share/doc. // This is C2E1v_green from "The Cg Tutorial" (Addison-Wesley, ISBN // ) by Randima Fernando and Mark J. Kilgard. See page 38. struct C2E1v_Output float4 position : POSITION; float3 color : COLOR; ; C2E1v_Output C2E1v_green(float2 position : POSITION) C2E1v_Output OUT; OUT.position = float4(position,0,1); OUT.color = float3(0,1,0); return OUT; int main(int argc, char **argv) glutinit (/*parameters*/); glut*func(callbackfunc); static void display(void) glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); mycgcontext = cgcreatecontext(); cgsetparametersettingmode(mycgcontext, CG_DEFERRED_PARAMETER_SETTING); mycgvertexprofile = cgglgetlatestprofile(cg_gl_vertex); cgglsetoptimaloptions(mycgvertexprofile); mycgvertexprogram = cgcreateprogramfromfile( mycgcontext, /* Cg runtime context */ CG_SOURCE, /* Program in human-readable form */ myvertexprogramfilename, /* Name of file containing program */ mycgvertexprofile, /* Profile: OpenGL ARB vertex program */ myvertexprogramname, /* Entry function name */ NULL); /* No extra compiler options */ checkforcgerror("creating vertex program from file"); cgglloadprogram(mycgvertexprogram); glutmainloop(); return 0; 32 cgglbindprogram(mycgvertexprogram); checkforcgerror("binding vertex program"); cgglenableprofile(mycgvertexprofile); checkforcgerror("enabling vertex profile"); /* Rendering code verbatim from Chapter 1, Section "Rendering a Triangle with OpenGL" (page 57). */ glbegin(gl_triangles); glvertex2f(-0.8, 0.8); glvertex2f(0.8, 0.8); glvertex2f(0.0, -0.8); glend(); cggldisableprofile(mycgvertexprofile); checkforcgerror("disabling vertex profile"); glutswapbuffers(); 33 static void keyboard(unsigned char c, int x, int y) switch (c) case 27: /* Esc key */ /* Demonstrate proper deallocation of Cg runtime data structures. Not strictly necessary if we are simply going to exit. */ cgdestroyprogram(mycgvertexprogram); cgdestroycontext(mycgcontext); exit(0); break; Más ejemplos en nvidia-cg-toolkit/examples. 4 DirectX High Level Shader Language DirectX HLSL DirectX HLSL Lenguage de shaders propietario. Vertex shader. Desarrollado por Microsoft. Uso con Direct3D. Vertex, geometry y pixel shaders. float4x4 view_proj_matrix; float4x4 texture_matrix0; struct VS_OUTPUT float4 Pos : POSITION; float3 Pshade : TEXCOORD0; ; VS_OUTPUT main (float4 vposition : POSITION) VS_OUTPUT Out = (VS_OUTPUT) 0; // Transform position to clip space Out.Pos = mul (view_proj_matrix, vposition); // Transform Pshade Out.Pshade = mul (texture_matrix0, vposition); return Out; Clip space 3D texture 36 37
6 DirectX HLSL Pixel shader. float4 lightwood; // xyz == Light Wood Color float4 darkwood; // xyz == Dark Wood Color float ringfreq; // ring frequency Calculado por el vertex shader para cada vértice sampler PulseTrainSampler; float4 hlsl_rings (float4 Pshade : TEXCOORD0) : COLOR float scaleddistfromzaxis = sqrt(dot(pshade.xy, Pshade.xy)) * ringfreq; 5 Resumen float blendfactor = tex1d (PulseTrainSampler, scaleddistfromzaxis); return lerp (darkwood, lightwood, blendfactor); Acceso a la textura Resumen Resumen Conceptos básicos (shader, shading language, clasificación...). Ventajas y desventajas de los lenguajes de alto nivel para programación de aplicaciones gráficas. Conocer la interfaz básica de GLSL y los pasos para la creación de shaders. 40 Referencias.. OpenGL Programming Guide (Fifth Edition). Chapter 15.. Chapter 2. HLSL. ati.amd.com/developer/shaderx2_introductiontohlsl.pdf 41
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
Más detallesEl lenguaje de Programación C. Fernando J. Pereda <ferdy@gentoo.org>
El lenguaje de Programación C Fernando J. Pereda Por qué aprender C? Portable y muy extendido Estándar (C89, C99) El lenguaje de los sistemas Un lenguaje fácil (no, no es broma) Por
Más detallesComputación de Propósito General en Unidades de Procesamiento Gráfico GPGPU
Computación de Propósito General en Unidades de Procesamiento Gráfico () R. Bayá, E. Dufrechou, P. Ezzattiy M. Pedemonte Clase 1 Introducción Contenido Un poco de historia El pipeline gráfico Tarjetas
Más detallesSOR -::- Prácticas -::- Curso 05/06. RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX.
RPC RCP es un estándar desarrollado por Sun Microsystems y usado por muchos distribuidores de sistemas UNIX. El RPC es una interfaz de programación de aplicación (API) disponible para el desarrollo de
Más detallesLENGUAJE. Tema 1 - Introducción
LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del
Más detallesIntroducción Render básico Rendereando a disco duro
Introducción Render básico Rendereando a disco duro Autodesk Maya es una marca registrada de Autodesk. 3Delight es una marca registrada de DNA Research. Todos los niños, todas las vacunas. Alimentate sanamente.
Más detallesTexturas (2) Otros usos del mapeo de textura. Mapeo de Textura. Mapeo de Textura. Mapeo de Textura. Un ejemplo de Mapeo de textura
+ = Texturas (2) Otros usos del mapeo de textura Los mapas de textura se usan para adicionar complejidad a una escena. Es más sencillo pintar o capturar una imagen que la geometría Modelar reflectancia
Más detallesNodo RendermanCode Occlusion Environment Reflection Extra
Nodo RendermanCode Occlusion Environment Reflection Extra Autodesk Maya es una marca registrada de Autodesk. 3Delight es una marca registrada de DNA Research. Nodo RendermanCode Para 'shaderear' un objeto
Más detallesIntroduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por
Más detalles1. Manejo de memoria estática 2. Manejo de memoria dinámica
1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo
Más detallesProcesadores de lenguaje Tema 5 Comprobación de tipos
Procesadores de lenguaje Tema 5 Comprobación de tipos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen Sistemas de tipos. Expresiones de tipo. Equivalencia de tipos. Sobrecarga,
Más detallesLenguaje de Programación: Go
Centro de Investigación y de Estudios Avanzados del I.P.N 9 de Noviembre de 2011 Go Es un lenguaje de programación de propósito general que es promovido por: Rob Pike, Robert Griesemer, Ken Thompson, Russ
Más detallesFundamentos Matemáticos y Físicos para Informática Gráfica
Fundamentos Matemáticos y Físicos para Informática Gráfica FMFIG: Objetivos Objetivos: Introducción de algunos conceptos básicos empleados en varias asignaturas del master. Herramientas básicas de análisis
Más detallesVideojuegos. Guillermo Escudero Diego Hiegeo Nestor Tena Igor Moreda
Videojuegos Guillermo Escudero Diego Hiegeo Nestor Tena Igor Moreda Qué es un videojuego? Un videojuego es una interacción n entre el ser humano y un soporte electrónico como un ordenador o una consola.
Más detallesPunteros. Definición Un puntero es un dato que contiene una dirección de memoria.
Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea
Más detallesPipeline programable. grup ViRVIG. Professors d IDI (grup ViRVIG) Pipeline programable IDI, 1617Q1 1 / 20
Pipeline programable Professors d IDI grup ViRVIG Classes d IDI, 1617Q1 Professors d IDI (grup ViRVIG) Pipeline programable IDI, 1617Q1 1 / 20 El pipeline programable Funcionalitats substituïdes extreta
Más detallesConceptos fundamentales de la POO. Fundamentos de la Programación Orientada a Objetos Objetos y Clases
Fundamentos de la Programación Orientada a Objetos Objetos y Clases Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense
Más detallesIntroducción al lenguaje de programación java
Introducción al lenguaje de programación java Algoritmia y Programación Slide 1 LENGUAJES DE PROGRAMACION Un lenguaje de programación es un idioma artificial diseñado y creado para expresar algoritmos
Más detallesEl 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,
Más detallesArquitecturas Orientadas a la Realidad Virtual
Arquitecturas Orientadas a la Realidad Virtual Realidad Virtual y Animación Miguel Ángel Otaduy Marcos García Lorenzo Curso 2011/2012 Una arquitectura simple CPU GPU 2 Una arquitectura simple? CPU multi-core
Más detallesGPUs. Comparación entre Nvidia y ATI. Raúl Rodríguez del Rosario
GPUs Comparación entre Nvidia y ATI Raúl Rodríguez del Rosario Índice Introducción... 3 Qué es una GPU?... 4 Nvidia... 5 ATI... 7 Benchmarks..... 9 Programación de la GPU... 11 OpenGL. 12 Direct3D 13 Mesa3D...
Más detallesIntroducción a Java LSUB. 15 de enero de 2015 GSYC
Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada
Más detallesIntroducción Silvia Castro CG 2014
Sombras Introducción Introducción Introducción Las sombras ayudan a: Aumentar el realismo de una escena Mostrar las relaciones espaciales entre los objetos Además, Introducción Proveen información acerca
Más detallesTema 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
Más detallesRESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Más detallesProf. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 10 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante INDICE 1.1 EJERCICIO 1: MI PRIMER FICHERO EN BINARIO... 1 1.2 EJERCICIO 2: LEYENDO MI PRIMER FICHERO
Más detallesAceleradores gráficos. Su impacto en el bus del sistema.
Aceleradores gráficos. Su impacto en el bus del sistema. Conceptos básicos Controladora de video tradicional en modo gráfico Buffer de video en placas ISA se ubica en el rango de posiciones de memoria
Más detallesAUTORES CIENTÍFICO-TÉCNICOS Y ACADÉMICOS El mundo de las tarjetas gráficas Laura Raya González La capacidad computacional de todo un centro de computación, al alcance de tus manos Las tarjetas gráficas
Más detallesglclearcolor (1.0, 0.0, 0.0, 0.0); glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT);
10. EL MAPEADO DE TEXTURAS Hasta ahora las primitivas se han dibujado en OpenGL con un solo color o interpolando varios colores entre los vértices de una primitiva. OpenGL dispone de funciones específicas
Más detallesJavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1
Departamento de Lenguajes y Sistemas Informáticos JavaScript Programación en Internet Curso 2005-2006 Contenidos Introducción El lenguaje Validación de formularios DLSI - Universidad de Alicante 1 Introducción
Más detalles1.1 Definición del problema
Capítulo 1. Introducción 1.1 Definición del problema Cuando el famoso juego Doom apareció, no solamente nos asombró el grandioso juego, sino que también trajo y popularizo un nuevo modelo de programación
Más detallesModulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
Más detallesIntroducción a la Programación de Videojuegos y Gráficos
Introducción a la Programación de Videojuegos y Gráficos GRADO EN INGENIERÍA INFORMÁTICA Curso 2012/2013 T3: VIDEOJUEGOS 2D Y 3D 3.1. Estructura de un videojuego. 3.2. Motores gráficos(perspectivas, estructuras
Más detallesContenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones
Contenidos 1. Justificación del uso de funciones. 2. Declaración de funciones: prototipos. 3. Prototipos y ficheros de cabecera. 4. Polimorfismo (sobrecarga de funciones). 5. Argumentos formales y actuales.
Más detallesIdentificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java
Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente
Más detallesRepaso de las características más importantes de la programación Java y su adaptación a Android
Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y
Más detallesTaller de Programación Estructurada en Java Tema 2. Fundamentos de la programación orientada a objetos
Taller de Programación Estructurada en Java Tema 2. Fundamentos de la programación orientada a objetos Ingeniero en Computación José Alfredo Cobián Campos josealfredocobian@gmail.com Facultad de Ciencias
Más detallesObjetos y Clases en Java. ELO 329: Diseño y Programación Orientados a Objetos
Objetos y Clases en Java ELO 329: Diseño y Programación Orientados a Objetos 1 Elementos de Análisis y Diseño orientado a objetos Notación y relaciones entre clases: Las clases son abstracciones para los
Más detallesProgramación Gráfica. Conceptos Básicos
2013 1 Procesamiento de Imágenes. Es el campo que trata con métodos, técnicas, y algoritmos para manipulación, realce e interpretación de imágenes. Graficación por Computadora. Es la disciplina concerniente
Más detallesBase de datos Procedimientos Almacenados y Funciones
Base de datos Procedimientos Almacenados y Eduardo Saavedra A. Universidad Nacional Andrés Bello 4 de noviembre de 2008 Contenidos Ventajas 1 Ventajas 2 3 4 5 Conceptos Ejemplo 6 Procedimiento Almacenado
Más detallesINDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)
APRENDERAPROGRAMAR.COM INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:
Más detalles6. TIPOS DE FUENTES DE LUZ
6. TIPOS DE FUENTES DE LUZ Se puede decidir tener una fuente de luz que sea tratada como si estuviera localizada en infinitamente lejos de la escena o una que sea cercana a la escena. 6.1.1.1. Direccional
Más detallesSQL Server 2012 - SQL, Transact SQL Diseño y creación de una base de datos
El modelo relacional 1. Introducción 9 2. Recordatorio sobre el almacenamiento de datos 9 2.1 Las diferentes categorías de datos 10 2.1.1 Los datos básicos 10 2.1.2 Los datos cambiantes 10 2.1.3 Los datos
Más detalles2 Representación poligonal
INGENIERÍA INFORMÁTICA 2 Representación poligonal Introducción Modelo poligonal Teselación Simplificación Prof. Miguel Chover Introducción Modelado geométrico Creación del modelo 3D en el ordenador Técnica
Más detallesBases de Datos: Structured Query Language (SQL)
Structured Query Language (SQL): Introducción Bases de Datos: Structured Query Language (SQL) Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile
Más detallesADT GStreamer API Manipulación de dispositivos de captura de vídeo mediante GStreamer en C++
ADT GStreamer API Manipulación de dispositivos de captura de vídeo mediante GStreamer en C++ Mario Chririnos Colunga Áurea - Desarrollo Tecnológico 30 de noviembre de 2010 Índice 1. Introducción 1 2. ADT
Más detallesSQL Server 2014 - SQL, Transact SQL Diseño y creación de una base de datos (con ejercicios prácticos corregidos)
El modelo relacional 1. Introducción 9 2. Recordatorio sobre el almacenamiento de datos 9 2.1 Las diferentes categorías de datos 10 2.1.1 Los datos básicos 10 2.1.2 Los datos cambiantes 10 2.1.3 Los datos
Más detallesElementos léxicos del lenguaje de programación Java
Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores
Más detallesIntroducción al laboratorio de Programación I
Introducción al laboratorio de Programación I Manuel Montenegro montenegro@fdi.ucm.es es Despacho B12 Compilación Es el proceso de transformación de un programa escrito en un lenguaje de alto nivel (en
Más detalles"Módulo OOWS para StarUML" INTRODUCCIÓN
UNA HERRAMIENTA PARA DIAGRAMAS OOWS: "Módulo OOWS para StarUML" Richard Medina Z. Universidad de Concepción, Chile INTRODUCCIÓN Una herramienta CASE (Computer Aided Software Engineering,
Más detallesArquitecturas GPU v. 2013
v. 2013 Stream Processing Similar al concepto de SIMD. Data stream procesado por kernel functions (pipelined) (no control) (local memory, no cache OJO). Data-centric model: adecuado para DSP o GPU (image,
Más detallesPROG 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
Más detallesUnidad III El lenguaje de programación C 1. 2. 3. 4. 5. 6. 7. 8.
Unidad III 1. Introducción. 2. Breve historia del C. 3. Lenguajes de programación de alto nivel, bajo nivel y nivel medio. 4. Compiladores e intérpretes. 5. Compilación, enlace y generación de un programa
Más detallesIntroducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
Más detallesPráctica de gsoap. int ns enviar (unsigned nodo, std::string cadena, std::string &resultado); int ns recibir(unsigned nodo, std::string &resultado);
Práctica de gsoap Para desarrollar programas que utilicen gsoap para llevar a cabo las comunicaciones, debemos bajar el paquete gsoap linux 2.7.tgz disponible en: http://atc.ugr.es/pedro/docencia/irhc/irhc.html
Más detallesAprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS
Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS Por Andrés Raúl Bruno Saravia Entrega Nº 5. Cómo declaramos una variable en Lenguaje C? En C siempre se deben declarar las variables.
Más detallesLenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /
S Q Lenguaje de Consulta Estructurado L Wael Najjar / Wael Stephenson Najjar / Prieto Stephenson Prieto Contenido Parte I El Lenguaje de Consulta Estructurado. Lo que se puede hacer. Lenguaje Estandarizado.
Más detallesREALIZACIÓN DE UN MOTOR DE RENDER PARA DISPOSITIVOS MÓVILES BASADO EN IRRLICHT. Autor: Javier Meseguer de Paz Dirigido por: Antonio Berlanga de Jesús
REALIZACIÓN DE UN MOTOR DE RENDER PARA DISPOSITIVOS MÓVILES BASADO EN IRRLICHT Autor: Javier Meseguer de Paz Dirigido por: Antonio Berlanga de Jesús Plan de la presentación Introducción Estado del arte
Más detalles1. INTRODUCCIÓN A OPENGL: DIBUJANDO UNA TORTUGA CON OPENGL
1. INTRODUCCIÓN A OPENGL: DIBUJANDO UNA TORTUGA CON OPENGL 1.1 QUÉ ES OPENGL? Qué es OpenGL? OpenGL es una interfaz software de harware gráfico, es decir define las funciones que se pueden utilizar en
Más detallesVolume Rendering. Francisco Morillo y Ciro Durán. 30 de noviembre de 2005
30 de noviembre de 2005 1 2 3 Definición Proceso de Composición Interpolacion Trilinear Resultados 4 Definición Métodos para hacer TBVR Problemas en TBVR 5 Los shaders Ventajas y limitaciones de los shaders
Más detallesUniversidad Central de Bayamón COLEGIO DE DESARROLLO EMPRESARIAL Y TECNOLOGIA. Número Estudiante:
Universidad Central de Bayamón COLEGIO DE DESARROLLO EMPRESARIAL Y TECNOLOGIA Número Estudiante: Fecha: Nombre: Examen #1- COMP 250 Prof. Carlos Rodríguez Sánchez Selección Múltiple. Marque la MEJOR contestación
Más detallesInformática I. Código 2547100 Semestre 2014-2. Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza
Informática I Código 2547100 Semestre 2014-2 Para Ingeniería Electrónica e Ingeniería de Telecomunicaciones Profesor: Sebastián Isaza Programming tools Editor de texto (gedit, kate, vim, wordpad, etc):
Más detallesContenido. Capítulo 1. Introducción a lenguaje C 1
Contenido Capítulo 1. Introducción a lenguaje C 1 Introducción... 2 Qué es un lenguaje de programación?... 2 Tipos de lenguajes de programación... 2 Introducción a lenguaje C... 2 Historia de lenguaje
Más detallesEstructura de Datos [Tipos de datos concretos y tipos de datos abstractos]
Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 14-O Sergio Luis Pérez (UAM CUAJIMALPA) Curso de Estructura
Más detallesResumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl
El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl Resumen demandas de almacenamiento y procesamiento de datos. Es el conjunto de estas dos capacidades
Más detalles//Esta función es llamada cuando se produce un evento //de teclado void keycallback (void *userdata, SoEventCallback *eventoteclado) {
Solución 4: /******************************************************** * * Este programa permite visualizar ficheros iv (vrml) * ********************************************************/ //Según el sistema
Más detallesTema 1. Introducción a JAVA
Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems
Más detallesEntorno de Programación Visual Studio 6
Entorno de Programación Visual Studio 6 Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Programación en C 1 Proceso de Programación Edición
Más detallesTEMA 2. Agenda. Fundamentos de JAVA
TEMA 2 Fundamentos de JAVA V1.3 Manuel Pereira González Agenda Introducción Historia de Java Características Principales Hello World Tipos Operadores Control de Flujo E/S básica Atributos y Métodos Resumen
Más detallesSQL (Structured Query Language)
SQL (Structured Query Language) El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite
Más detalles15. ANEXO # 5 GAMEPLAYOBJECT
15. ANEXO # 5 GAMEPLAYOBJECT A continuación se muestra el constructor de la clase GameplayObject public GameplayObject(Camera camera, int rows, int columns, GraphicsDevice dispositivo, bool invertir =
Más detalles2. Marco teórico 2.1.XNA
2. Marcoteórico Enesteprimercapítulosepresentalainformacióndelasherramientasqueutilicéparael desarrollodelosproyectosquemencionéenelcapítuloanterior,enlosqueparticipéenmilabor en el Departamento de Investigación
Más detallesTemario Iniciación a Java J2SE para web
Temario Iniciación a Java J2SE para web 1 Introducción al entorno de Java 1 Qué es un programa? T 2 Los lenguajes de programación T 3 Qué es Java? T 4 Origen de Java T 5 Verdadero o falso vf 6 Características
Más detallesTema 2. Técnicas básicas de POO. Técnicas de Programación - Curso 2007/08
Tema 2 Técnicas básicas de POO Técnicas de Programación - Curso 2007/08 Contenido Principios de POO Encapsulación Herencia Polimorfismo Ejemplos Técnicas básicas Delegación Uso de interfaces Interfaces
Más detallesYeray Miranda Betancor Periféricos e interfaces
Yeray Miranda Betancor Periféricos e interfaces Conectores. Interfaz con la placa base. Componentes de un adaptador gráfico. Terminología de las tarjetas gráficas. Como funciona una tarjeta gráfica. Direct3D
Más detallesFACULTAD DE INGENIERÍA
NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Operadores y Expresiones PRÁCTICA NÚM. [ 3 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje
Más detallesTema 2. El lenguaje de programación Java (Parte 1)
Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de
Más detallesUniversidad de Belgrano
Universidad de Belgrano Las tesinas de Belgrano Facultad de Tecnología Informática Ingeniería en Informática Pipeline 3D para rendering en tiempo real con capacidad de detección de movimiento N 468 Lucas
Más detallesPara leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.
CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA
Más detallesClases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase
Java: Clases y Objetos Clases La unidad fundamental de programación en Java es la clase Un programa Java está formado por un conjunto de clases Una clase es una plantilla que describe un conjunto de objetos
Más detallesTema: Arreglos de Objetos en C++.
Programación II. Guía 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Arreglos de Objetos en C++. Objetivos Específicos Describir la implementación de arreglos de Objetos.
Más detallesFundamentos Matemáticos y Físicos para Informática Gráfica. Mallas de Triángulos (2015)
Fundamentos Matemáticos y Físicos para Informática Gráfica Mallas de Triángulos (2015) Presentación de la asignatura Objetivos globales de la asignatura: Introducción/recordatorio de algunos conceptos
Más detallesPATH RENDERING. Mayo, 2012. Esmitt Ramírez
PATH RENDERING Mayo, 2012 Esmitt Ramírez AGENDA Introducción Path Rendering Características del Path Rendering Estructura del NV_PATH_RENDERING Stencil then Cover (StC) Ventajas de la GPU Ideas Finales
Más detallesJava en 2 horas. Rodrigo Santamaría
+ Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión
Más detallesGL-PCS2201-L05M FUNCIONES Y LA ESTRUCTURA DEL PROGRAMA EN LENGUAJE C
GL-PCS2201-L05M FUNCIONES Y LA ESTRUCTURA DEL PROGRAMA EN LENGUAJE C CARRERA: 441402 INGENIERÍA DE EJECUCIÓN EN ELECTRICIDAD Y ELECTRÓNICA 444803 TÉCNICO EN ELECTRICIDAD Y ELECTRÓNICA ASIGNATURA: PCS2201
Más detallesContenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE
Contenidos 1. Introducción 2. El operador NEW 3. El operador DELETE 1 Introducción Hasta ahora hemos visto que cada vez que queremos usar una variable debemos reservarle un lugar de la memoria al comenzar
Más detallesmyappgen Usted Construye la aplicación mientras la ejecuta http://www.myappgen.com info@myappgen.com
myappgen Usted Construye la aplicación mientras la ejecuta http://www.myappgen.com info@myappgen.com Tutorial 8 - Process En este tutorial le mostraremos como utilizar el modelo de programa del tipo Process,
Más detallesPROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas
Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.
Más detallesObjective C (Desarrollo con Apple)
1 Objective C (Desarrollo con Apple) para programación en Iphone SDK: Similitudes y Diferencias entre Objective C con C/C++ y Java Dr. Moisés Alencastre Miranda, malencastre@itesm.mx 2 Introducción al
Más detallesTema: Sobrecarga de Operadores.
Programación II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen
Más detallesSe guardan en archivos con extencion c y los cabezales con extension h
Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767
Más detallesCÓMO APLICAR LA TECNOLOGÍA GPU A LOS SISTEMAS DE INFORMACIÓN GEOGRÁFICA PARA MEJORAR LOS ALGORITMOS DE RENDERIZACIÓN DE MAPAS
CÓMO APLICAR LA TECNOLOGÍA GPU A LOS SISTEMAS DE INFORMACIÓN GEOGRÁFICA PARA MEJORAR LOS ALGORITMOS DE RENDERIZACIÓN DE MAPAS Sergio Jorrín Abellán Director SIG / GIS Director Geograma S.L. Castillo de
Más detallesJAVA 8 Los fundamentos del lenguaje Java (con ejercicios prácticos corregidos)
Presentación 1. Historia 11 1.1 Por qué Java? 11 1.2 Objetivos del diseño de Java 12 1.3 Auge de Java 13 2. Características de Java 14 2.1 El lenguaje de programación Java 14 2.1.1 Sencillo 15 2.1.2 Orientado
Más detallesEscuela Politécnica Superior de Elche
Práctica 0 (Repaso) Estándar de programación y Diagramas de flujo.:::1 Sesión:::. a. Estándar de normalización En este apartado se sugieren una serie de normas que ayudarán a que el código sea más fácil
Más detallesPreliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
Más detallesPART II: Moviendo al jugador
UNITY PART II: Moviendo al jugador El movimiento se lo vamos a dar a través de un programa Definición de programa: Un programa es una secuencia de instrucciones, escritas para realizar una tarea específica
Más detallesProyecto Fin de Carrera
Proyecto Fin de Carrera Generación de paisajes procedurales con Direct3D y GPU Autor D. Juan Gallego Molina Director Dr. D. Francisco José Serón Arbeloa Escuela de Ingeniería y Arquitectura 2013/2014 Gracias
Más detallesEl color es una longitud de onda de luz, visible para el ojo humano
Color Teoría del color El color es una longitud de onda de luz, visible para el ojo humano 390nm 720 nm El color que vemos en los objetos es resultado de la luz reflejada por su superficie El negro es
Más detallesEntrada y salida de datos en C y C++
Universidad Nacional de Rosario Facultad de Ciencias Exactas, Ingeniería y Agrimensura Escuela de Ingeniería Electrónica Cátedra de Informática II Entrada y salida de datos en C y C++ Informática II Entrada/Salida
Más detallesSean los vectores a = (4, -2, 3) y b = (3, 2, 1), y sean las operaciones siguientes: ( 3, 2,1) ( 33, 22,11)
Betanzo Vásquez Erick Manuel. Tarea # 1. Computación Gráfica. Ejemplos matemáticos: Sean los vectores a = (4, -2, 3) y b = (3, 2, 1), y sean las operaciones siguientes: Producto punto ( 4, 2,3) i( 3, 2,1)
Más detalles