Visualización de escenas 3D fotorrealistas mediante hardware gráfico programable (GPU)

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Visualización de escenas 3D fotorrealistas mediante hardware gráfico programable (GPU)"

Transcripción

1 Visualización de escenas 3D fotorrealistas mediante hardware gráfico programable (GPU) Federico Jorge Marino Tesis de Grado en Ingeniería Informática Director: Ing. Horacio Abbate Facultad de Ingeniería, Universidad de Buenos Aires

2 Resumen El trabajo comienza exponiendo los fundamentos de las técnicas de iluminación global para la síntesis de imágenes partir de un modelo 3D y su base físico-matemática. Se reseñan los diferentes algoritmos entre los que se encuentran: Ray Tracing, Path Tracing, Radiosity y Photon Mapping. Luego se analizan las plataformas disponibles para implementar sistemas de rendering en tiempo real como ser clusters de PCs o GPUs (Graphics Processing Unit). Se analiza en detalle la arquitectura de las GPU y las técnicas para computar algoritmos de propósito general en ellas (GPGPU). A continuación se propone un caso de estudio que consiste en implementar el algoritmo de Photon Mapping sobre una GPU utilizando OpenGL y el lenguaje Cg. Para ello, se diseño una capa de software orientada a objetos basada en los conceptos del paradigma Streaming Programming Model y la extensión de OpenGL, Framebuffer Object para implementar kernels y streams utilizando los mecanismos de cómputo del hardware gráfico. Sobre esa base se construyo un motor de Photon Mapping adaptando una estructura de aceleración de trazado de rayos denominada BVH (Bounding Volumen Hierarchy) y la técnica de Photon Splatting para computar la iluminación indirecta. Finalmente se evalúa el desempeño, escalabilidad de la implementación en relación a varios parámetros, y se analizan diferentes imágenes generadas a partir de un modelo de caja de Cornell (Cornell Box). I

3 Agradecimientos Debo comenzar agradeciendo especialmente a Horacio, por sus consejos, su dedicación y su paciencia durante el extenso desarrollo de este proyecto. Siguiendo por los docentes de la Facultad de Ingeniería que me orientaron en mi búsqueda de un proyecto interesante para investigar. También tengo que agradecer a mi familia, por su colaboración en la redacción y revisión de varios puntos que integran este trabajo. Siguiendo por mi madre, sin cuya asistencia logística/gastronómica no hubiera podido dedicar el tiempo suficiente a esta tarea. Por último, a mis amigos y conocidos que creyeron que algún día este proyecto estaría concluido. Federico J. Marino Octubre de 2007 II

4 Índice General Resumen Agradecimientos I II 1. Introducción 1 2. Fundamentos de la iluminación global La física de la luz Terminología de iluminación Técnicas La ecuación del Rendering Interacción luz-superficie La función BSSRDF La función BRDF Reflectancia Reflectancia difusa Reflexión especular Refracción Algoritmos de iluminación global Ray Tracing clásico Estructuras de aceleración Ventajas Desventajas Path Tracing Ventajas Desventajas Bidirectional Path Tracing Ventajas Desventajas Metropolis Light Transport Ventajas 18 I

5 Desventajas Radiosity Etapa 1, determinación de los factores de forma Etapa 2, resolución del sistema de ecuaciones Etapa 3, sntesis de la imagen Ventajas Desventajas Photon Mapping Motivación y antecedentes El método Fase 1, trazado de fotones Fase 2, rendering Desempeño y mejoras Plataformas de Rendering de alto desempeño Clusters de PCs Hardware gráfico programable GPU (Graphics Processing Unit) El pipeline gráfico El pipeline gráfico programable Modelo de memoria de la GPU El procesador de vértices El rasterizador El procesador de fragmentos programable Stream Programming Model GPGPU Computando con un programa de fragmentos Implementación de un caso de estudio Proyección perspectiva de la escena Fuente de luz Geometría de la escena Modelo de iluminación 47 II

6 6.5. Marco de trabajo basado en Kernels y Streams Clase FpKernel Clase FpStream Ejemplo de uso Trazador de fotones y rayos en la GPU La estructura de aceleración BVH Clase Tracer El trazado de fotones Photon Splatting Motor de Rendering basado en Photon Mapping La clase SceneLoader La clase PhotonMapper La clase Raytracer Evaluación de la implementación Entorno de hardware y software Mediciones del desempeño Imágenes Conclusiones Trabajos Futuros 74 A Publicaciones 76 B Código Fuente 77 Referencias 94 III

7 Capítulo 1 - Introducción Los gráficos generados por computadora son cada vez una parte más fundamental de la vida cotidiana. Desde ámbitos como el cine en donde mediante técnicas sofisticadass casi cualquier producción con un presupuesto mediano, puede realizan complejas simulaciones que derivan en la creación de personajes o escenarios virtuales de extremo realismo. Pasando por la industria de los videojuegos, en donde una audiencia cada vez más exigente y demandante de efectos y simulaciones más reales, impulsan el desarrollo de la tecnología de semiconductores, dotando a los dispositivos de juego de un poder de cómputo extraordinario. Llegando a aplicaciones de CAD y animación 3D para computadores personales que permiten diseñar y modelar objetos o escenas que pueden ser navegadas virtualmente en tiempo real. La creación o síntesis de imágenes fotorrealistas se refiere al proceso de generar imágenes artificiales capaces de engañar al ojo humano al tal punto que resulten casi indistinguibles de fotografías tomadas del mundo real. Hace más de dos décadas surgieron las primeras técnicas, como Ray Tracing (1980) y Radiosity (1984), que utilizaron por primera vez simulaciones basadas en principios físicos. Dichos métodos tienen su origen en otros campos anteriores a la computación gráfica como la óptica y los problemas de transferencia de calor. Tras años de evolución, se han logrado modelar muchos de los efectos de la interacción entre la luz y las superficies. Sin embargo para lograr altos niveles de realismo aún se requieren recursos computacionales importantes. En el caso de la industria cinematográfica los tiempos que demanda la generación de un cuadro de animación no son un factor fundamental (aunque puedan demandar horas o días). Si, en cambio, lo es la calidad del resultado obtenido. Cuando se trata de emplear estos algoritmos de síntesis de imágenes realistas en aplicaciones de tiempo real generalmente se llega a una solución de compromiso entre una menor calidad a cambio de una mayor velocidad de generación. La rápida evolución en el hardware de procesamiento gráfico disponible para PCs, ha renovado el interés en investigar nuevas formas de utilizarlo ya sea para implementar algoritmos de iluminación mas complejos o para el cómputo de otros tipos de aplicaciones no gráficas que impliquen procesar grandes volúmenes de datos. En este trabajo se busca conocer el estado de arte en cuanto a las técnicas de iluminación fotorrealistas, analizar que plataformas están disponibles para construir aplicaciones de tiempo real que implementen ese tipo de métodos y diseñar una solución que reuna aspectos de los últimos trabajos en la materia. 1

8 Capítulo 2 - Fundamentos de la iluminación global 2.1 La física de la luz La luz tiene una naturaleza dual ya que posee las propiedades de una onda y de una partícula. La luz visible es radiación electromagnética con longitudes de onda en el rango de los 380 a los 780 nanómetros. A lo largo de la historia, la luz intentó ser explicada mediante diversos modelos: Óptica de rayos: explica efectos como reflexión y refracción. Óptica de ondas: explica todos los fenómenos de la óptica de rayos y además explica el efecto de interferencia y de difracción. Óptica electromagnética: incluye a la óptica de ondas y agrega explicaciones a los fenómenos de dispersión y polarización. Óptica de partículas: explica la interacción entre luz y materia. En computación gráfica se usa casi exclusivamente la óptica de rayos, o también llamada óptica geométrica. El proceso que determina el color que tendrá la luz que entra al ojo proveniente de una superficie, es dinámico y complejo. Este proceso está regido por las propiedades físicas de la luz y de los materiales que componen las superficies. Si se observa la luz, desde su aspecto corpuscular, se la puede considerar como una serie de paquetes de energía que viajan a la velocidad de la luz, denominados fotones. Cuando un fotón interactúa con una superficie pueden suceder tres casos: Reflexión: si el fotón rebota en una superficie perfectamente suave, el ángulo es determinado por la ley de reflexión, la cual especifica que el mismo, es igual y opuesto al ángulo de incidencia respecto de la normal (reflexión especular). En el caso de superficies irregulares o rugosas, el ángulo de reflexión es mas difícil de predecir ya que la normal en el punto de impacto solo puede determinarse en forma probabilística (reflexión difusa). Refracción (o también conocido como transición): el fotón viaja a través de una superficie. La dirección se determina según la ley de refracción o ley de Snell que tiene en cuenta los índices de refracción de los dos medios que comparten la superficie. Absorción: el fotón genera la excitación de los átomos de la superficie convirtiendo la energía lumínica en calor o reemitiéndola. La intensidad o brillo de la luz es proporcional al número de fotones y su color depende de la energía contenida en el fotón. 2.2 Terminología de iluminación La energía de un fotón λ e varía de acuerdo a su longitud de onda λ y está definida por: 2

9 hc e λ = (2.1) λ 34 Donde h 6,63 10 J s es la constante de Planck y c es la velocidad de la luz. La energía radiante espectral Q λ, en n λ fotones con longitud de onda λ se define como: Q λ nλ hc = nλ eλ = (2.2) λ La energía radiante Q es la energía de un conjunto de fotones que se calcula integrando la energía espectral sobre un espectro de longitudes de onda, dada por: = Qλ dλ 0 Q (2.3) El flujo radiante Ф, es la cantidad de energía irradiada por diferencial de tiempo definido como: dq Φ = (2.4) dt La densidad de flujo radiante por unidad de área, se define como el diferencial de flujo dф por diferencial de área da, sobre una superficie determinada y su expresión es: dφ da = 2 d Q dt da (2.5) La exitancia radiante M o radiosidad B, se refieren a la densidad de flujo radiante por unidad de área, saliendo de una superficie en un punto x y está definida por: dφ M ( x) = B( x) = (2.6) da La irradiancia E es la densidad de flujo radiante por unidad de área, llegando o incidiendo en el punto x de una superficie es: dφ E( x) = (2.7) da La intensidad radiante, es el flujo radiante por unidad de ángulo sólido dw r, definida por: r dφ I ( w) = r (2.8) dw 3

10 La radiancia, es el flujo radiante por unidad de ángulo sólido dw r por unidad de área proyectada da (ver figura 2.1): 2 4 r d Φ d nλ hc L( x, w) = r = r dλ cosθ da dw 0 cosθ dw da dt dλ λ (2.9) Representa la radiancia expresada como la integral sobre las longitudes de onda del flujo de energía en n λ fotones por diferencial de área da por diferencial de ángulo sólido dw r por unidad de tiempo, donde θ es el ángulo entre la dirección dw r y la normal n r de la superficie. Esta cantidad es la que representa de modo más cercano el color de un objeto. Puede pensarse como el número de fotones llegando por unidad de tiempo a un área pequeña desde una dirección determinada y puede usarse para describir la intensidad de luz en un punto dado y una dirección determinada. Figura 2.1: La radiancia, L, definida como el flujo radiante por unidad de ángulo sólido w d r, por unidad de área proyectada da. Cuando se trabaja con iluminación que proviene de cierta dirección no tiene sentido tener en cuenta un solo rayo que sería infinitamente delgado porque virtualmente ningún fotón viajaría en él. En cambio tiene mas sentido hablar del área que rodea a cierta dirección. También conocido como ángulo cónico, el ángulo sólido, es la porción de cielo que abarca un objeto visto desde un punto dado. Se puede decir que representa simultáneamente el tamaño angular y la dirección (expresada en coordenadas esféricas) de un haz. Su unidad es el estereoradián (sr) y es equivalente a un radián al cuadrado. El tamaño de un diferencial de ángulo sólido, dw r (ver figura 2.2) en coordenadas esféricas es: r dw = ( dθ ) *(sinθ dφ) = sinθ dθ dφ (2.10) Donde, θ es el ángulo entre la dirección y la normal de la superficie S 1 y φ es el ángulo entre la dirección proyectada sobre el plano tangente a la superficie y el eje x. El lado derecho de la ecuación (2.10) expresa el área infinitesimal en la esfera unitaria como un producto del largo del arco de longitud dθ y la longitud del arco de latitud sin θdφ. 4

11 Figura 2.2: El ángulo sólido. La dirección w r del ángulo sólido se puede calcular como: x = sinθ *cosφ y = sinθ *sinφ z = cosθ (2.11) 5

12 2.3 Técnicas Las técnicas de iluminación pretenden simular o aproximar los fenómenos físicos de distribución de la luz (reflexión, refracción, absorción, etc.) sobre una escena 3D, con el objetivo de calcular la intensidad lumínica en cualquier punto del modelo. Las técnicas de iluminación directa son aquellas que tienen en cuenta solamente la luz que llega a las superficies en forma directa, desde las fuentes. En cambio, las de iluminación global, permiten capturar la iluminación indirecta (la que proviene de reflexiones y refracciones en otras superficies), lo cual aporta una gran cuota de realismo a las imágenes generadas aunque a un costo de cómputo mayor. Sin ella, las imágenes obtenidas tienen un aspecto plano y sintético. Estos algoritmos se alimentan de datos como: Descripción geométrica de la escena (vértices, caras, normales, etc.). Descripción de materiales de las superficies (coeficientes de brillo, transparencia, color, rugosidad, etc.). Descripción de fuentes de luz (color, dirección, potencia, etc.). Existen numerosas técnicas de iluminación global, pero sin duda las más famosas son Ray Tracing y Radiosity. Analizándolas en detalle la mayoría se pueden incluir en uno de estos dos grupos: Métodos de muestreo de puntos: por ejemplo Ray Tracing, donde se toman gran cantidad de muestras de la iluminación en diferentes puntos de la escena. Métodos de elementos finitos: por ejemplo Radiosity. La distribución de luz se calcula resolviendo un sistema de ecuaciones lineales que representa el intercambio de luz entre parches de las superficies. Además hay técnicas híbridas que combinan aspectos de ambos métodos. 2.4 La ecuación del Rendering La ecuación, que fue presentada por Kajiya [1], surgió como una forma abstracción o generalización de los distintos algoritmos de iluminación global. Provee un contexto unificado para analizar cada método particular y describe matemáticamente el transporte de luz en cada punto de una escena. Los distintos algoritmos de iluminación global producen resultados que definen flujos de energía mediante la aproximación numérica de esta ecuación, que se basa en la ley de conservación de energía. Básicamente dice que toda la luz emitida en la dirección w r por el punto x, L o, es la suma de la luz reflejada por el punto, L r y dispersada en la dirección w r mas la luz emitida por el punto L e (es no nula solo si el punto es emisor de luz). r r r Lo( x, w) = Le( x, w) + Lr( x, w) (2.12) Desarrollando el término de la radiancia reflejada (L r ) obtenemos: 6

13 r r Lo( x, w) = Le( x, w) + r r w' Ω r r r r r r f ( x, w', w) Li( x, w)( w' n) dw' (2.13) Donde Ω es el conjunto de todas las direcciones posibles, n r es la normal de la superficie, L i es la radiancia incidente para cada dirección y fr es la denominada función BRDF (Bidirectional Reflectance Distribution Function) que para un punto x, da la fracción de la luz total proveniente de la dirección w r ' que es reflejada en la dirección saliente w r. El valor de la función BRDF varía entre 0 (no hay reflexión) y 1 (reflexión especular perfecta) y además para cada par x, w r ' se cumple que: r w' Ω r r fr( x, w', w) 1 (Cada punto no refleja más que la luz que recibe) (2.14) Algunas características a destacar de la ecuación son: Es lineal (solo está compuesta por sumas y multiplicaciones). Homogeneidad espacial (es la misma para todas las posiciones y orientaciones). Depende de la longitud de onda λ de la luz, por lo tanto la ecuación debería ser resuelta para cada λ posible. En la práctica se resuelve para un solo valor (obteniendo la luminancia) o para las tres componentes RGB. Debido a que, la radiancia incidente L i en un punto, es la radiancia saliente L o de otro punto x en la dirección w r ', la integral se convierte en recursiva; lo cual la hace imposible de resolver por métodos analíticos, excepto para casos muy simples. Es por ello, que los métodos disponibles llevan a una solución aproximada. Existen algunos fenómenos naturales que no pueden ser modelados por esta ecuación como ser: La fluorescencia (la luz es reflejada con una longitud de onda diferente). La fosforescencia (la luz es reflejada un instante mas tarde). La polarización. La interferencia. 2.5 Interacción luz-superficie El fenómeno de dispersión es aquel donde algunas formas de radiación como en este caso la luz se desvían de su trayectoria original ya sea porque encuentran un obstáculo o cambios en el medio que atraviesan La función BSSRDF Esta función, presentada por Nicodemus et al. [2], según sus siglas en inglés Bidirectional Scattering Surface Reflectance Distribution Function, describe el proceso por el cual un haz de luz que ingresa en un material, se dispersa en su interior para luego abandonar la superficie en una ubicación diferente (ver figura 2.3). Esto es común especialmente en materiales traslucidos como la piel, el mármol o la cera, donde solo un bajo porcentaje se refleja directamente desde el punto de impacto en la superficie. Este comportamiento ocurre en cierta medida, en la mayoría los materiales no metálicos. 7

14 Figura 2.3: Funciones BRDF y BSSRDF. La función BSSRDF (ecuación 2.15) [2], S, relaciona un diferencial de radiancia reflejada, dl, en x en la dirección w r, con el diferencial de flujo incidente dφ i, en x en la dirección w r '. Dado que tiene de ocho dimensiones, es muy costosa su evaluación La función BRDF r r dl ( x, w r r ) S( x, w, x', w') = r (2.15) dφi( x', w' ) La función BRDF (Bidirectional Reflectance Distribution Function), fue presentada por Nicodemus et al. [2] y describe las características reflectivas de las superficies o también se dice que describe un modelo local de iluminación. Surge de simplificar la BSSRDF, condicionando a que el punto en el que la luz impacta y en el que se refleja sea el mismo (x=x ), reduciendo así la dimensionalidad de la función a seis. r r r dl ( x, w r r ) dlr ( x, w) fr( x, w', w) = r = r r r r (2.16) dei( x, w' ) Li( x, w')( w' n) dw' Esta función f r, define que porcentaje de la irradiancia se convierte en radiancia reflejada y donde n r es la normal en x. Partiendo del conocimiento del campo de radiancia incidente en un punto de la superficie, es posible calcular la radiancia reflejada (ecuación 2.17) en todas las direcciones, integrando la radiancia incidente Li: L r r r r r r r r r r x, w) = fr( x, w', w) de( x, w') = fr( x, w', w) Li( x, w')( w' n) d ' r( w Ω Ω (2.17) Aquí n r es la normal en el punto x de la superficie, y Ω es el hemisferio de direcciones incidentes en x (cabe notar que w r n r = cosθ donde θ es el ángulo entre la normal n r y la dirección w r ). La función BRDF posee las siguientes propiedades: 8

15 Invariancia posicional: en general la función es invariante respecto de la posición si se trata de superficies homogéneas. Por el contrario, no es invariante en superficies rugosas o heterogéneas. Reciprocidad: que establece que la función es independiente de la dirección en la que fluye la luz, por lo tanto es posible trazar los recorridos de la luz en ambas direcciones. Conservación de energía: una superficie no puede reflejar más luz de la que recibe. Existen dos clases de funciones BRDF: Isotrópicas: se refiere a aquellas en donde propiedades de reflectancia no varían según la dirección. Ocurre en superficies muy suaves. Anisotrópicas: por el contrario, se refiere a esos casos en donde las propiedades son diferentes o dependen de la dirección. La mayoría de los materiales tienen principalmente un comportamiento isotrópico, y exhiben en un grado menor comportamiento anisotrópico Reflectancia Esta cantidad representa la relación entre el flujo de luz incidente y reflejado en un punto x. La reflectancia ρ, es un valor entre 0 y 1. La fracción de luz que no es reflejada es absorbida o refractada. dφr( x) ρ ( x) = (2.18) dφi( x) En la práctica, para la mayoría de los materiales, la distribución de la energía reflejada en las diferentes direcciones, puede modelarse como la suma de dos componentes: Reflexión difusa. Reflexión especular Reflectancia difusa Típicamente ocurre en superficies rugosas o materiales que dispersan la luz dentro de sus superficies como por ejemplo tierra, piedra o tela. Las pinturas del tipo mate tienen una alta proporción de reflexión difusa. También se conoce con el nombre de superficies lambertianas a aquellas que exhiben este comportamiento. La luz incidente es reflejada en todas las direcciones del hemisferio de manera uniforme (ver figura 2.4). La dirección de reflexión es perfectamente aleatoria, por lo tanto la función BRDF, f r,d, es constante respecto de la dirección saliente w r y se define como: r r Lr( x, w) = fr, d( x) dei( x, w') = fr, d( x) Ei( x) Ω (2.19) 9

16 Luego término, ρd, conocido como reflectancia difusa, se define como: dφr( x) ρd x) = = dφi( x) Lr( x) da Ei( x) da r dw = ( x) Ei( x) da Ω Ω ( π r, d f r, d Ei( x) da r dw = f ( x) (2.20) Dado que Ω dw r = π (2.21) Figura 2.4: Reflexión difusa ideal o lambertiana (izquierda), reflexión difusa (derecha) Reflexión especular Sucede cuando un haz de luz choca con una superficie suave, típicamente metálica o de un material dieléctrico (vidrio o agua). En el caso ideal (reflexión especular perfecta o reflexión tipo espejo) de una superficie perfectamente suave, toda la luz incidente se reflejaría en una dirección que forma un ángulo igual y opuesto al ángulo de incidencia respecto de la normal de la superficie (según la ley de reflexión), también conocida como dirección de reflexión del espejo (ver figura 2.5). Pero la mayoría de las superficies son imperfectas, por lo tanto en estos casos, la luz es reflejada alrededor de un pequeño cono centrado en la dirección de reflexión del espejo. Este tipo de materiales se denominan glossy (ver figura 2.5). El grado de imperfección es un parámetro habitual del material llamado comunmente rugosidad usado en los modelos de reflexión. La radiancia debido a la reflexión especular está definida como: r r Lr( x, ws) = ρs( x) Li( x, w') (2.22) Donde w r, es la dirección incidente, w r s es la dirección de reflexión del espejo, ρ s, es la reflectancia especular y L i la radiancia incidente. En el caso de una reflexión especular perfecta, w r s es: 10

17 r ws r r r r = 2 ( w n) n w (2.23) Donde w r s = 1 y w r = Refracción Figura 2.5. Reflexión especular perfecta o tipo espejo (izquierda), reflexión especular tipo glossy (derecha). Es el efecto de cambio en la dirección de una onda debido a un cambio en su velocidad. Sucede cuando una onda pasa de un medio a otro. En óptica ocurre cuando un haz de luz pasa de un medio con un cierto índice de refracción a otro con un índice diferente. Figura 2.6: Refracción de un haz de luz. La ley de Snell o ley de refracción se utiliza para calcular la dirección del rayo refractado w r r, en función de los índices de refracción de los dos medios η 1 y η 2, la dirección incidente w r y la normal de la superficie n r (ver figura 2.6). La relación entre los ángulos está dada por: η 1sinθ 1 = η 2 cosθ 2 (2.24) Y la dirección del rayo refractado se define como: r wr η1 r r r r = ( w ( w n) n) ( η 2 η1 2 r r 1 ( ) (1 ( w n) η 2 2 r )) n (2.25) 11

18 Capítulo 3 - Algoritmos de iluminación global 3.1 Ray Tracing clásico Fue una de las primeras técnicas que propuso una solución de iluminación global, ya que mediante un algoritmo recursivo incorpora efectos de reflexión, refracción y sombras. Fue presentada por Whitted en 1980 [3]. Se basa en la observación que los rayos de luz que importan son solo aquellos que llegan al ojo del observador. En la naturaleza las fuentes de luz emiten fotones que se dispersan por la escena y solo una pequeña fracción de ellos alcanza al ojo, pero simular el proceso de esa manera, no es práctico. La idea principal es trazar el camino recorrido por la luz en sentido inverso, desde el ojo hacia las fuentes de luz, utilizando el hecho de que los fotones se mueven en línea recta a través del espacio vacío y que la dispersión de la luz en las superficies es simétrica. Los parámetros de entrada del algoritmo de Ray Tracing son: La posición del observador. Un plano de vista (dirección y campo de visión). La descripción de la geometría y los materiales de la escena. Las características de las fuentes de luz. Un rayo r se define por un origen x y una distancia d que es la recorrida en la dirección w r, y se resume en la siguiente fórmula: r r r( x, w) = x + d w (3.1) El algoritmo pretende calcular el color (la radiancia promedio) de cada uno de los píxeles que conforman el plano de vista. Esto se logra trazando uno o más rayos por cada píxel (ver figura 3.1) y promediando los valores obtenidos. Figura 3.1: Trazado inverso del recorrido de un haz de luz. 12

19 El recorrido completo de un haz de luz se conforma de varios segmentos. Cada vértice del recorrido representa una interacción con las superficies que hace cambiar su dirección. En la figura 3.1 se observa que el primer segmento o rayo del recorrido (ojo del observador a x 1 ) se denomina rayo primario y es aquel que atraviesa el plano de proyección. Luego en los puntos x 1, x 2 y x 3 se generan rayos secundarios producto de la reflexión especular y refracción en las respectivas superficies. Para calcular la radiancia del rayo primario debemos hallar la menor distancia (el menor valor de d) a la cual el rayo interseca un objeto, dicho de otro modo, hay que encontrar el objeto visto a través del píxel. Hallado el punto de intersección x, debemos calcular la radiancia saliente en la dirección del rayo. Para tal fin, debemos conocer la normal de la superficie y la función BRDF, f r en x. Con esos datos podemos computar la iluminación aportada por cada fuente de luz estimando la irradiancia en x. Por ejemplo, la radiancia reflejada, L r, debido a una fuente puntual con potencia Φl en el punto p se puede calcular como: Donde r w = ( p x) / r r r r r w n Lr( x, w) = fr( x, w, w') 2 p x p x Φl V ( x, p) 4π (3.2) es el vector unitario en la dirección de la fuente de luz. La función de visibilidad, V, se evalúa trazando un rayo de sombra desde el punto x hacia la luz. Si el rayo de sombra interseca un objeto entre x y la luz entonces V=0, de lo contrario V=1. Para superficies especulares o traslúcidas el algoritmo debe evaluar la reflexión especular o refracción trazando rayos secundarios y sumar su aporte a la radiancia total del recorrido, utilizando el mismo procedimiento usado para el rayo primario. A continuación se detalla una versión simplificada del algoritmo: Para cada píxel de la imagen crear un rayo desde el ojo a través de un píxel Color de píxel=trazar(rayo) trazar(rayo) encontrar intersección mas cercana con la escena computar punto de intersección y normal color = sombrear(punto, normal) return color sombrear(punto,normal) color=0 para cada fuente de luz trazar rayo de sombra hacia la luz si rayo de sombra interseca luz color=color + iluminación directa si es especular color = color+ trazar(rayo reflejado/refractado) return color Dada la naturaleza recursiva de método, la complejidad computacional crece rápidamente a medida que el árbol de recorridos y rayos aumenta en su profundidad. Es 13

20 por ello que se han propuesto numerosas estrategias para mejorar el desempeño de Ray Tracing, como por ejemplo la del control adaptativo del nivel máximo de recursión a alcanzar en el trazado según las características de la escena. Otras estrategias, buscan aprovechar la coherencia existente entre rayos paralelos, cercanos en el plano de vista, que probablemente tendrán interacciones similares con las superficies, para ahorrar u optimizar las ciclos de trazado Estructuras de aceleración En las primeras implementaciones de Ray Tracing se iteraba sobre todos los objetos para verificar su intersección con cada rayo. Esto genera un problema de búsqueda lineal de orden O(N) en una escena con N objetos, lo cual resultaba muy ineficiente. En cambio, es conveniente subdividir el modelo en regiones más pequeñas y solo verificar la intersección de cada rayo con los objetos de las regiones que este atraviesa. De este modo se logran tiempos de búsqueda sub-lineales. Este concepto se materializa en lo que se conoce como estructura de aceleración, que es una estructura de datos ordenada y construida mediante un preproceso, a fin de reducir la cantidad de verificaciones de intersección entre rayos y objetos. Estás estructuras pueden clasificarse en dos grandes grupos: De subdivisión espacial: el espacio de la escena se particiona en regiones. Luego conociendo que regiones atraviesa el rayo, se prueba la intersección únicamente con los objetos que estén contenidos en ellas. Algunos ejemplos son las grillas uniformes (regiones de igual tamaño)[4], grillas jerárquicas [5], los KD-trees o la BSP (Binary Space partition) [7]. De agrupamiento de objetos: los elementos de geometría forman grupos que a su vez conforman una jerarquía de volúmenes simples. Entonces, si no hay intersección entre un volumen y el rayo, se evita probar la intersección con todos los objetos incluidos en dicho volumen. Un ejemplo de esta estructura es BVH (Bounding Volumen Hierachy) que se detalla en el punto Además, existen numerosas estructuras híbridas que combinan aspectos de las principales Ventajas Simplicidad de implementación Desventajas No puede calcular la iluminación indirecta en superficies difusas. No permite computar sombras suaves. No permite computar efectos de enfoque debido a los lentes de cámara. Es dependiente del punto de vista de la escena. No puede simular inter-reflexión difusa entre superficies. 3.2 Path Tracing Es una técnica que extiende el método de Ray Tracing, como una solución a la ecuación del rendering y fue presentada por Kajiya en 1986 [1]. Incorporó conceptos 14

21 propuestos por Cook et al. en 1984 [9] en su algoritmo conocido como Distribution Ray Tracing. Esté último utiliza el muestreo estocástico para computar efectos como motion blur, profundidad de campo y sombras suaves. Path Tracing hace posible calcular los efectos que requieren evaluar los problemas de integración recursiva trazando rayos en forma aleatoria en el dominio de integración para calcular el valor de la integral, método al cual se lo conoce como Monte Carlo. El concepto principal de la teoría de Monte Carlo es que la integral i puede ser aproximada evaluando la función f sobre un número de muestras x i (i=1..n). Obteniendo un valor estimado para I expresado como I : N 1 f ( xi) i = f ( x) dx I = N p( xi i= 1 ) (3.3) Donde p(x i ) es la probabilidad de elegir x i. Lo general del método lo hace aplicable a integrales de varias dimensiones o a funciones arbitrarias. Sin embargo, aunque el estimador de I converge a I cuando N, la convergencia es lenta. El error estándar es proporcional a 1 N por lo tanto para reducir el error a la mitad se necesitan cuatro veces mas muestras. Aplicándolo a Path Tracing, la función desconocida es la distribución de luz. Aquí el método de Monte Carlo busca resolver la ecuación del rendering completa, por medio de la generación de todos los posibles recorridos de los rayos comenzando en el ojo y terminando en las fuentes de luz (ver figura 3.2). Figura 3.2: Trazado de múltiples recorridos de rayos por cada píxel. Con cada impacto sobre una superficie, se suma la radiancia emitida desde el punto y se envía un nuevo rayo en una dirección aleatoria seleccionada de un hemisferio alrededor del punto, de acuerdo con la BRDF de la superficie. Si el rayo impacta en otra superficie, el algoritmo se hace recursivo, el resultado es multiplicado por la probabilidad de elegir esa dirección y agregado al estimador actual. 15

22 Para estimar con precisión la radiancia en un punto, se debe muestrear y promediar un gran número (varios miles) de recorridos de rayos por cada píxel. Un detalle importante de Path Tracing es que utiliza un solo rayo reflejado/refractado para estimar la iluminación indirecta. Si utilizara varios rayos en cada evento de dispersión de luz, provocaría un crecimiento exponencial en el número total de rayos requeridos, dada su naturaleza recursiva. Además, el autor señaló que era conveniente concentrar esfuerzos en los eventos que son resultado de pocas reflexiones. Al trazar un solo rayo por evento (reflexión, refracción, etc.) se asegura que el mismo esfuerzo es invertido en todas las superficies que son vistas directamente por el observador. Para evitar que el algoritmo genere recorridos de rayos de longitud infinita hay que fijar un criterio de terminación. Una opción sería trazar todos los recorridos hasta una longitud máxima fija, lo cual resulta ineficiente y generaría errores considerables en el resultado de la estimación al truncar recorridos que podrían aportar a la radiancia del píxel en cuestión. La solución alternativa y elegante es incorporar la idea del muestreo probabilístico al problema de determinar la longitud del recorrido, sin agregar un sesgo al resultado de la estimación. Esta técnica conocida como Ruleta Rusa, introducida al área de computación grafica por Arvo et al. [26], es una forma de muestreo que tiene en cuenta la distribución probabilística de la función a estimar para eliminar partes no importantes del dominio. En este hace posible trazar un haz a través de un número finito de rebotes y aún así obtener un resultado comparable al que se hubiera logrado trazándolo un número infinito de rebotes. Dado que el proceso de generación de cada recorrido depende de variables aleatorias (la dirección de reflexión al intersecar una superficie difusa es escogida al azar) y que en píxeles cercanos el valor de iluminación estimado puede variar considerablemente, es común que se produzca un efecto de ruido (varianza del estimador) en la imagen final. Para reducir dicho efecto es necesario trazar muchos recorridos por píxel y promediar su valor. Hay métodos para reducir la varianza de los métodos de Monte Carlo. Uno de ellos es conocido como muestreo por importancia, se fundamenta en tratar de tomar las muestras en aquellas zonas en donde la función desconocida tiene valores elevados (usando algún conocimiento a priori de la función) para lograr así que el método converja más rápido. Por ejemplo, una forma de lograr esto es concentrar las muestras en zonas más iluminadas, las cuales probablemente estén cerca de las fuentes de luz. Aplicando esta idea a Path Tracing, se suelen trazar recorridos secundarios desde cada nodo de un recorrido principal hacia las zonas brillantes. Otro método que funciona muy bien especialmente en escenas de exteriores que incluyen luz de cielo (la cual varía suavemente) es el método de muestreo estratificado. La idea es dividir el espacio de muestreo en celdas, de manera de tratar de cubrir de manera uniforme dicho espacio Ventajas No requiere etapas de preprocesamiento. Maneja cualquier tipo de función BRDF. Maneja cualquier tipo de geometría. 16

23 No requiere demasiado espacio de memoria Desventajas La varianza del estimador de radiancia (el ruido que resulta de usar pocos recorridos por píxel y por lo tanto pocas muestras para estimar la iluminación). Convergencia lenta (sobre todo en escenas complejas en donde la probabilidad de que un recorrido alcance una zona de alta iluminación, es muy baja). 3.3 Bidirectional Path Tracing El término bidireccional, se refiere a que los recorridos de los rayos se originan desde dos puntos: el ojo del observador y la fuente de luz. Este cambio logra captar mas fácilmente los efectos de refracción (vaso de vidrio o una lupa) o de reflexión que producen concentraciones de luz sobre superficies difusas. Este efecto tiene una baja probabilidad de ser captado por el Path Tracing tradicional, ya que implicaría que el rayo pasara por una serie de reflexiones que terminen en la fuente de luz. La técnica fue presentada por Lafortune y Willems [10] en 1993 e independientemente por Veach y Guibas [11] en 1994 como una extensión del algoritmo de Path Tracing. La idea del método es comenzar trazando dos recorridos parciales iniciados respectivamente en la fuente de luz y el ojo del observador. Luego se intenta conectarlos mediante segmentos para los cuales se evalúa una función de visibilidad V. Dicha función define si los segmentos o caminos aportan o no iluminación según estén o no obstruidos por alguna superficie de la escena. La figura 3.3 ilustra un ejemplo en donde cada nodo E i (vértices del recorrido originado en el ojo) se intenta conectar con todos los L i (vértices del recorrido originado en la fuente de luz). Del resultado de estas combinaciones surgirán una serie de recorridos válidos que capturarán de forma mas eficiente efectos de inter-reflexión o iluminación indirecta. Figura 3.3: Combinación de recorridos parciales en Bidirectional Path Tracing. 17

24 3.3.1 Ventajas Se requieren evaluar menos recorridos por píxel Desventajas La varianza o el ruido de la imagen final es un problema al igual que en el método tradicional. Cada recorrido de luz implica mayor trabajo ya que hay que evaluar las conexiones entre ambos recorridos parciales E y L. 3.4 Metropolis Light Transport Fue presentado por Veach y Guibas [28] en En realidad, el método tiene sus orígenes en la década de 1950 para la resolución de problemas de física computacional. La estrategia que utiliza es concentrar el trabajo de muestreo en las zonas que más aportan a la imagen ideal final o en regiones de alta radiancia. En lugar de hacer un muestreo aleatorio de la función a integrar, a medida que se generan recorridos (se crean de modo similar que en Bidirectional Path Tracing), estos son clasificados según su aporte. Luego a partir de los recorridos que más contribuyen, se aplican mutaciones de segmentos o de pequeños conjuntos de vértices, para generar nuevos recorridos. Luego del proceso de mutación, se analiza si el nuevo recorrido es aceptado o descartado dependiendo de si está obstruido por alguna superficie y según una función de aceptación cuidadosamente definida. Si no se cumplen las condiciones, el recorrido es descartado como inválido. La función de aceptación permite que los cambios a un recorrido sean aceptados siempre en una dirección, mientras que algunas veces son rechazados en la dirección opuesta. Para las mutaciones se usan dos diferentes estrategias: Permutaciones: la idea es que produciendo cambios pequeños (corrimiento de los vértices) a un recorrido con alta contribución a la iluminación, se producirá un nuevo recorrido con alta probabilidad de aceptación. Estas estrategias de mutación se enfocan a capturar efectos específicos como el efecto caustics (concentración de luz debido a la reflexión o refracción en superficies curvas, como el que produce una lupa o un vaso de vidrio). Se dividen en permutaciones de lentes, permutaciones de caustics y permutaciones de cadenas múltiples. Mutaciones bidireccionales: consisten en reemplazar aleatoriamente tramos del recorrido por nuevos segmentos, pudiendo modificar su longitud total Ventajas Muy efectivo en escenas difíciles. Esto es en aquellas donde el aporte a la iluminación viene de un área reducida (como por ejemplo un agujero en la pared) que conduce a un área muy iluminada. Una vez que logra encontrar un camino a través del agujero, generará mediante mutaciones nuevos recorridos que capturarán la iluminación de esa zona. No es sesgado. 18

25 3.4.2 Desventajas No es eficiente en escenas simples (aquellas escenas donde la luz se encuentra distribuida de manera uniforme). No es aplicable a fuentes de luz puntuales. El nivel de ruido generado en la imagen final es afectado por numerosos parámetros del algoritmo y escoger los valores óptimos a fin de reducirlo no resulta trivial y es altamente dependiente de la escena particular. 3.5 Radiosity Fue presentado por Goral et al. [12] en 1984 y luego mejorado por Cohen et al. [13,14]. Tiene su origen en los principios físicos de transferencia de radiación térmica. La técnica solo es capaz de computar la iluminación global de escenas con superficies difusas y que puedan ser subdivididas en pequeñas superficies planas (denominadas parches, ver figura 3.4) sobre las cuales la radiancia reflejada y emitida se considera constante. Típicamente, solo tiene en cuenta aquellos recorridos de luz que salen de la fuente y se reflejan en forma difusa un cierto número de veces hasta alcanzar el ojo del observador. Incluyendo estás restricciones se logra simplificar la ecuación del rendering y la función BRDF ya no depende de la dirección incidente, quedando de la siguiente forma. L o = Le + fr i i L θdw Ω cos (3.4) Donde L o la radiancia reflejada es la suma de la radiancia emitida L e más la BRDF por la integral sobre el hemisferio, de la radiancia incidente L i por el coseno del ángulo de incidencia θ. Figura 3.4. Escena subdividida en parches. 19

26 La radiosidad B i para cada parche se define como la suma de la luz auto-emitida E i (no nulo solo para fuentes de luz) más la luz reflejada, donde ρ i es la constante de reflectancia del parche (es parte de la descripción de la escena) y F ij el denominado factor de forma. Bi = Ei + N ρ i BjFij i j= 1 ρ (3.5) El factor de forma es una cantidad sin unidad, que representa la fracción de la energía total saliendo del parche i que alcanza al parche j. Su cómputo se realiza a partir del tamaño, la orientación y posición de ambos parches. Dado que depende solo de las características geométricas, el factor es válido para cualquier longitud de onda. Si aplicamos la última ecuación (ecuación 3.5) sobre todos los parches de la escena, obtenemos un sistema de N ecuaciones con N términos (B 1...B N ), el cual puede ser resuelto numéricamente por el método de Gauss-Seidel. 1 ρ1f ρ 2F... ρnfn ρ1f 1 ρ 22F... ρnf N ρ1f ρ 2F... 1N 1 ρnf 2N NN B1 E1 B2 = E BN EN El algoritmo consta de tres etapas: determinación de factores de forma, calculo de radiosidad (resolución del sistema de ecuaciones) y rendering de la imagen final Etapa 1, determinación de los factores de forma Para que el cálculo de factores de forma sea preciso es necesaria una subdivisión en parches suficientemente fina como para obtener sombras de buena resolución. Figura 3.5: Factor de forma. Su expresión matemática es la siguiente (ver figura 3.5): 1 V ( i, j)cos( θi) cos( θj) daidaj Fij = A 2 i πr Ai Aj (3.6) Donde Ai es el área del parche i, θi es el ángulo entre su normal y el diferencial de área del parche j, pur útlimo, la función V(i,j) determina la visibilidad entre ambos puntos y puede valer 0 o 1. 20

27 Hay que destacar que el factor de forma Fij tiene carácter recíproco, o sea que Fij=Fji. Por lo tanto basta con calcular la mitad de los factores y además Fii es obviamente nulo. Existen dos maneras de calcularlo: con el método del hemicubo y con el método de trazado de rayos. El método del hemicubo fue propuesto por Cohen et al. en 1985 [14]. La idea es que el área de la proyección del parche sobre un hemisferio que envuelve al parche receptor dividida por el área total del hemisferio da el factor de forma (ver figura 3.6). Figura 3.6: cómputo de factor de forma por el método del hemicubo. En la práctica se utiliza un hemicubo en lugar de un hemisferio, ya que aunque es posible proyectar los parches analíticamente sobre el hemisferio, esto es mucho más complejo. El hemicubo y sus 5 caras está subdividido en píxeles, para los cuales se precalcula un factor de forma delta. Luego, el algoritmo consiste en proyectar todos los parches de la escena sobre el hemicubo. En caso de encontrar que dos o mas parches se proyectan sobre el mismo píxel se almacena la información del mas cercano. Para finalizar, el factor de forma de un parche i se obtiene sumando todos los factores delta de los píxeles asociados al parche i. Este proceso es fácilmente implementable por hardware. La precisión del cálculo se puede ajustar modificando la cantidad de píxeles del hemicubo. El resultado también depende de la distancia entre los parches y el tamaño de estos.si el parche es muy pequeño respecto de la distancia puede directamente desaparecer del cálculo. Por otra parte, el método de trazado de rayos, consiste en aplicar el método de Monte Carlo, trazando estocásticamente rayos desde el parche i y contabilizando cuantos de ellos alcanzan el parche j. Entonces, el factor de forma se aproxima mediante el cociente entre la cantidad de los rayos que llegaron a j y el número total de rayos trazados N. Cuando N tiene infinito el valor del conciente converge al de la integral que se pretende estimar Etapa 2, resolución del sistema de ecuaciones El sistema de ecuaciones puede ser resuelto en forma completa o iterativa. El primer modo requiere que la matriz principal permanezca en memoria, lo cual no es práctico en escenas con miles de parches (una escena con N parches genera un sistema de N 2 términos) y además puede llevar mucho tiempo. 21

28 El otro modo es utlizando el algoritmo denominado Progressive Radiosity, que consiste en calcular una solución inicial gruesa o aproximada (que puede ser visualizada) la cual luego será refinada hasta alcanzar un criterio de convergencia establecido. Este método solo requiere la presencia en memoria de una sola fila o columna de la matriz principal Etapa 3, síntesis de la imagen La información de iluminación indirecta obtenida en la etapa 2, puede ser utilizada por un Ray Tracer estándar o un algoritmo de Scan-Line para computar la imagen final. Típicamente, los valores de radiosidad aplicados a los vértices, pueden ser interpolados usando sombreado de Gouraud [31] y ser visualizados interactivamente Ventajas Información de iluminación indirecta puede ser precalculada y reutilizada mientras no cambie la información geométrica. Solución de iluminación global independiente de la vista (no depende de la posición del observador) Desventajas Solo resuelve iluminación para superficies difusas. Obliga a subdividir la geometría en pequeños elementos (parches) y la calidad de la solución depende de esta subdivisión. Requerimientos de memoria se incrementan con parques mas chicos. No captura efectos de iluminación de alta frecuencia (de rápida variación sobre un área reducida), como ser sombras con bordes bien definidos (hard shadows). 3.6 Photon Mapping Motivación y antecedentes Existen métodos híbridos de varias pasadas que combinan las técnicas de elementos finitos con las basadas en Monte Carlo, utilizando una fase inicial de preprocesamiento donde se computa una solución preliminar gruesa de la iluminación indirecta por el método de Radiosity y luego una segunda fase que calcula la imagen final usando métodos de Monte Carlo Ray Tracing como Path Tracing. Estas combinaciones son más rápidas y de mejor calidad que los dos métodos en su variante más pura, pero sufren de las limitaciones de los métodos de elementos finitos, que no pueden manejar geometría compleja. Otra alternativa son los mapas de iluminación (illumination maps), donde un mapa de texturas (mapas de bits) se utiliza para representar la irradiancia del modelo. Aquí el problema es determinar la resolución adecuada de estas texturas y cómo mapearlas en superficies complejas. Los únicos métodos que pueden lidiar con la simulación de iluminación global completa en modelos complejos y funciones BRDF arbitrarias son los métodos basados en Monte Carlo Ray Tracing. Sus ventajas son que no requieren convertir la geometría en un mallado de parches, consumen poca memoria, y dan un resultado correcto excepto por la varianza o ruido, lo cual constituye su mayor problema. 22

29 Un defecto común de los algoritmos de estimación de densidad es que su representación de los impactos de las partículas de luz está directamente acoplada a la descripción geométrica de la escena, condicionando el nivel de detalle de la iluminación a la definición del modelo. En casos extremos puede ocurrir que algunos elementos geométricos no reciban ningún impacto y por ende sean visualizados en negro. Está claro a partir de análisis de ventajas y desventajas de métodos mencionados previamente, que un buen algoritmo de iluminación global debe realizar el muestreo desde ambos puntos de vista, las fuentes de luz y desde el observador para captar todos los efectos. Otra observación importante es que la iluminación en general varía suavemente en grandes áreas y tiene variaciones grandes en otras áreas más pequeñas El método De todas las consideraciones anteriores surge el método de Photon Mapping desarrollado por Jensen [15]. El término fotón en este contexto se utiliza para denominar una partícula que transporta una cantidad discreta de energía lumínica en una dirección específica. El método se clasifica como un algoritmo de estimación de densidad (de fotones por unidad de área) de dos fases: distribución de fotones y recopilación de estadísticas de iluminación (síntesis de la imagen). La característica principal de la técnica es que la estructura de datos que almacena la distribución de fotones está desvinculada de la representación geométrica de la escena y se denomina mapa de fotones (Photon Map). Este mapa es una versión multidimensional de un árbol de búsqueda binaria llamado árbol KD, donde todos los nodos son fotones. Es similar a los árboles BSP, donde cada nodo subdivide el espacio en dos sub-espacios (dos nodos hijos) excepto por las hojas. Photon Mapping consiste de dos fases: Trazado de fotones: construcción del mapa de fotones trazándolos desde las fuentes de luz. Rendering: utilizando la información del mapa de fotones se sintetiza la imagen final. La estimación de densidad usando el mapa de fotones presenta errores de baja frecuencia a diferencia del Monte Carlo Ray Tracing tradicional, lo cual es una gran ventaja desde el punto de vista perceptivo ya que este ruido de baja frecuencia es mucho menos notorio que el de alta frecuencia. El precio que se paga es que el método es sesgado (no converge al valor de la integral que se pretende aproximar) Fase 1, trazado de fotones Es el proceso que construye el mapa de fotones (Photon Map). Estos se crean en las fuentes de luz que pueden tener una diversidad de formas o distribuciones particulares (ver figura 3.7). Cada fuente posee una potencia que es repartida en sus fotones (cada uno transporta una cantidad fija de energía). 23

30 Figura. 3.7: Emisión de fotones desde distintas fuentes de luz. En una fuente de luz puntual, los fotones son emitidos uniformemente en todas las direcciones. La emisión se puede realizar de dos maneras: por muestreo explícito, que consiste en mapear variables aleatorias en coordenadas esféricas para cubrir la superficie de una esfera ó muestreo por rechazo que consiste en generar puntos al azar en un cubo unitario y descartar aquellos que no estén incluidos en la esfera de diámetro unitario. En una fuente esférica, primero se escoge un punto de origen en la superficie de la esfera y luego se escoge una dirección al azar (siempre que apunte hacia el exterior de la misma). En el caso de una fuente cuadrada, el proceso es similar al de una fuente esférica. En una fuente direccional, que se caracteriza por emitir rayos de luz paralelos, se debe generar primero un volumen que envuelva a todo el modelo, luego proyectarlo en la dirección de la fuente de luz y escoger un punto sobre esa superficie para determinar el origen de cada rayo (ver figura 3.8). Para las fuentes de luz complejas con formas arbitrarias, se deben generar los fotones con una densidad acorde al perfil de la fuente. Cuando hay más de una fuente en una escena, la cantidad de fotones emitidos por cada fuente debe ser proporcional a la potencia de la misma (todos los fotones transportan la misma cantidad de energía lumínica). Fig Fuentes de luz direccionales. 24

31 Es importante diferenciar un aspecto del proceso de trazar fotones del de trazar rayos. Mientras que los rayos pretenden capturar radiancia, los fotones propagan flujo lumínico, es por ello que la interacción de los rayos con las superficies es diferente a la de los fotones. Cuando un fotón impacta sobre una superficie, puede ser absorbido, reflejado o refractado. En el caso de la reflexión, si el fotón impactó una superficie especular, se reflejará en la dirección de reflexión del espejo. En cambio si impactó una superficie difusa, se reflejara en una dirección aleatoria escogida de un hemisferio ubicado por encima el punto de impacto con una probabilidad proporcional a la BRDF. Cabe aclarar que usualmente los materiales de las superficies se modelan como la suma de una componentes: difusa o especular y ante el impacto de un fotón, se tiene en cuenta uno de los dos comportamientos de acuerdo a su respectiva probabilidad En el caso de la refracción, la nueva dirección será determinada por las leyes de refracción. Finalmente en el caso de la absorción, si la superficie es no-especular, la información del fotón es almacenada en el Photon Map (posición, dirección, etc.). Dado que los fotones almacenados en superficies especulares no aportan información útil porque la probabilidad de encontrar uno que coincida en forma exacta con cierta dirección de reflexión especular es muy pequeña. La decisión sobre cual de los eventos debe suceder, es determinado mediante la técnica de Ruleta Rusa y el material de la superficie. Utilizando una variable aleatoria uniforme ξ [0..1] y comparando su valor contra las probabilidades de que suceda cada evento: ξ [0.. ρd] Reflexión especular ξ [ ρd.. ρd ξ [ ρd ξ [ ρd ρs.. ρd ρ s + ρs] Reflexión difusa + ρ s + ρr] Refracción ρr.. 1] Absorción (3.7) Donde ρ d, ρs, ρr representan la probabilidad de reflexión difusa, especular y de refracción respectivamente. El Photon Map es una estructura de datos estática, utilizada para computar densidades de fotones en puntos del modelo 3D. Concretamente es una estructura de árbol KD diseñada con el fin de resolver búsquedas de fotones cercanos a determinado punto del espacio 3D de una manera rápida y a la vez eficiente. Debe ser capaz de almacenar millones de fotones que se distribuyen en forma no uniforme por la escena. Cada nodo del árbol particiona una de las dimensiones (X, Y o Z) en dos sub-árboles que contienen los fotones a un lado y otro del plano divisorio. La estructura permite encontrar los k fotones mas cercanos de un conjunto de N para una posición dada del espacio, en un tiempo promedio del orden de O(k + log N). Del proceso de construcción puede resultar un árbol de fotones desbalanceado. Por eso usualmente se agrega un paso adicional de balanceo que permite luego representar el árbol por un arreglo plano evitando así el almacenamiento de dos punteros a los nodos hijos. El paso de balanceo toma un tiempo adicional del orden de O(N log N) donde N es el número de fotones del árbol. Algunos trabajos recientes como el de Wald et al. [16] muestran que un árbol cuidadosamente desbalanceado puede superar en desempeño a uno balanceado, con un costo en tiempo de precómputo mayor y con requerimientos de almacenamiento adicionales. 25

32 El algoritmo de búsqueda es una directa extensión del de búsqueda en un árbol binario estándar. Se establece un rango máximo de búsqueda (un radio alrededor de un punto), de lo contrario el método se haría muy lento obligando a recorrer zonas con escasos fotones. Se mantiene una lista ordenada de los fotones que van siendo hallados según su cercanía al centro del volumen de búsqueda, de modo que si hay n fotones encontrados y se encuentra uno nuevo, se puede eliminar el último de la lista que es el que estaba más lejos Fase 2, rendering Durante esta fase, se pretende aproximar la ecuación del rendering para computar la radiancia reflejada en posiciones de las superficies. La imagen final se obtiene promediando un número de estimaciones por cada píxel, trazando rayos desde el ojo del observador hacia la escena. Si consideramos que la BRDF f r es usualmente la combinación de dos componentes: especular f r,s y difusa f r,d y que la radiancia incidente es en realidad la suma de tres componentes: iluminación directa L i,l, iluminación indirecta por reflexión especular o refracción L i,c, e iluminación indirecta por reflexión difusa (al menos una vez) L i,d, podemos descomponer la radiancia reflejada de la siguiente manera: r Lr( x, w) = E = C = I = Ω Ω Ω Ω Ω r r r r r r fr( x, w', w) Li( x, w' )( w' n) dw' r Lr( x, w) = D + E + C + I r r r r r r D = fr( x, w', w) Li, l( x, w')( w' n) dw' f f r, S f r, D r, D r r ( x, w', w)( Li r r ( x, w', w) L r r ( x, w', w) L, c i, c i, d r ( x, w' ) + L i, d ( r r r r ( x, w' )( w' n) dw' r r r r ( x, w')( w' n) dw' r r r r x, w'))( w' n) dw' (3.8) El término de la iluminación directa D, corresponde al cálculo de la radiancia reflejada debido a la luz que proviene directamente de la fuente y se calcula de manera precisa del mismo modo que en el Ray Tracing tradicional, ya que es uno de los términos más importantes porque genera por ejemplo el efecto de sombra. En el caso de fuentes de luz no puntuales, se utilizan varios rayos de sombra para estimar apropiadamente las zonas de penumbra. Para el término de reflexiones especulares E, no se utiliza el Photon Map, en cambio, se utiliza la técnica de Monte Carlo Ray Tracing. El término C se puede calcular de manera aproximada evaluando el estimador de radiancia a partir del Photon Map, o de manera mas precisa usando uno especial denominado Caustics Photon Map, que almacena solo los fotones que generan el efecto de caustics (luces enfocadas por reflexión o refracción). Este último se construye trazando fotones solo hacia objetos del tipo especular. Por último el término que representa la luz proveniente de reflexiones sobre superficies difusas I, se calcula también evaluando el estimador de radiancia pero a partir del Photon Map principal. 26

33 El cómputo del denominado estimador de radiancia, se basa en que la radiancia reflejada L r, de la ecuación del rendering en el punto x y la dirección w r, puede ser estimada con los k fotones más cercanos del Photon Map: r 1 Lr( x, w) πr r k fr( x, wp, w) Φp( x, wp) 2 p= 1 r r (3.9) Donde w r p es la dirección incidente, y Φ p es la potencia del fotón p, r es la 2 distancia máxima hasta cada fotón y π r es el área del círculo conteniendo los fotones. Dado que la búsqueda de los fotones se realiza en una esfera, es probable que se introduzcan errores en la estimación, al incluir fotones que llegan a la superficie por detrás, en una esquina o atravesando un objeto delgado y que no deberían contribuir a la iluminación del punto x. Estos efectos pueden reducirse, comparando la dirección incidente y la normal de la superficie y descartando mediante un producto escalar a aquellos que llegan por detrás. Aunque los fotones están contenidos en una esfera, la densidad se mide sobre el área de la esfera proyectada sobre la superficie (ver figura 3.9) la cual que tiene forma de disco. El uso de una distancia máxima r es para evitar que la búsqueda de fotones abarque áreas excesivamente grandes. Fig. 3.9: estimador de radiancia El ruido en la imagen final se reduce a medida que se aumenta la cantidad de fotones usados en el estimador de radiancia. Está demostrado que se puede obtener un estimador arbitrariamente bueno incluyendo una cantidad suficiente de fotones Desempeño y mejoras El algoritmo genera soluciones de iluminación global completas, de mayor calidad y en menor tiempo que otros métodos como Path-Tracing. Dada la popularidad de esta técnica, su robustez y su sencilla implementación, se presentaron muchas mejoras y extensiones. Entre ellas, se presentó una extensión para computar efectos de dispersión dentro de superficies traslucidas (sub-surface scattering) que simulan materiales como la piel o el mármol. También se desarrollaron extensiones para computar efectos atmosféricos tales como niebla o humos. Entre las mejoras propuestas se encuentra el algoritmo propuesto por Ward [17] denominado Irradiance Caching, que permite reducir el número de búsquedas de fotones cercanos para 27

34 computar los estimadores de radiancia interpolando los valores de otros estimadores calculados para puntos cercanos del espacio. 28

35 Capítulo 4 - Plataformas de Rendering de alto desempeño Estas plataformas comprenden aquellas comúnmente utilizadas para implementar sistemas de visualización que requieren el procesamiento de grandes volúmenes de datos en tiempos relativamente breves con el objetivo de sintetizar imágenes a partir de un modelo o escena. Tal es el caso de sistemas que requieren generar secuencias de imágenes para componer una animación, en donde es deseable una tasa de generación de cuadros cercana a los 15 cuadros por segundo para lograr una sensación de fluidez de movimiento propia de las secuencias cinematográficas. También es el caso de los sistemas de visualización interactivos (por ejemplo sistemas de realidad virtual), en donde la intervención del usuario mediante algún dispositivo de entrada modifica las variables del modelo (por ejemplo el cambio de posición o dirección observación de la escena), a partir de las cuales el sistema debe generar una nueva respuesta en forma de imagen. Las estrategias generalmente aplicadas en estos sistemas, apuntan a subdividir las tareas de cómputo en bloques independientes que puedan ser resueltos en forma simultánea o paralela por varias unidades de procesamiento. Los algoritmos de síntesis de imágenes suelen ser altamente paralelizables, lo cual significa que existe un alto de grado de independencia entre los datos a procesar y los resultados que estos generan, permitiendo su cómputo simultáneo en unidades separadas. Esta es una característica deseable ya que reduce la necesidad de comunicación o sincronización entre nodos y logra un máximo aprovechamiento del tiempo de procesamiento de cada unidad. En el caso de los algoritmos de iluminación global mencionados en el capítulo 3, la gran cantidad de cálculos y la complejidad de la escena a sintetizar, hacen que una CPU estándar (Intel Pentium IV 3.0 GHz) demore varios minutos y hasta incluso horas en generar una imagen. Dos caminos para encarar el problema planteado son: Implementación sobre clusters de PCs. Implementación sobre hardware gráfico programable (GPUs). A continuación se analizarán más en detalles ambas alternativas. 4.1 Clusters de PCs Son sistemas conformados por un conjunto de hosts o PCs interconectados mediante una red local (ver figura 4.1) de alta velocidad (Fast o Giga Ethernet) entre los cuales se distribuyen las tareas de cómputo para ser procesadas en forma simultanea por todos los nodos. Respecto al modo de subdividir las tareas de cómputo, algunos sistemas definen como unidad básica de trabajo un cuadro o imagen completa. Otros en cambio, explotan al paralelismo inter-cuadro, subdividiendo la ventana de visualización en porciones o fragmentos independientes. Estos son alimentados a cada nodo para luego ser integrados nuevamente en una sola imagen o ser provistos directamente a dispositivos de visualización conformados por múltiples pantallas en configuración de matriz. 29

36 Cada nodo de la red posee una memoria propia, debiendo intercambiar información o sincronizar su estado con el resto de la red mediante el pasaje de mensajes. Estos sistemas explotan el paralelismo de grano grueso, lo cual significa que las tareas a realizar por cada procesador, deben insumir un tiempo relativamente largo en comparación a los tiempos de comunicación entre nodos (latencia de la red y overhead de los mensajes). De otro modo, la eficiencia del sistema se vería reducida, ya que se desperdiciaría un alto porcentaje de tiempo en la comunicación. Figura 4.1. Cluster de PCs. Existen ejemplos como el caso del sistema Chromium [23], que provee un mecanismo genérico para manipular y procesar secuencias de comandos de una API grafica estándar. El sistema virtualiza los recursos disponibles en la red, permitiendo ejecutar por ejemplo una aplicación OpenGL (Open Graphics Library) estándar incluso sin necesidad de recompilarla. Otro caso es el de WireGL [24], un sistema de rendering distribuido, escalable, que permite a una aplicación realizar el proceso de rendering sobre una matriz de múltiples pantallas. No requiere el uso de una API específica y puede funcionar sobre hardware estándar de bajo costo. 4.2 Hardware gráfico programable Esté tipo de hardware también conocido como GPU (Graphics Processing Unit), comprende unidades dedicadas exclusivamente al procesamiento de gráficos 3D. A diferencia de las CPU, su diseño especializado permite procesar tareas gráficas en tiempos más breves. Aunque, las GPUs más recientes son capaces de procesar cientos de millones de vértices y miles de millones de fragmentos (estructura de datos que actualiza el color de cada píxel) por segundo, no están preparadas para computar algoritmos de propósito general, Es decir no es sencillo portar código de una aplicación escrito originalmente para una CPU. A pesar de ello, hoy en día, representan la mejor relación entre poder computacional por dólar. Además su desempeño crece a ritmos mayores que las CPU, dado que se duplica aproximadamente cada 12 meses. El crecimiento e innovación en este campo es impulsado principalmente por la industria de los video-juegos. A continuación se comparan las características de ambas unidades de procesamiento: 30

37 CPU Utiliza la memoria principal (RAM) del sistema. Arquitectura SISD (single instruction single data). Optimizada para alto desempeño de código genérico secuencial (caches y predicción de bifurcación). Su desempeño se duplicada cada 18 meses. Intel Pentium GHz Desempeño: 6 Gigaflops (teóricos) Memoria: 6 GB/seg (pico). Aptos para algoritmos de propósito general. Accesible en forma directa. Paradigmas de programación convencionales como: Programación Orientada a Objetos, Procedural, etc. GPU Utiliza una memoria dedicada contenida en la placa gráfica de la PC (memoria de texturas). Arquitectura SIMD (single instruction multiple data). Optimizada para procesamiento paralelo de código con alta proporción de operaciones aritméticas. Su desempeño se duplica cada 12 meses Nvidia GeforceFX 5900 Desempeño: 20 Gigaflops Memoria: 20 GB/seg (pico). Diseñadas para implementar algoritmos gráficos específicos Accesible mediante una API (Aplication Programming Interfase). Requiere el uso de nuevos paradigmas no convencionales, como Stream Programming. 31

38 Capítulo 5 - GPU (Graphics Processing Unit) El término fue acuñado por NVIDIA a finales de la década de los 90, cuando el término Video Graphics Array (VGA) Controller ya no definía de forma precisa las funciones del hardware gráfico en una PC. Se trata de un dispositivo capaz de manipular, procesar y mostrar gráficos de manera eficiente. Su arquitectura altamente paralela, conformada por múltiples unidades de ejecución, es capaz de realizar operaciones de punto flotante con 32 bits de precisión y trabajar simultáneamente sobre múltiples conjuntos de datos. Hoy en día, es un componente estándar del subsistema de video en la mayoría de las PC. En el siguiente cuadro se detalla su evolución: DFX Voodoo, NVIDIA TNT y ATI Rage. Realizan proceso de rasterización (conversión de forma vectorial a píxeles) de triángulos y mapeo de hasta 2 texturas. Menos de 10 millones de transistores por GPU. No son capaces de aplicar transformaciones a los vértices. Operaciones aritméticas muy limitadas. Implementan funciones de DirectX NVIDIA GeForce serie 2 y ATI Radeon. 25 millones de transistores por GPU. Incorporan capacidad de transformar vértices. Son configurables, pero aún no programables. Implementan funciones de DirectX NVIDIA GeForce series 3 / 4 y ATI Radeon serie R200. Incorporan programabilidad en el procesador de vértices. 60 millones de transistores por GPU. Poseen más opciones de configuración que las series anteriores, para procesar vértices, pero aún no son programables. Implementan funciones de DirectX NVIDIA GeForce serie FX y ATI Radeon serie R millones de transistores por GPU. Programabilidad a nivel vértices y fragmentos. Soporte completo de DirectX NVIDIA GeForce serie 6 y ATI Radeon serie R millones de transistores por GPU. Introducción de sistema SLI (Scalable Link Interface). Introducción de modo MRT (Múltiple Render Targets) NVIDIA GeForce serie 7 y ATI Radeon serie R millones de transistores por GPU. Mayor velocidad de reloj y ensanchamiento del pipeline (más unidades de procesamiento en paralelo). 32

39 2006 NVIDIA GeForce serie 8 y ATI Radeon serie R600. Arquitectura de unidades de procesamiento unificada (procesan vértices y fragmentos). 700 millones de transistores por GPU. Soporte completo para DirectX En futuras generaciones se espera que los recursos de la GPU se generalicen cada vez más permitiendo aún mayor grado de programabilidad. 5.1 El pipeline gráfico Un pipeline consta de una secuencia de etapas que operan en un orden determinado (similar a una línea de montaje industrial). Cada etapa recibe en su entrada el resultado del proceso de la etapa anterior y todas las etapas en conjunto pueden operar simultáneamente sobre distintos elementos. El pipeline gráfico puede ser pensado como una caja negra por donde fluyen conjuntos de datos que sufren transformaciones para generar como resultado final una imagen 2D o un mapa de bits. Aunque en realidad no se trata de una caja negra ya que uno puede controlar la forma en que los datos son transformados. Este pipeline recibe en su entrada los vértices correspondientes a la geometría de la escena 3D. Cada vértice es una estructura de datos que contiene las coordenadas homogéneas de un punto en el espacio 3D y otros atributos opcionales que pueden ser escalares o vectoriales (de 2, 3 o 4 componentes) que se definen en función de la aplicación que se quiera implementar. Los principales son: Posición: coordenadas homogéneas del vértice. Normal: vector que indica la dirección en que apunta la superficie, en el punto definido por la posición. Este dato es útil para cálculos de iluminación. Color: este dato luego será utilizado para sombrear el área de pantalla que cubra la primitiva geométrica según el tipo de algoritmo de sombreado que se use. Puede haber más de un color definido por cada vértice. Coordenadas de textura: un par de coordenadas reales mapean un punto sobre una textura 2D, que se utilizará luego para el sombreado de la primitiva geométrica. Pueden utilizarse varios pares de coordenadas de vértice para indexar diferentes texturas. Además, el usuario puede definir otros atributos de utilidad para modelar características de los materiales de las superficies representadas. Sobre los vértices se aplican una serie de operaciones matemáticas denominadas transformaciones de vértices que incluyen traslaciones, rotaciones, cambios de escala y proyecciones. Al utilizar un sistema de coordenadas homogéneas, todas las transformaciones pueden representarse por matrices (de 4 x 4) que al multiplicarlas por los vectores de coordenadas de los vértices dan como resultado el vector transformado. Otra ventaja de las coordenadas homogéneas, es la posibilidad de encadenar varias transformaciones multiplicando sus matrices asociadas. El objetivo de las transformaciones es traducir las coordenadas de la escena 3D del espacio de coordenadas abstracto de cada objeto (modelo o patrón de un objeto 3D) a las coordenadas 2D en el denominado plano de vista o plano de visualización. 33

40 Esta conversión de coordenadas se subdivide en varias fases: Transformación de modelado: implica posicionar, rotar y escalar el objeto respecto del resto de la escena (traducir coordenadas del modelo a coordenadas del mundo). Transformación de vista: implica convertir las coordenadas de toda la escena a un sistema con origen en el punto de vista y la dirección de la cámara o el ojo que observa la escena. Transformación de proyección: implica convertir coordenadas del espacio tridimensional de las coordenadas de vista a coordenadas en un plano de proyección bidimensional. Existen varios tipos de proyección como ser la perspectiva o la ortográfica. La matriz de proyección se define a partir de un denominado volumen de vista (view frustum) que establece como mapear una porción de espacio sobre el plano de proyección. Las 3 transformaciones se aplican en orden a cada vértice de la escena. Luego, los vértices transformados son combinados en la etapa de ensamblado, para formar las que se conocen como primitivas geométricas (ver figura 5.1) que comprenden: puntos, líneas, triángulos, etc. Figura 5.1: Primitivas geométricas. Para continuar, el proceso de rasterización descompone las primitivas en elementos del tamaño de píxeles, llamados fragmentos que intervienen en la definición del color de los píxeles de la imagen 2D generada a la salida del pipeline. Figura 5.2: Representación del pipeline gráfico. 34

41 Un fragmento es una estructura de datos asociada a la ubicación de un píxel de la imagen de salida. También se puede pensar al fragmento como un píxel potencial ya que algunos son descartados. En la figura 5.2, se detalla la evolución de los datos a lo largo de las etapas. En la industria, OpenGL y Direct3D son los dos modelos de pipelines gráficos ampliamente aceptados como estándares. 5.2 El pipeline gráfico programable En la actualidad la mayoría de las etapas del pipeline gráfico son implementadas directamente en el hardware, exhibiendo un alto grado de programabilidad. Esto significa que los algoritmos que implantan son modificables y son suministrados por la aplicación de alto nivel como parte del flujo de datos de entrada del pipeline. Incluso es posible ingresar secuencias que intercalan datos geométricos y los programas que deban procesarlos, permitiendo el uso de diferentes algoritmos para distintos objetos de la escena. En las primeras generaciones de GPUs dichos programas estaban grabados en el hardware (no eran modificables) y eran solo configurables en forma limitada. Los programas suministrados al pipeline programable son de dos tipos: los programas de vértices (aplican las transformaciones a los vértices) y los programas de fragmentos (computan los datos que definirán los colores de los píxeles). Ambos tipos de programas pueden ser escritos en diversos lenguajes como: Cg (C for Graphics): es un lenguaje [29] de sombreado (shading language) de alto nivel desarrollado por NVIDIA y Microsoft. Está basado en el lenguaje C y tiene algunos tipos de datos agregados, adecuados para programar en la GPU. Es un lenguaje especializado. Un compilador lo traduce al assembler o código de máquina. HLSL (High Level Shading Language): desarrollado por Microsoft para utilizarse con Direct3D, es muy similar a Cg. GLSL (OpenGL Shading Language): fue creado por OpenGL Architecture Review Board y tiene características muy similares a los dos anteriores. La figura 5.3 ilustra la estructura del pipeline gráfico programable. El proceso comienza cuando la aplicación de alto nivel envía a la GPU un conjunto de vértices. En la primera etapa el procesador de vértices los trasforma de acuerdo a un programa de vértices y define el valor del resto de sus atributos. Las transformaciones tienen como objetivo traducir la posición de cada vértice, del sistema de coordenadas del objeto modelado (tridimensional) al sistema de coordenadas de la pantalla (bidimensional) aplicando un conjunto de operaciones aritméticas representadas por productos de matrices (de traslación, escalado, rotación y proyección). 35

42 Figura 5.3: El pipeline gráfico programable. En la segunda etapa (ensamblado y rasterización) se ensamblan los vértices transformados (vértices con coordenadas en el espacio de pantalla) para formar la primitiva geométrica. A la primitiva ensamblada se le aplican los procesos de Clipping y Culling. El proceso de Clipping, se encarga de recortar la primitiva geométrica, para remover las porciones que quedan fuera del área que se pretende visualizar (denominada ventana del mundo). El proceso de Culling se encarga de descartar aquellas primitivas que no deben dibujarse ya que se encuentran de espaldas al observador de la escena. Las primitivas geométricas que no son descartadas, pasan al proceso de rasterización. Este consiste en determinar qué píxeles del dispositivo de salida son cubiertos por la primitiva geométrica y generar los correspondientes fragmentos. Los fragmentos son estructuras de datos transitorias que almacenan atributos como: Posición: ubicación del píxel al que está asociado. Son un par de coordenadas enteras. Profundidad: es la distancia en el eje Z (eje perpendicular al plano de vista) al origen del punto de observación. Color: surge de la interpolación lineal de los atributos de color de los vértices que dieron origen al fragmento. Coordenadas de texturas: del mismo modo que el color, su valor es interpolado linealmente. Además un fragmento puede poseer otros atributos especialmente definidos por la aplicación como por ejemplo varios colores y pares de coordenadas de texturas adicionales. La tercera etapa, habitualmente llamada de sombreado (porque tradicionalmente define el color de los píxeles según algún modelo de iluminación) es implementada por el procesador de fragmentos según un programa, que da como resultado el color del píxel asociado. El programa resuelve el color a partir de los atributos del fragmento y otros datos disponibles en la memoria de la GPU, como texturas y parámetros globales definidos por la aplicación. La información almacenada en texturas se accede mediante 36

43 índices computados por el programa a partir, por ejemplo, de las coordenadas de texturas. Para finalizar, los fragmentos pasan por una serie de pruebas (Scissor Test, Alpha Test, Stencil Test y Depth Test) y procesos (Blending y Dithering) que son parte estándar de OpenGL y Direct3D para evaluar cuales producirán una actualización del píxel correspondiente en el buffer de salida y cuales deben ser descartados. 5.3 Modelo de memoria de la GPU Existen tres áreas de almacenamiento de datos en una GPU: Memoria para datos de vértices: este espacio es esencialmente utilizado para leer los atributos de los vértices desde el procesador de vértices. Estos son cargados desde la aplicación ejecutada en la CPU. En las GPUs más recientes es posible escribir o copiar datos en esta memoria, a partir de un programa de fragmentos (modo copy-to-vertex-array). Framebuffers: se utilizan principalmente para escribir los resultados generados por el procesador de fragmentos (hasta 16 valores de punto flotante de 32 bits, utilizando el modo MRT) y luego ser visualizados en el dispositivo de salida. Memoria de texturas: su nombre se debe a que surgió como un espacio para almacenar información de imágenes 2D que representan muestras de colores y atributos de superficies. Está optimizada para acceso mediante coordenadas 2D. Es la que se utiliza como memoria de trabajo en programas de fragmentos que implican múltiples pasadas permitiendo hacer ciclos de lectura y escritura de datos. Hoy en día es posible utilizarla para otros datos, que no necesariamente están relacionados con imágenes o colores. Por ejemplo, es posible almacenar estructuras de datos más complejas, como listas, arreglos 1D y 3D, etc. Estas estructuras requieren implementar mecanismos de traducción de direcciones y conversión de tipos de datos, ya que la forma primitiva de organizar los datos es en arreglos bidimensionales de valores de punto flotante con tamaño fijo. La siguiente figura 5.4 ilustra la relación entre las 3 áreas de memoria, los procesadores de vértices, fragmentos y la CPU. Figura 5.4: Áreas de memoria en la GPU. 37

44 Se espera que este modelo de memoria siga evolucionando hacia un modelo más general que permita una mayor flexibilidad en las operaciones de lectura y escritura. 5.4 El procesador de vértices Es el encargado de ejecutar los programas de vértices (vertex programs). El proceso comienza con la carga de los atributos de los vértices en registros de entrada. A medida que se ejecutan las instrucciones del programa de vértices, los resultados intermedios son almacenados en registros temporales. Además el programa tiene acceso a registros de solo lectura en donde se almacenan constantes globales de la aplicación (existe una sola instancia para todos los programas de vértices). Las instrucciones disponibles incluyen operaciones matemáticas sobre vectores de punto flotante de hasta 4 componentes (X, Y, Z, W), instrucciones de control de flujo, de salto y lazos. Las últimas generaciones de GPUs permiten el acceso aleatorio a memoria de texturas desde el programa de vértices. La salida del programa son las coordenadas transformadas del vértice y el resto de sus atributos que son almacenados en registros de sólo-escritura para luego ser provistos al rasterizador. Existe un límite en la cantidad total de instrucciones, por ejemplo, para las GPUs NVIDIA de la serie GeForce 6 es de 512 instrucciones estáticas (las del programa compilado) y dinámicas (son las que realmente se ejecutan al multiplicar los bloques que incluyen ciclos por la cantidad total de ciclos especificados). Es importante destacar que por cada vértice de la escena se ejecuta una instancia independiente del programa de vértices, pudiéndose así procesar varios vértices en paralelo dependiendo de la cantidad de unidades de procesamiento de vértices que posea la GPU. 5.5 El rasterizador Primero el rasterizador ensambla los vértices transformados por la etapa anterior para conformar la primitiva geométrica de acuerdo a un comando suministrado por la aplicación que indica como deben vincularse los vértices, para formar un polígono determinado. Figura 5.5: Proceso Clipping, Culling y Rasterización. Sobre el plano de vista, se define un área rectangular denominada ventana del mundo, que representa la zona de interés que se pretende visualizar. 38

Fundamentos de Materiales - Prácticas de Laboratorio Práctica 9. Práctica 9 DETERMINACIÓN DEL ÍNDICE DE REFRACCIÓN DE MATERIALES TRANSPARENTES

Fundamentos de Materiales - Prácticas de Laboratorio Práctica 9. Práctica 9 DETERMINACIÓN DEL ÍNDICE DE REFRACCIÓN DE MATERIALES TRANSPARENTES Práctica 9 DETERMINACIÓN DEL ÍNDICE DE REFRACCIÓN DE MATERIALES TRANSPARENTES 1. Objetivos docentes Familiarizarse con las propiedades ópticas de refracción y reflexión de materiales transparentes. 2.

Más detalles

Introducción Iluminación Global. Presentado por Eduardo Roa

Introducción Iluminación Global. Presentado por Eduardo Roa Introducción Iluminación Global Presentado por Eduardo Roa Realistic Image Synthesis Realistic Image Synthesis es el proceso de crear una imagen hecha por computadora que sea indistinguible de una imagen

Más detalles

Integración de Monte Carlo Técnicas Avanzadas de Gráficos en 3D

Integración de Monte Carlo Técnicas Avanzadas de Gráficos en 3D Integración de Monte Carlo Técnicas Avanzadas de Gráficos en 3D Miguel Ángel Otaduy 26 Abril 2010 Contexto Cálculo de la integral de radiancia reflejada en la ecuación de rendering Cálculo de la integral

Más detalles

Estructuras algebraicas

Estructuras algebraicas Tema 2 Estructuras algebraicas básicas 2.1. Operación interna Definición 29. Dados tres conjuntos A, B y C, se llama ley de composición en los conjuntos A y B y resultado en el conjunto C, y se denota

Más detalles

FORMACIÓN DE IMÁGENES CON LENTES

FORMACIÓN DE IMÁGENES CON LENTES Laboratorio de Física de Procesos Biológicos FORMACIÓN DE IMÁGENES CON LENTES Fecha: 19/12/2005 1. Objetivo de la práctica Estudio de la posición y el tamaño de la imagen de un objeto formada por una lente

Más detalles

3D Studio. 3D Studio

3D Studio. 3D Studio Iluminación avanzada Ray Tracing: scan line renderer Light tracer Radiosidad Mental Ray: ray tracing utilizando photon maps Iray QuickSilver Scan line renderer: con el material ray trace obtenemos reflexiones

Más detalles

PARÁBOLA. 1) para la parte positiva: 2) para la parte negativa: 3) para la parte positiva: 4) para la parte negativa:

PARÁBOLA. 1) para la parte positiva: 2) para la parte negativa: 3) para la parte positiva: 4) para la parte negativa: Página 90 5 LA PARÁBOLA 5.1 DEFINICIONES La parábola es el lugar geométrico 4 de todos los puntos cuyas distancias a una recta fija, llamada, y a un punto fijo, llamado foco, son iguales entre sí. Hay

Más detalles

MUESTREO TIPOS DE MUESTREO

MUESTREO TIPOS DE MUESTREO MUESTREO En ocasiones en que no es posible o conveniente realizar un censo (analizar a todos los elementos de una población), se selecciona una muestra, entendiendo por tal una parte representativa de

Más detalles

FLUJO LUMINOSO. Figura 16. Curva de sensibilidad del ojo humano.

FLUJO LUMINOSO. Figura 16. Curva de sensibilidad del ojo humano. FLUJO LUMINOSO La mayoría de las fuentes de luz emiten energía electromagnética distribuida en múltiples longitudes de onda. Se suministra energía eléctrica a una lámpara, la cual emite radiación. Esta

Más detalles

Tema 2. Espacios Vectoriales. 2.1. Introducción

Tema 2. Espacios Vectoriales. 2.1. Introducción Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por

Más detalles

Movimiento a través de una. José San Martín

Movimiento a través de una. José San Martín Movimiento a través de una curva José San Martín 1. Introducción Una vez definida la curva sobre la cual queremos movernos, el siguiente paso es definir ese movimiento. Este movimiento se realiza mediante

Más detalles

Introducción al calor y la luz

Introducción al calor y la luz Introducción al calor y la luz El espectro electromagnético es la fuente principal de energía que provee calor y luz. Todos los cuerpos, incluído el vidrio, emiten y absorben energía en forma de ondas

Más detalles

Medidas de tendencia central o de posición: situación de los valores alrededor

Medidas de tendencia central o de posición: situación de los valores alrededor Tema 10: Medidas de posición y dispersión Una vez agrupados los datos en distribuciones de frecuencias, se calculan unos valores que sintetizan la información. Estudiaremos dos grandes secciones: Medidas

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

4 Localización de terremotos

4 Localización de terremotos 513430 - Sismología 27 4 Localización de terremotos 4.1 Localización de sismos locales Fig 27: Gráfico de la ruptura en la superficie de una falla. La ruptura se propaga desde el punto de la nucleación,

Más detalles

ESTIMACIÓN. puntual y por intervalo

ESTIMACIÓN. puntual y por intervalo ESTIMACIÓN puntual y por intervalo ( ) Podemos conocer el comportamiento del ser humano? Podemos usar la información contenida en la muestra para tratar de adivinar algún aspecto de la población bajo estudio

Más detalles

Sistemas de Información Geográficos (SIG o GIS)

Sistemas de Información Geográficos (SIG o GIS) Sistemas de Información Geográficos (SIG o GIS) 1) Qué es un SIG GIS? 2) Para qué sirven? 3) Tipos de datos 4) Cómo trabaja? 5) Modelos de datos, Diseño Conceptual 6) GeoDataase (GD) 7) Cómo evaluamos

Más detalles

EXAMEN FÍSICA 2º BACHILLERATO TEMA 4: ÓPTICA

EXAMEN FÍSICA 2º BACHILLERATO TEMA 4: ÓPTICA INSTRUCCIONES GENERALES Y VALORACIÓN La prueba consiste de dos opciones, A y B, y el alumno deberá optar por una de las opciones y resolver las tres cuestiones y los dos problemas planteados en ella, sin

Más detalles

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de CAPITULO 4 JUSTIFICACION DEL ESTUDIO En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de estudios previos y los alcances que justifican el presente estudio. 4.1. Justificación.

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

FICHA DE CONSULTA DE EXCURSIÓN POR LA RED ELÉCTRICA

FICHA DE CONSULTA DE EXCURSIÓN POR LA RED ELÉCTRICA FICHA DE CONSULTA Sumario 1. Glosario 1.1. Siglas 3 1.2. Términos 3 2. Paneles solares 2.1. Qué es un panel solar? 4 2.2. Cómo funciona un panel solar? 6 2 1. Glosario 1.1. Siglas 1.2. Términos W/m² Watts

Más detalles

ANÁLISIS DEL ESTADO DE POLARIACIÓN

ANÁLISIS DEL ESTADO DE POLARIACIÓN SESIÓN 5: ANÁLISIS DEL ESTADO DE POLARIACIÓN TRABAJO PREVIO CONCEPTOS FUNDAMENTALES Luz natural Luz con el vector eléctrico vibrando en todas las direcciones del plano perpendicular a la dirección de propagación.

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

El espectro electromagnético y los colores

El espectro electromagnético y los colores Se le llama espectro visible o luz visible a aquella pequeña porción del espectro electromagnético que es captada por nuestro sentido de la vista. La luz visible está formada por ondas electromagnéticas

Más detalles

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido Tema 3 Medidas de tendencia central Contenido 31 Introducción 1 32 Media aritmética 2 33 Media ponderada 3 34 Media geométrica 4 35 Mediana 5 351 Cálculo de la mediana para datos agrupados 5 36 Moda 6

Más detalles

Cap. 24 La Ley de Gauss

Cap. 24 La Ley de Gauss Cap. 24 La Ley de Gauss Una misma ley física enunciada desde diferentes puntos de vista Coulomb Gauss Son equivalentes Pero ambas tienen situaciones para las cuales son superiores que la otra Aquí hay

Más detalles

8.1. Introducción... 1. 8.2. Dependencia/independencia estadística... 2. 8.3. Representación gráfica: diagrama de dispersión... 3. 8.4. Regresión...

8.1. Introducción... 1. 8.2. Dependencia/independencia estadística... 2. 8.3. Representación gráfica: diagrama de dispersión... 3. 8.4. Regresión... Tema 8 Análisis de dos variables: dependencia estadística y regresión Contenido 8.1. Introducción............................. 1 8.2. Dependencia/independencia estadística.............. 2 8.3. Representación

Más detalles

Ing. Benoît FROMENT MODULO 4 4.2 FOTOGRAFIAS AEREAS

Ing. Benoît FROMENT MODULO 4 4.2 FOTOGRAFIAS AEREAS 4.2 FOTOGRAFIAS AEREAS 1 - DESARROLLO DE LA FOTOGRAFIA AEREA El hombre, para enfrentar los problemas que le plantea la organización y el desarrollo del medio que habita, se ha visto obligado a crear novedosas

Más detalles

1. INTRODUCCIÓN 1.1 INGENIERÍA

1. INTRODUCCIÓN 1.1 INGENIERÍA 1. INTRODUCCIÓN 1.1 INGENIERÍA Es difícil dar una explicación de ingeniería en pocas palabras, pues se puede decir que la ingeniería comenzó con el hombre mismo, pero se puede intentar dar un bosquejo

Más detalles

Covarianza y coeficiente de correlación

Covarianza y coeficiente de correlación Covarianza y coeficiente de correlación Cuando analizábamos las variables unidimensionales considerábamos, entre otras medidas importantes, la media y la varianza. Ahora hemos visto que estas medidas también

Más detalles

I.E.S. Sierra de Mijas Curso 2014-15 PROBLEMAS DE SELECTIVIDAD DEL TEMA 4: ÓPTICA

I.E.S. Sierra de Mijas Curso 2014-15 PROBLEMAS DE SELECTIVIDAD DEL TEMA 4: ÓPTICA PROBLEMAS DE SELECTIVIDAD DEL TEMA 4: ÓPTICA Selectividad Andalucía 2001: 1. a) Indique qué se entiende por foco y por distancia focal de un espejo. Qué es una imagen virtual? b) Con ayuda de un diagrama

Más detalles

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios "Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se

Más detalles

CONCLUSIONES GENERALES

CONCLUSIONES GENERALES 7 CONCLUSIONES GENERALES CONCLUSIONES. La intención de realizar un trabajo como este, era la de conocer con mayor profundidad, las posibilidades de la vegetación como un instrumento para mejorar la condiciones

Más detalles

SUPERFICIE ESPECULAR Y LAMBERTIANA

SUPERFICIE ESPECULAR Y LAMBERTIANA SUPERFICIE ESPECULAR Y LAMBERTIANA Especular: es la superficie ideal en la que se cumple perfectamente la ley de la reflexión (ángulo incidente = ángulo reflejado). Lambertiana: es la superficie, también

Más detalles

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ ELECTRÓNICA DIGITAL DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ IES TRINIDAD ARROYO DPTO. DE ELECTRÓNICA ÍNDICE ÍNDICE... 1 1. LIMITACIONES DE LOS CONTADORES ASÍNCRONOS... 2 2. CONTADORES SÍNCRONOS...

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

Ecuaciones de primer grado con dos incógnitas

Ecuaciones de primer grado con dos incógnitas Ecuaciones de primer grado con dos incógnitas Si decimos: "las edades de mis padres suman 120 años", podemos expresar esta frase algebraicamente de la siguiente forma: Entonces, Denominamos x a la edad

Más detalles

Apoyo para la preparación de los estudios de Ingeniería y Arquitectura Física (Preparación a la Universidad) Unidad 4: Vectores

Apoyo para la preparación de los estudios de Ingeniería y Arquitectura Física (Preparación a la Universidad) Unidad 4: Vectores Apoyo para la preparación de los estudios de Ingeniería y Arquitectura Física (Preparación a la Universidad) Unidad 4: Vectores Universidad Politécnica de Madrid 5 de marzo de 2010 2 4.1. Planificación

Más detalles

MEDICION DEL TRABAJO

MEDICION DEL TRABAJO MEDICION DEL TRABAJO Habíamos dicho al comenzar el curso que habían 4 técnicas que permiten realizar una medición del trabajo 1 Técnicas Directas: - Estudio de tiempos con cronómetro - Muestreo del trabajo

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i.

Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i. Filtros Digitales Un filtro general de respuesta al impulso finita con n etapas, cada una con un retardo independiente d i y ganancia a i. En electrónica, ciencias computacionales y matemáticas, un filtro

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

UNIDADES DE ALMACENAMIENTO DE DATOS

UNIDADES DE ALMACENAMIENTO DE DATOS 1.2 MATÉMATICAS DE REDES 1.2.1 REPRESENTACIÓN BINARIA DE DATOS Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS. Los computadores sólo

Más detalles

Información Técnica. Vidrio de Control Solar. Control Solar usando vidrio. IT-021.3-13 Criterios Básicos de Vidrios de Control Solar 18-Febrero-13

Información Técnica. Vidrio de Control Solar. Control Solar usando vidrio. IT-021.3-13 Criterios Básicos de Vidrios de Control Solar 18-Febrero-13 Información Técnica. Vidrio de Control Solar. Hoy, más que nunca, existen diversas opciones de vidrio para aplicación arquitectónica. Los profesionales del diseño disponen de una gran variedad de productos

Más detalles

Estadística con Excel Informática 4º ESO ESTADÍSTICA CON EXCEL

Estadística con Excel Informática 4º ESO ESTADÍSTICA CON EXCEL 1. Introducción ESTADÍSTICA CO EXCEL La estadística es la rama de las matemáticas que se dedica al análisis e interpretación de series de datos, generando unos resultados que se utilizan básicamente en

Más detalles

1.1. Introducción y conceptos básicos

1.1. Introducción y conceptos básicos Tema 1 Variables estadísticas Contenido 1.1. Introducción y conceptos básicos.................. 1 1.2. Tipos de variables estadísticas................... 2 1.3. Distribuciones de frecuencias....................

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Problemas de Óptica. PAU (PAEG)

Problemas de Óptica. PAU (PAEG) 1. (Junio 09 ) Observamos una pequeña piedra que esta incrustada bajo una plancha de hielo, razona si su profundidad aparente es mayor o menor que su profundidad real. Traza un diagrama de rayos para justificar

Más detalles

PROBLEMAS LUZ Y ÓPTICA SELECTIVIDAD

PROBLEMAS LUZ Y ÓPTICA SELECTIVIDAD PROBLEMAS LUZ Y ÓPTICA SELECTIVIDAD 1.- Un objeto luminoso de 2mm de altura está situado a 4m de distancia de una pantalla. Entre el objeto y la pantalla se coloca una lente esférica delgada L, de distancia

Más detalles

CÁLCULO PARA LA INGENIERÍA 1

CÁLCULO PARA LA INGENIERÍA 1 CÁLCULO PARA LA INGENIERÍA 1 PROBLEMAS RESUELTOS Tema 3 Derivación de funciones de varias variables 3.1 Derivadas y diferenciales de funciones de varias variables! 1. Derivadas parciales de primer orden.!

Más detalles

CAPITULO I EL PROBLEMA. En los procesos industriales exigen el control de la fabricación de los

CAPITULO I EL PROBLEMA. En los procesos industriales exigen el control de la fabricación de los CAPITULO I EL PROBLEMA 1.- PLANTEAMIENTO DEL PROBLEMA En los procesos industriales exigen el control de la fabricación de los diversos productos obtenidos. Estos procesos son muy variados y abarcan diferentes

Más detalles

35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico

35 Facultad de Ciencias Universidad de Los Andes Mérida-Venezuela. Potencial Eléctrico q 1 q 2 Prof. Félix Aguirre 35 Energía Electrostática Potencial Eléctrico La interacción electrostática es representada muy bien a través de la ley de Coulomb, esto es: mediante fuerzas. Existen, sin embargo,

Más detalles

COORDENADAS CURVILINEAS

COORDENADAS CURVILINEAS CAPITULO V CALCULO II COORDENADAS CURVILINEAS Un sistema de coordenadas es un conjunto de valores que permiten definir unívocamente la posición de cualquier punto de un espacio geométrico respecto de un

Más detalles

MINI ENSAYO DE FÍSICA Nº 4

MINI ENSAYO DE FÍSICA Nº 4 MINI ENSAYO DE FÍSICA Nº 4 TEMA: ONDAS Y ÓPTICA 1. Con respecto a las ondas mecánicas, cuál de las siguientes afirmaciones es correcta? A) Las tres afirmaciones siguientes son verdaderas. B) Si se refractan

Más detalles

FIBRA OPTICA ESCALONADA

FIBRA OPTICA ESCALONADA FIBRA OPTICA ESCALONADA En este tipo de fibra óptica multimodo viajan varios rayos ópticos simultáneamente. Estos se reflejan con diferentes ángulos sobre las paredes del núcleo, por lo que recorren diferentes

Más detalles

ANÁLISIS DE DATOS NO NUMERICOS

ANÁLISIS DE DATOS NO NUMERICOS ANÁLISIS DE DATOS NO NUMERICOS ESCALAS DE MEDIDA CATEGORICAS Jorge Galbiati Riesco Los datos categóricos son datos que provienen de resultados de experimentos en que sus resultados se miden en escalas

Más detalles

Capítulo 2 Silueta. Figura 2.1 Tetera capturada por la cámara con la silueta resaltada

Capítulo 2 Silueta. Figura 2.1 Tetera capturada por la cámara con la silueta resaltada Capítulo 2 Silueta 2.1 Silueta La silueta de un objeto es muy importante porque es lo que nos da las pistas visuales de cómo es que está formado, nos dice dónde están sus límites y ayuda a diferenciar

Más detalles

Óptica Geométrica. Espejos Planos

Óptica Geométrica. Espejos Planos Óptica Geométrica Espejos Planos Espejos planos Qué son? Un espejo plano es una superficie plana muy pulimentada que puede reflejar la luz que le llega con una capacidad reflectora de la intensidad de

Más detalles

3.1 DEFINICIÓN. Figura Nº 1. Vector

3.1 DEFINICIÓN. Figura Nº 1. Vector 3.1 DEFINICIÓN Un vector (A) una magnitud física caracterizable mediante un módulo y una dirección (u orientación) en el espacio. Todo vector debe tener un origen marcado (M) con un punto y un final marcado

Más detalles

QUERCUS PRESUPUESTOS MANUAL DEL USO

QUERCUS PRESUPUESTOS MANUAL DEL USO QUERCUS PRESUPUESTOS MANUAL DEL USO 2 Tabla de Contenido 1 Introducción 1 1.1 General 1 1.1.1 Que es Quercus Presupuestos? 1 1.1.2 Interfaz 1 1.1.3 Árbol de Navegación 2 1.1.4 Estructura de Datos de un

Más detalles

Propagación de la luz en los medios no conductores. Leyes de la reflexión y de la refracción

Propagación de la luz en los medios no conductores. Leyes de la reflexión y de la refracción Capítulo 3 Propagación de la luz en los medios no conductores. Leyes de la reflexión y de la refracción 3.1 Índicederefracción El efecto de la presencia de un dieléctrico lineal, homogéneo e isótropo en

Más detalles

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de

CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de CAPÍTULO VI PREPARACIÓN DEL MODELO EN ALGOR. En este capítulo, se hablará acerca de los pasos a seguir para poder realizar el análisis de cualquier modelo en el software Algor. La preparación de un modelo,

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

Planeación de la Recolección de Datos. Planeacion de Recoleccion de Datos

Planeación de la Recolección de Datos. Planeacion de Recoleccion de Datos Planeación de la Recolección de Datos Qué Son los datos? Recolección de Datos Contenido Por Qué Es Importante la Recolección de Datos? Estrategias de Muestreo Estrategias para la Definición de Datos Base

Más detalles

Capitulo V Administración de memoria

Capitulo V Administración de memoria Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal

Más detalles

INTERFERENCIA DE ONDAS DE LUZ

INTERFERENCIA DE ONDAS DE LUZ INTERFERENCIA DE ONDAS DE LUZ Objetivo: Material: Deducir la naturaleza de las ondas de luz analizando patrones de interferencia. 1. Interferómetro de precisión. 2. Láser diodo. 3. Plataforma mecánica

Más detalles

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

SEDO: SOFTWARE EDUCATIVO DE MATEMÁTICA NUMÉRICA. Lic. Maikel León Espinosa. mle@uclv.edu.cu

SEDO: SOFTWARE EDUCATIVO DE MATEMÁTICA NUMÉRICA. Lic. Maikel León Espinosa. mle@uclv.edu.cu EDU082 Resumen SEDO: SOFTWARE EDUCATIVO DE MATEMÁTICA NUMÉRICA Lic. Maikel León Espinosa mle@uclv.edu.cu Departamento de Ciencia de la Computación Universidad Central Marta Abreu de Las Villas Carretera

Más detalles

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia. DISCOS RAID Raid: redundant array of independent disks, quiere decir conjunto redundante de discos independientes. Es un sistema de almacenamiento de datos que utiliza varias unidades físicas para guardar

Más detalles

Estructura de Computadores I Arquitectura de los MMOFPS

Estructura de Computadores I Arquitectura de los MMOFPS UNIVERSIDAD TÉCNICA FEDERICO SANTA MARÍA Estructura de Computadores I Arquitectura de los MMOFPS Integrantes: Luis Castro Valentina Yévenes RESUMEN Los MMOG (Massively Multiplayer Online Game), son juegos

Más detalles

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS EtsiIngenio Inteligencia Artificial 1 Raposo López Alejandro Sánchez Palacios Manuel Resumen dibujo de grafos mediante algoritmos genéticos

Más detalles

Apunte básico para Fotografía Estenopeica

Apunte básico para Fotografía Estenopeica Apunte básico para Fotografía Estenopeica Contenidos Formación de Imágenes con lente y con estenopo Estenopo óptimo: fórmulas y tablas Obtención del número f Geometría de la cámara estenopeica Cálculo

Más detalles

CAPÍTULO II. FUENTES Y DETECTORES ÓPTICOS. Uno de los componentes clave en las comunicaciones ópticas es la fuente de

CAPÍTULO II. FUENTES Y DETECTORES ÓPTICOS. Uno de los componentes clave en las comunicaciones ópticas es la fuente de CAPÍTULO II. FUENTES Y DETECTORES ÓPTICOS. 2.1 INTRODUCCIÓN. Uno de los componentes clave en las comunicaciones ópticas es la fuente de luz monocromática. En sistemas de comunicaciones ópticas, las fuentes

Más detalles

EL MODELO DE DATOS RASTER

EL MODELO DE DATOS RASTER EL MODELO DE DATOS RASTER El modelo de datos raster, como señala Bosque (1992), es el modelo de datos complementario al modelo vectorial presentado anteriormente. Tiene como principal característica el

Más detalles

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama.

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama. Diagrama de Flujo La presentación gráfica de un sistema es una forma ampliamente utilizada como herramienta de análisis, ya que permite identificar aspectos relevantes de una manera rápida y simple. El

Más detalles

Aproximación local. Plano tangente. Derivadas parciales.

Aproximación local. Plano tangente. Derivadas parciales. Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 004-005 Aproximación local. Plano tangente. Derivadas parciales. 1. Plano tangente 1.1. El problema de la aproximación

Más detalles

GRUPOS PUNTUALES. 4.- Si un plano de simetría contiene un eje de orden n, existen n planos que contienen el eje. formando entre ellos ángulos de

GRUPOS PUNTUALES. 4.- Si un plano de simetría contiene un eje de orden n, existen n planos que contienen el eje. formando entre ellos ángulos de GRUPOS PUNTUALES Existen algunas relaciones entre elementos de simetría que pueden ser útiles a la hora de deducir cuales son los conjuntos de estos que forman grupo. 1.- Todos los elementos de simetría

Más detalles

UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano.

UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano. UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano. EL PLANO CARTESIANO. El plano cartesiano está formado

Más detalles

Seminario Universitario Material para estudiantes. Física. Unidad 2. Vectores en el plano. Lic. Fabiana Prodanoff

Seminario Universitario Material para estudiantes. Física. Unidad 2. Vectores en el plano. Lic. Fabiana Prodanoff Seminario Universitario Material para estudiantes Física Unidad 2. Vectores en el plano Lic. Fabiana Prodanoff CONTENIDOS Vectores en el plano. Operaciones con vectores. Suma y producto por un número escalar.

Más detalles

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas. Tema 1 Matrices Estructura del tema. Conceptos básicos y ejemplos Operaciones básicas con matrices Método de Gauss Rango de una matriz Concepto de matriz regular y propiedades Determinante asociado a una

Más detalles

Circuito RL, Respuesta a la frecuencia.

Circuito RL, Respuesta a la frecuencia. Circuito RL, Respuesta a la frecuencia. A.M. Velasco (133384) J.P. Soler (133380) O.A. Botina (133268) Departamento de física, facultad de ciencias, Universidad Nacional de Colombia Resumen. Se estudia

Más detalles

El pipeline gráfico Figura 3.1

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,

Más detalles

Función Logaritmo, dominio y traslación. Guía del profesor.

Función Logaritmo, dominio y traslación. Guía del profesor. Función Logaritmo, dominio y traslación. Guía del profesor. Contenidos: Función logaritmo y su representación gráfica correspondiente. Análisis de las expresiones algebraicas y sus respectivas representaciones

Más detalles

SEÑALES Y ESPECTROS SEÑALES Y ESPECTROS 1

SEÑALES Y ESPECTROS SEÑALES Y ESPECTROS 1 SEÑALES Y ESPECTROS INTRODUCCIÓN. TERMINOLOGÍA USADA EN TRANSMISIÓN DE DATOS. FRECUENCIA, ESPECTRO Y ANCHO DE BANDA. DESARROLLO EN SERIE DE FOURIER PARA SEÑALES PERIÓDICAS. TRANSFORMADA DE FOURIER PARA

Más detalles

Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking

Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking 1 de 13 Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking 3 Bienvenida. 4 Objetivos. 5 Soluciones comerciales

Más detalles

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 Historia de revisiones Fecha VersiónDescripción Autor 08/10/2009 1.0 Creación del documento.

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

TEMA 2: Representación de la Información en las computadoras

TEMA 2: Representación de la Información en las computadoras TEMA 2: Representación de la Información en las computadoras Introducción Una computadora es una máquina que procesa información y ejecuta programas. Para que la computadora ejecute un programa, es necesario

Más detalles

LÍMITES Y CONTINUIDAD DE FUNCIONES

LÍMITES Y CONTINUIDAD DE FUNCIONES Capítulo 9 LÍMITES Y CONTINUIDAD DE FUNCIONES 9.. Introducción El concepto de ite en Matemáticas tiene el sentido de lugar hacia el que se dirige una función en un determinado punto o en el infinito. Veamos

Más detalles

PROGRAMACIÓN LINEAL. 8.1. Introducción. 8.2. Inecuaciones lineales con 2 variables

PROGRAMACIÓN LINEAL. 8.1. Introducción. 8.2. Inecuaciones lineales con 2 variables Capítulo 8 PROGRAMACIÓN LINEAL 8.1. Introducción La programación lineal es una técnica matemática relativamente reciente (siglo XX), que consiste en una serie de métodos y procedimientos que permiten resolver

Más detalles

Enfoque propuesto para la detección del humo de señales de video.

Enfoque propuesto para la detección del humo de señales de video. Capítulo 3 Enfoque propuesto para la detección del humo de señales de video. 3.1 Comportamiento del enfoque propuesto. Una visión general del método propuesto se muestra en la figura 2. El método genera

Más detalles

GUÍA PARA UN ESCANEO ÓPTIMO

GUÍA PARA UN ESCANEO ÓPTIMO Condiciones para obtener un buen escaneo Los factores que intervienen en el proceso de escaneo son ambientales, propios de la configuración y calibración del escáner así como del objeto a escanear. El

Más detalles

7. Conclusiones. 7.1 Resultados

7. Conclusiones. 7.1 Resultados 7. Conclusiones Una de las preguntas iniciales de este proyecto fue : Cuál es la importancia de resolver problemas NP-Completos?. Puede concluirse que el PAV como problema NP- Completo permite comprobar

Más detalles

TECNÓLOGO EN INFORMÁTICA PLAN DE ESTUDIOS

TECNÓLOGO EN INFORMÁTICA PLAN DE ESTUDIOS Administración Nacional de Universidad de la República Educación Pública Facultad de Ingenieria CF Res..0.07 Consejo Directivo Central Consejo Directivo Central Res..05.07 Res. 17.0.07 TECNÓLOGO EN INFORMÁTICA

Más detalles

SOLUCION DE MODELOS DE PROGRAMACION LINEAL EN UNA HOJA DE CALCULO. PROBLEMAS DE TRANSPORTE Y ASIGNACION.

SOLUCION DE MODELOS DE PROGRAMACION LINEAL EN UNA HOJA DE CALCULO. PROBLEMAS DE TRANSPORTE Y ASIGNACION. UNIVERSIDAD NACIONAL DE LA PLATA FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA DE LA PRODUCCIÓN INGENIERÍA INDUSTRIAL SOLUCION DE MODELOS DE PROGRAMACION LINEAL EN UNA HOJA DE CALCULO. PROBLEMAS DE

Más detalles

Fig 4-7 Curva característica de un inversor real

Fig 4-7 Curva característica de un inversor real Clase 15: Criterios de Comparación de Familias Lógicas. Características del Inversor Real Cuando comenzamos a trabajar con un inversor real comienzan a aparecer algunos inconvenientes que no teníamos en

Más detalles

SISTEMAS DE COORDENADAS SISTEMA COORDENADO UNIDIMENSIONAL

SISTEMAS DE COORDENADAS SISTEMA COORDENADO UNIDIMENSIONAL SISTEMAS DE COORDENADAS En la vida diaria, nos encontramos con el problema de ordenar algunos objetos; de tal manera que es necesario agruparlos, identificarlos, seleccionarlos, estereotiparlos, etc.,

Más detalles

Interferómetro de Fizzeau Física III

Interferómetro de Fizzeau Física III Interferómetro de Fizzeau Física III Universidad Nacional de Mar del Plata Facultad de Ingeniería Fecha de Entrega: Jueves 20 de noviembre de 2014 Alumnos: Avalos Ribas, Ramiro Cardoso, Federico Furno,

Más detalles

UN ENTORNO A MEDIDA PARA EL DISEÑO Y LA SIMULACIÓN DE MAQUINARIA POR COMPUTADOR

UN ENTORNO A MEDIDA PARA EL DISEÑO Y LA SIMULACIÓN DE MAQUINARIA POR COMPUTADOR UN ENTORNO A MEDIDA PARA EL DISEÑO Y LA SIMULACIÓN DE MAQUINARIA POR COMPUTADOR Manuel González y Javier Cuadrado Departamento de Ingeniería Industrial II, Campus de Esteiro, 15403 Ferrol Universidad de

Más detalles