miércoles, 24 de marzo de 2010

¿Qué es el Raytracing? Introducción a la imagen de síntesis.

Para crear imágenes foto realistas se utilizan diferentes técnicas de programación, siendo el "Raytracing" o "trazado de rayos" una de las que ofrece resultados más interesantes.

En este artículo se introducen conceptos necesarios para entender cómo se genera una de estas imágenes, a la vez que se presenta esta técnica mediante una secuencia de "fotos intermedias" que explican detalladamente propiedades de los modelos de iluminación sintética.

No se profundiza en el algoritmo por la limitación de espacio y el objetivo de introducción propuesto, centrándose en exponer las principales ideas para su comprensión. Si se está interesado, puede consultarse por ejemplo en Raytracing (Wikipedia).

Trazando rayos como modelo de cálculo

Supongamos que queremos obtener una imagen de un objeto sencillo, una esfera. Igual que cuando efectuamos una fotografía convencional, la posición del fotógrafo respecto del objeto, que se denomina punto de vista "A" en nuestro caso, determina la perspectiva obtenida. Si movemos el punto de vista obtenemos una imagen diferente que se proyecta sobre el plano de la película o el sensor de la cámara.

Podemos suponer que desde el punto de vista "A" se generan unos rayos que pueden intersecar con los objetos de la escena o el plano de proyección (plano de imagen). En el caso de la fotografía, el plano de proyección se encuentra entre el punto de vista o fotógrafo y los objetos a fotografiar. En el caso de la imagen de síntesis, son los objetos de la escena los que se suponen situados entre el punto de vista y el plano de proyección

En la figura, el rayo que parte de "A" interseca en "B" si no se encuentra con un objeto delante (esfera en este caso). El punto "B" puede ser considerado un "pixel" de nuestra imagen, su color dependerá por tanto de los objetos de la escena y de las condiciones de iluminación.

Supongamos que nuestra escena es un poco más compleja, introducimos varios elementos sencillos como un plano y varias esferas para poder incorporar efectos como los reflejos de unos elementos sobre los otros.

El plano tiene asociado una imagen. Para simplificar la escena la imagen es una cuadrícula blanca y verde, que facilita la interpretación del resultado.

El esquema de cálculo tiene que estructurarse en etapas básicas, siendo más o menos complejas de implementar en un programa de "rendering".

Para su explicación os dejo una secuencia, creciente en complejidad, que permite aproximar la dificultad del problema.

Detección de intersecciones

Los rayos que intersecan con alguna de las superficies de la escena (representados en color blanco) delimitan las zonas que tienen el color de fondo (en este caso color negro).

La primera acción de cálculo es por tanto discriminar entre los rayos que impactan con la geometría de forma directa y aquellos que van hacia "el infinito" y por tanto determinaran los elementos del plano más alejado de la escena.

Color de material

El color del objeto sirve para identificar las diferentes superficies que componen la escena. El color forma parte del concepto de "material" asociado al objeto, junto con el resto de propiedades que se citan a continuación.

Se debe identificar la intersección más próxima a la posición de la cámara entre el rayo y los objetos de la escena. Este aspecto es el que determina o soluciona el problema de determinación la visibilidad, es decir, qué objetos se ven y cuales se encuentran por tanto ocultos por los primeros.

Iluminación difusa

La incorporación del modelo de "Lambert" (wikipedia) de iluminación aporta la sensación de volumen realzando la sensación de profundidad de la escena.

Con un elevado número de luces se produce una saturación hacia el blanco, al sumarse las diferentes componentes que inciden sobre los objetos.

Phon

La incorporación de brillos con el modelo de "Phon" (wikipedia) aporta textura a los objetos. Objetos como el plastico producen brillos concentrados e intensos, mientras que las superficies más rugosas dan brillos difuminados de menor intensidad

El modelo de Phon basa la intensidad del brillo en el ángulo de incidencia de la luz sobre el objeto, relacionándolo con la posición relativa del observador respecto del objeto a representar

Sombras

La incorporación de sombras completa la información de profundidad.

Mientras no se representan las sombras los objetos parecen "flotar" en la escena. La incorporación de las mismas permite identificar las posiciones relativas entre los diferentes objetos, siendo de especial interés la distancia al "suelo" de la escena.

Mención especial tiene el caso de las sombras arrojadas por los elementos translúcidos que pierden su "dureza", así como la difuminación que se produce en el borde o contorno.

Reflexiones

Efectos de reflexión dan brillantez y mejoran el conjunto aportando más realismo a la escena.

La reflexión o efecto especular que especialmente suele producirse en las superficies pulidas, es especialmente llamativo en las imágenes hiper-realistas, en las que se suele utilizar de forma profusa.

El número de rebotes que se calculan para cada uno de los rayos utilizado en el renderizado es un parámetro que puede generar un colapso en el proceso de cálculo, al elevar exponencialmente el número de operaciones matemáticas a realizar, aumentando en paralelo y de forma significativa la memoria necesaria en dicho proceso.

Transparencias

El efecto de transparencias en los objetos debe influir. especialmente, en la reducción de la "dureza" de las sombras producidas.
También influye en la luz arrojada sobre el resto de elementos que son visibles a través del objeto transparente, modificando la intensidad y frecuencia o color de los mismos.

Junto con las reflexiones, son los efectos más "caros" de calcular desde el punto de vista computacional.

Refracción

La refracción es el efecto de distorsión de las imágenes que se ven al mirar a superfícies semitransparentes, en la dirección de los rayos que atraviesan diferentes medios, como el aire, agua, vidrio, etc.

Si sumergimos parcialmente un lapiz en el agua lo veremos "partido". Esta pérdida de continuidad se traduce en desplazamientos y deformaciones de la imagen resultante.

Este efecto es por tanto observable cuando existen medios con diferente coeficiente de refracción en los cuales los rayos de luz ven modificadas sus trayectorias.

Motion Blur

Se conoce con este término a los efectos de desenfoque producidos por la superposición de imágenes, que son especialmente útiles para para generar efectos de movimiento.

Es un efecto que conocemos del mundo de la fotografía convencional. Al realizar una fotografía en movimiento (de la cámara o el objeto) con bajas velocidades de obturación, se superponen varias copias del objeto.


Esta simple introducción nos da una ligera idea de las posibilidades y complejidad del modelo de cálculo de imágenes de síntesis que se conoce con el nombre de "Raytracing", en el que profundizaremos técnicamente en nuevos artículos.

Algunos ejemplos de imágenes las podéis encontrar el estos enlaces. Son variaciones sobre un mismo tema.


No hay comentarios:

Recent Posts

Salvo indicación expresa, todos los contenidos de esta página están sindicados bajo una licencia Creative Commons. Puedes usarlos y modificarlos, siempre que no se haga con fines comerciales y se cite al autor.

Los enlaces que completan las ilustraciones son informaciones y opiniones de sus autores, muchas veces diferentes e incluso manifiestamente opuestas, buscando un contraste de visiones.

Etiquetas

#manifiesto (2) 2010 (1) 3D (41) Actividad sísmica (3) Actualidad (22) Aeronáutica (1) Agua (3) Águila (1) Alan Wake (1) Aminatou Haidar (1) Amor (3) Animación (24) Animales (1) Antialiasing (1) Aplicaciones (1) Aprendizaje activo (1) Aprendizaje cooperativo (1) árbol (1) Arquitectura (1) Arte (4) AstroRobonaut (1) Australia (1) avatar (1) Bicicleta (2) Biología (2) Bitacoras.com (4) Blackout (1) Blender (42) Blog (71) Blogs (3) Blue Brain (1) Bump Mapping (2) Capas (1) Carrillo (1) Censura (2) Chile (2) Ciencia (34) Cine (2) Citas (2) Civismo (1) Color (3) Comentarios (1) Comic (1) Composición (1) Conferencia Montreal (1) Consolas (1) Creatividad (2) Crítica (2) Cultura (3) Curiosidades (1) D (1) Daniel Bensaïd (1) Desastres naturales (1) Dibujo (4) Diseño (9) Documental (2) Edición (9) Educación (23) Esfera (1) Esferas (1) España (1) Estadisticas (1) Estructura (1) Evolución (1) Exposición (1) Fallas (2) Festividad (2) Ficheros (1) Filosofía (1) Flores (1) Follow friday (2) Fondo Figura (1) fondos (1) Fotoblog (2) Fotos (4) Fractales (1) Frases (1) Fuego (1) fútbol (1) Galaxias (1) Gallo (1) Geometría (17) Gomarta (1) Google (1) Gráficos (13) Greenpeace (1) Guatemala (1) Haiti (10) Hipopótamo (1) Historia (1) homenaje (1) Huellas (1) Humano (1) Humor (36) Iluminación (5) Ilusiones ópticas (2) Imagen (7) Imagen sintética (76) in memoriam (1) Ingeniería (2) Innovación (5) Innovación educativa (16) inocente (1) Internet (6) Investigación (2) ISS (2) Jardín (1) Java (1) Juegos (1) Jugabilidad (1) Key Frame (1) Layers (1) Lectura (1) Letras (1) Leyes Gestalt (3) Libertad expresión (1) Libro (1) Madrid (6) Mapeado (1) Mar (1) Matemáticas (1) Material (6) Maya (2) Mesh (2) Metaballs (1) Microsoft (4) Morphing (35) mosaico (1) Movie Maker (2) Mujer (1) Mundial (1) Música (2) Nasa (1) Navidad (3) NEURONA (1) niño (2) Objetos (2) OCW (1) Óleo (9) Óleos (1) Olimpiadas (1) open source (3) Optimula (1) Organización (1) Pacman (1) palante (1) palillos (2) Paloma (1) Pelo (2) Pensamientos (2) Periodismo (9) Perlin Noise (1) Personajes (5) Personal (8) Pi (1) Pintores (1) Pintura (6) Pixel (1) PIZ (23) PIZiadas (48) Política (3) Post (1) premios (1) Primavera (1) programación (9) Proteina (2) Publicidad (3) puentes (2) Puntillismo (1) R2 (1) Raytracing (27) Real time (1) Realidad aumentada (1) Realidad virtual (1) Recursos educativos (2) Reflejos (5) reflexión especular (4) Refracción (4) Rendering (22) René Descartes (1) Representación (1) Retos (1) Salinger (1) Saludo Blog (3) San Valentin (1) Saramago (1) segregadores (3) Selección (1) SGAE (2) Shaders (1) Sillón (1) Simulación (1) Sismico (1) Software (14) Sombreado (1) Sonido (1) Sudáfrica (1) Tecnología (35) Televisión (2) Tendencias (2) Terremoto (15) Texto (1) Texturas (8) Tinta (1) Transparencia (5) Turquía (1) Tutorial (5) Tutoriales (2) Twitter (9) Universo (1) UPM (1) usuarios (2) Vetas (1) VGG (4) videojuegos (1) Vídeos (13) Wikipedia (1)