martes, 6 de julio de 2010

Introducción visual a Shaders y Modelos de iluminación [ Blogs experimentales ] [ Blender ]

Las imágenes sintéticas, como las que estamos calculando con Blender, son renderizadas con diferentes tipos de algoritmos; los resultados obtenidos varían la representación final de los objetos en la escena.

Hay  que distinguir entre dos aspectos diferentes a la hora de estudiar en detalle el proceso de creación de imágenes, desde el punto de vista del programa informático que utilicemos o estemos programando, y que nos conduce a estructurar en métodos o técnicas computacionales.

Desde el punto de vista de un usuario, estas nociones nos permiten entender las opciones que nos brinda un programa y anticipar el efecto de las mismas.

Desde un punto de vista de programación de aplicaciones es básico su comprensión para su correcta implementación.


  1. Respecto de la idealización del problema
  2. La representación de una superficie se puede realizar proyectando dicha superficie sobre un plano de proyección o trazando rayos que lo intersecten y analizando las colisiones de estos rayos con los elementos de la escena. Esto nos permite plantear dos tipos de métodos de trabajo:
    • Métodos basados en el espacio de imagen 
    • Técnicas de trazados de rayos. 
  3. Respecto de la forma de programar
  4. Los programas pueden ejecutarse en el procesador del ordenador, o bién en la tarjeta gráfica y otros sistemas específicos para procesamiento de imagen. De nuevo podemos plantear dos líneas de análisis:
    • Algoritmos clásicos incorporados en los programas
    • Modernos lenguajes de sombreado, que pueden compilarse independientemente. 
Diferenciamos entre el modelo de idealización y la implementación en forma de algoritmos, lenguajes y programas.
Haremos como siempre una primera aproximación visual a los conceptos; posteriormente iremos desarrollando los mismos aplicándolos a casos de estudio con blender como herramienta de generación de imagen de síntesis y finalmente veremos modelos de cálculo prácticos.

El objetivo inicial por tanto es ir acostumbrándonos a un nuevo vocabulario (propio de estos temas) además de crear a la vez unas expectativas que estimulen nuestra creatividad.

El primer paso es ver unos ejemplos sobre los que analizar diferencias que se producen en las imágenes, como técnica que nos aproxime al concepto de "Sombreado".

Supongamos que tenemos un simple modelo como una cabeza formada por un reducido número de polígonos. (Usaremos el "Monkey" que tiene blender como primitiva)


Hemos añadido un material al objeto, en el que podemos definir el color del mismo. También indicaremos que las superficies se suavicen para darle un aspecto más realista. La iluminación y el fondo deberán ser el mismo para apreciar mejor las diferencias.

¿Qué cambiaremos entonces? Simplemente el modelo de sombreado. Éste normalmente se definirá asociado a un material concreto, por lo que la imagen final, si contiene varios objetos, puede estar formada gracias a múltiples "modelos de iluminación".

En particular en Blender es n ecesario definir previamente un material para el objeto y, a continuación, seleccionar el algoritmo de renderizado en la pestaña "Shader" en el modo de edición de materiales.


El algoritmo puede afectar a la iluminación en general, y en particular a la luz especular, pudiéndose realizar diferentes combinaciones según el efecto que se desee obtener.

En los siguientes ejemplos se aprecia la diferencia entre aplicar uno u otro algoritmo. En cada una de las imágenes se especifica el modelo empleado y si a su vez, si el objeto es emisor de luz (autoiluminado)

  • Lambert
Es el modelo clásico de iluminación, que se utiliza además didácticamente como referencia en el estudio de los sombreadores o Shaders. Puede ser implementado tanto a nivel de programación básica como con los lenguajes de sombreado, siendo el más sencillo de todos los modelos.

Aporta las ideas básicas de iluminación difusa al objeto.

El primer modelo tiene un color más obscuro que permita determinar claramente la iluminación empleada (ver brillos)

Lambert



  • Fresnel

La cantidad de luz difusa reflejada depende del ángulo de incidencia de la luz. Las superfícies orientadas hacia la luz se encuentran oscurecidas, las superfícies que son perpendiculares a la dirección de iluminación por tanto aparecen más brillantes.

Fresnel Emit

  • Minnaert

Usa el modelo de "Lambert" como en los sombreados más básicos matizando la zona de brillo, obscureciendo el centro o aclarando los bordes.

Minnaert Emit

  • Oren - Nayar
Implementa un modelo de iluminación que tiene en cuenta el comportamiento microscópico de la rugosidad del material.
Oren Emit

  • Cartoon

Es un renderizado no realista, en el que se usan pocos colores con fronteras entre la luz y la sombra muy definidas. Su aplicación en dibujos animados es común.

Toon Emit




Una interesante página explicativa de cada uno de estos modos de sombreado  se encuentra en la documentación de Blender: Diffuse Shaders

Shader (Wikipedia en)
Shader (Wikipedia es)


No hay comentarios:

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)
Powered By Blogger