LUCES Y L - PowerPoint PPT Presentation

1 / 45
About This Presentation
Title:

LUCES Y L

Description:

LUCES Y L MPARAS Realizado por: Mercedes S nchez Marcos Almudena Sard n Garc a Contenido (I) Introducci n. Los modelos de iluminaci n. Rendering. – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0
Slides: 46
Provided by: Almude
Category:
Tags: luces | vectores

less

Transcript and Presenter's Notes

Title: LUCES Y L


1
LUCES Y LÁMPARAS
  • Realizado por
  • Mercedes Sánchez Marcos
  • Almudena Sardón García

2
Contenido (I)
  • Introducción.
  • Los modelos de iluminación.
  • Rendering. Determinación de superficies visibles.
  • Métodos de rendering de los polígonos.
  • Iluminación en OpenGL
  • Tipos de iluminación
  • Caracteristicas de las fuentes de lus
  • Vectores normales
  • Colocar luces
  • Atenuación con la distancia
  • Área de cobertura

3
Contenido (II)
  • Propiedades de los materiales
  • Efectos de la iluminación
  • Focos de luz
  • Sombras
  • Conclusiones

4
Introducción I
  • Actuación de la luz al chocar con una
    superficie.
  • Cómo representa OpenGL la luz y sus fenómenos.
  • Uso de la luz para construir escenas.
  • Modelos de renderizado más usados.
  • Uso de la iluminación en OpenGL.
  • Especificación de los materiales de la escena.

5
Introducción II
  • Efectos de iluminación que se pueden conseguir
    con OpenGL.
  • Modelos de iluminación y reflexión.
  • Luz incidente luz reflejada luz dispersa
    luz absorbida luz transmitida.
  • Parámetros distancia entre la fuente de luz y el
    objeto, rugosidad de la superficie, tipo de
    material, ángulo de incidencia de la luz,
    longitud de onda de la luz incidente.

6
Los modelos de iluminación I
  • El fenómeno de iluminación y reflexión indica
    cómo la luz interactúa con un sólido.
  • Clasificación de la luz
  • Luz incidente.
  • Luz de reflexión.
  • Luz difusa.
  • Luz difusa global.
  • Luz difusa local.
  • Luz especular.
  • Luz de refracción.
  • Luz de transmisión.

7
Los modelos de iluminación II
  • Los diferentes tipos de iluminación producen
    distintos efectos de brillo y color
    (reflectancia).
  • El ángulo entre los rayos de luz y la
    perpendicular de la superficie determina en que
    medida la superficie aparecerá brillante a los
    ojos del espectador.
  • La perpendicular de una superfice plana es la
    línea qu sale con un ángulo de 90 grados
    (normal).
  • Una superficie plana aparecerá más brillante
    cuando su perpendicular apunte directamente hacia
    el foco de luz.
  • La superficie no reflejará luz cuando esté más de
    90 grados de los rayos de luz, ni tampoco cuando
    esté mirando al lado opuesto del foco luminoso.
  • El modelo básico de iluminación considera sólo
    las reflexiones ?Intensidad luz ambiente luz
    difusa luz especular

8
Los modelos de iluminación III
  • Luz ambiental.
  • Es la luz indirecta, por ejemplo la que se ve en
    un día nuboso.
  • Es el resultado de la reflexión múltiple de todos
    los objetos en la escena.
  • En teoría no produce sombras en el mundo real,
    pero en caso de producirlas serán suaves.
  • Luz difusa.
  • Es la que la superficie de un objeto refleja en
    todas las direcciones debido a la iluminación
    directa.
  • Es la responsable del color del objeto.
  • Es una característica propia de los objetos mates.

9
Los modelos de iluminación IV
  • Luz especular.
  • Procede de un único punto de luz, es decir de una
    sola dirección.
  • Es una luz con alta intensidad que una superficie
    brillante refleja a lo largo de la dirección del
    espejo.
  • Es la que produce el efecto espejo.
  • Tiene el color de la fuente de luz.
  • La reflexión especular depende de la posición del
    observador.

10
Los modelos de iluminación V
  • Modelo de Phong (I).
  • La luz en un punto tiene tres componentes y es
    igual a la suma de las tres ? luz difusa luz
    especular luz ambiental.
  • El modelo de Phong consiste en modelar el efecto
    de la luz especular. Lo hace de la forma
    IespksIlcosnfksIl(VR)n
  • n es el parámetro de reflexión especular.
  • Si la superficie es más brillante, n es mas
    grande

11
Los modelos de iluminación VI
  • Modelo de Phong (II).
  • La componente difusa toma el color de la
    superficie.
  • El rayo reflejado (componente especular) toma el
    color de la fuente de luz.
  • I d I i k d cos q
  • Si sólo se consideran la componente difusa y la
    especular el objeto queda como si estuviera
    iluminado por un flash. Para evitarlo se usa la
    componente ambiental.
  • I g I a k a
  • En la componente ambiental se engloban las otras
    componentes.

12
Los modelos de iluminación VII
  • Modelo básico de iluminación.
  • Considerando el modelo de Phong se puede definir
    el modelo básico de iluminación de la siguiente
    forma
  • IIambienteIdifusaIespecularkaIakdIl(NL)ksIl
    (NH)n
  • Modelo básico de iluminación con n fuentes de
    luz.
  • De la misma forma, se puede definir el modelo
    básico de iluminación si se dispone de n fuentes
    de luz
  • IIambienteIdifusaIespecularkaIaIIkd(NLl)ks
    (NHl)n
  • Atenuación de la intensidad a lo largo de la
    distancia de la luz.
  • Para tener en cuenta que los objetos más cercanos
    son más brillantes que los más lejanos se usa un
    término de atenuación.
  • El modelo básico con atenuación de distancia y
    fuentes múltiples
  • IkaIa f(dl)II kd(N Ll) ks (N Hl)n
  • Donde f es una función de atenuación empírica.

13
Rendering. Determinación de superficies visibles I
  • Una parte importante de la generación de gráficos
    realistas es la identificación de las partes de
    una escena que son visibles desde un punto de
    vista determinado.
  • Distintos planteamientos
  • Métodos de detección de superficie visible.
  • Imagen-espacio.
  • Objeto-espacio.
  • Métodos de eliminación de superficies ocultas.

14
Rendering. Determinación de superficies visibles
II
  • Método de la normal.
  • Se aplica en figuras planas.
  • Permite ocultar la mitad de las superficies que
    hay en escena.
  • Se basa en calcular la normal a todas las
    superficies.
  • Las normales cuya proyección en la dirección de
    visión sean positivas son superficies ocultas y
    las negativas visibles.
  • Se calcula haciendo el producto escalar del
    vector de visión por el vector normal de cada
    cara.
  • Si un objeto es poliédrico, las caras son
    totalmente visibles o totalmente ocultas.
  • Si hay varios objetos se realiza el algoritmo
    para todos los objetos.
  • Los que hace el algoritmo es eliminar la cara
    posterior de los objetos.

15
Rendering. Determinación de superficies visibles
III
  • Método de buffer con profundidad. Buffer Z.
  • Es un método de espacio-imagen.
  • Se mantiene una base de datos que corresponde a
    cada pixel de la pantalla de visión.
  • La base de datos contiene información sobre la
    profundidad de la coordenada visual z para cada
    parte de un objeto que ocupe una posición
    determinada de pixel.
  • Para cada pixel (x,y) de la imagen, el punto con
    menor coordenada z es visible.
  • El método del Z-Buffer es infalible para todas
    las escenas 3D, no importa cuál sea su
    complejidad. Sin embargo, es de memoria
    intensiva.

16
Rendering. Determinación de superficies visibles
IV
  • Algoritmo del pintor.
  • Se basa en pintar primero el fondo. Sobre este
    fondo, se dibuja la siguiente figura. Si sobre
    esa figura va otra, se dibujaría encima.
  • Este método tiene un inconveniente cuando las
    superficies se oscurecen alternativamente.

17
Rendering. Determinación de superficies visibles V
  • Método de traza de rayos.
  • Se aplica la definición del algoritmo de
    superficie oculta (método de imagen-espacio).
  • Para cada pixel se traza un rayo. Si no
    intercepta ningún objeto se le da el color de
    fondo. Si intercepta un objeto, se le da el color
    del primer objeto interceptado.
  • Es un método es muy lento, pero tiene la ventaja
    de dar imágenes muy realistas. Por ejemplo,
    usando varias fuentes de luz, se obtienen unos
    resultados muy buenos, casi fotográficos.

18
Métodos de rendering de los polígonos I
  • Sombreado con intensidad constante.
  • Consiste en calcular una única intensidad para
    cada polígono.
  • Una vez calculada la intensidad de cada polígono,
    se visualizan todos los puntos del mismo polígono
    con una única intensidad.
  • Es muy rápido y preciso si las luces y el
    observador están lejos.
  • Presenta el inconveniente de que hay
    discontinuidad de intensidad entre los polígonos.
  • Este método es el más ineficiente y menos usado
    de los tres.

19
Métodos de rendering de los polígonos II
  • Método de sombreado de Gouraud (Gouraud Shading).
  • El método consiste en calcular la intensidad de
    los pixeles a lo largo de la línea de escaneo por
    interpolación.
  • Elimina la discontinuidad de la intensidad entre
    los polígonos que presentaba el método anterior.
  • Método de sombreado de Phong (Phong Shading).
  • En lugar de interpolar las intensidades, lo que
    hace es interpolar las normales para cada punto
    de la superficie.
  • Con este método es con el que se consiguen
    resultados mas realistas, pero tiene el
    inconveniente de que necesita realizar entre 6 y
    7 veces mas cálculos que para el método de
    Gouraud.

20
Activar la iluminación
  • Para activar/desactivar la iluminación, OpenGL
    propone las siguientes primitivas
  • glEnable(GL_LIGHTING)
  • glDisable(GL_LIGHTING)
  • Con estas funciones se le indica a OpenGL que
    realice los cálculos correspondientes para el uso
    de las fuentes de luz y de las propiedades de los
    materiales.

21
Tipos de iluminación
  • Hay tres tipos de iluminación en OpenGL
  • Iluminación plana evalúa sólo un color para
    todos los puntos de un polígono
  • glShadeModel(GL_FLAT)
  • Iluminación suaveefectúa cálculos de color para
    cada uno de los puntos del polígono.
  • glShadeModel(GL_SMOOTH)
  • Iluminación de Phong OpenGL no implementa PHONG
    directamente

22
Características de las fuentes de luz(I)
  • OpenGL soporta hasta 8 luces por escena.
  • Las luces llevan asociado un nombre
  • GL_LIGHT0, GL_LIGHT1, GL_LIGHT2
  • Para activar y desactivar una luz se utiliza
  • glEnable(GL_LIGHT0)
  • glDisable(GL_LIGHT0)
  • Para definir las fuentes de luz tenemos que
    decirle a OpenGL cuáles son las propiedades de
    cada una de nuestras luces.
  • GLvoid glLightfv(GLenum light, GLenum pname,
    const GLfloat params)

23
Características de las fuentes de luz(II)
24
Vectores Normales a la superficie (I)
  • Para iluminar una superficie (plano) necesitamos
    información sobre su vector normal asociado.
  • En OpenGL es necesaria la definición de un vector
    normal para cada uno de los vértices de nuestra
    geometría.
  • Una vez calculada la normal tenemos que
    normalizar, es decir, dividir ese vector por su
    propio módulo para que sea unitario.
  • OpenGL utilizará la normal asociada a cada
    vértice para evaluar la luz que incide sobre
    éste.

25
Vectores Normales a la superficie (II)
  • Para definir normales con OpenGL
  • glBegin(GL_POLYGON )
  • glNormal3f(CoordX, CoordY, CoordZ)
  • glVertex3f ( ... )
  • glVertex3f ( ... )
  • glVertex3f ( ... )
  • glVertex3f ( ... )
  • ...
  • glEnd( )

26
Vectores Normales a la superficie (III)
  • En este caso cada vértice tiene su normal
  • glBegin ( GL_POLYGON )
  • glNormal3f ( CoordX, CoordY, CoordZ )
  • glVertex3f ( ... )
  • glNormal3f ( CoordX, CoordY, CoordZ )
  • glVertex3f ( ... )
  • glNormal3f ( CoordX, CoordY, CoordZ )
  • glVertex3f ( ... )
  • glNormal3f ( CoordX, CoordY, CoordZ )
  • glVertex3f ( ... )
  • ...
  • glEnd( )

27
Vectores Normales a la superficie (IV)
  • Se puede indicar a OpenGL que realice el cálculo
    de la normal automáticamente
  • glEnable(GL_NORMALIZE)
  • glDisable(GL_NORMALIZE)
  • No recomendable

28
Colocar las luces
  • Para colocar la luz se utiliza
  • GLvoid glLightfv (GLenum light, GL_POSITION,
    const GLfloat params)
  • La posición se indica con un array de valores
  • Glfloat posición0.0, 0.0, 100.0, 1.0)
  • Los rayos de la luz se asumen paralelos.
  • Podemos mover una luz a gusto por una escena.

29
Atenuación con la distancia (I)
  • Es la atenuación que sufre la luz a medida que se
    desplaza.
  • Para modelar esto contamos con tres parámetros a
    definir
  • GL_CONSTANT_ATTENUATION. En la formula es "a".
  • GL_LINEAR_ATTENUATION. En la formula es "b".
  • GL_QUADRATIC_ATTENUATION. En la formula es c".

30
Atenuación con la distancia (II)
  • Para pasarle los valores a OpenGL se usa la
    función de siempre
  • GLvoid glLightfv ( GL_LIGHT5, GL_CONSTANT_ATTENUAT
    ION, 0.8 )
  • GLvoid glLightfv ( GL_LIGHT5, GL_LINEAR_ATTENUATIO
    N, 0.5 )
  • GLvoid glLightfv ( GL_LIGHT5, GL_QUADRATIC_ATTENUA
    TION, 0.1 )

31
Área de cobertura(I)
  • Hace referencia al área que abarca el haz de luz
    que surge de la fuente.
  • Podemos definir los siguientes parámetros
  • GL_SPOT_CUTOFF para definir un "cono" de luz.
  • GL_SPOT_DIRECTION para restringir la dirección de
    la luz emitida.
  • GL_SPOT_EXPONENT que regula la pérdida de
    intensidad de la luz a medida que nos alejamos
    del centro del cono.
  • Pasamos estos parámetros a OpenGL con la función
  • glLightfv(GL_LIGTH0, GL_SPOT_DIRECTION,
    dirección)
  • Glfloat dirección0.0, 0.0, 1.0

32
Área de cobertura (II)
33
Propiedades de los materiales (I)
  • Para cada polígono de la escena hay que definir
    un material de forma que su respuesta a la
    incidencia de luz varíe según sea el caso.
  • Se definen cinco características para un
    material
  • Reflexión difusa
  • Reflexión especular
  • Reflexión ambiental
  • Coeficiente de brillo
  • Coeficiente de emisión

34
Propiedades de los materiales (II)
  • Para indicar las características de los
    materiales se utiliza
  • GLvoid glMaterialfv(GLenum face, GLenum pname,
    const GLfloat params)
  • Los parámetros de la función son

Glenum face Glenum pname const GLfloat params
GL_FRONT GL_DIFFUSE ( R, G, B, 1.0 )
GL_BACK GL_AMBIENT ( R, G, B, 1.0 )
GL_FRONT_AN D_BACK GL_AMBIENT_AND_ DIFFUSE ( R, G, B, 1.0 )
GL_EMISSION ( R, G, B, 1.0 )
GL_SPECULAR ( R, G, B, 1.0 )
GL_SHININESS 0, 128
35
Efectos de la iluminación (I)
  • Se basan en la componente especular.

36
Efectos de la iluminación (II)
  • Para conseguir los efectos de la luz especular
    hay que realizar lo siguiente
  • Por un lado tenemos que activar la iluminación
    especular recurriendo a las primitivas de OpenGL
  • Espec 1.0f,1.0f,1.0f,1.0f
  • GlLight(GL_LIGHT0,GL_SPECULAR,Espec)
  • Por otro lado tenemos que asignar al material las
    propiedades adecuadas de brillo
  • GlMaterialfv(GL_FRONT,GL_SPECULAR,espec)
  • GlMateriali(GL_FRONT,GL_SHININESS,128)

37
Focos de luz (I)
  • Tenemos dos tipos de luz
  • Luz propia es proporcionada por un foco de luz
    bien situado, del cual conocemos su ubicación, y
    que emite sus rayos de luz de forma radial o
    divergente.
  • Luz impropia emite sus rayos de luz desde una
    ubicación muy distante, de forma que podemos
    considerar sus rayos como paralelos entre si

38
Focos de luz (II)
  • Colocación de un foco de luz.
  • Para colocar una fuente de luz en OpenGL
  • glLightfv (GL_LIGHT0, GL_POSITION,LightPos)
  • Si queremos le podemos dar el efecto foco
  • Se configura el ángulo del cono de luz.
  • glLight (GL_LIGHT0, GL_SPOT_CUTOFF, 60.0f)
  • Configura el brillo del mismo.
  • glLight (GL_LIGHT0, GL_SPOT_EXPONENT, 100.0f)

39
Focos de luz (III)
  • Para ver como los focos de luz interaccionan en
    una escena hay que hablar de
  • iluminación local cómo se comporta cada
    superficie al ser iluminada de forma individual.
  • iluminación global iluminación de un determinado
    objeto en una escena, teniendo en cuenta los
    rayos provenientes varias fuentes de luz y varios
    objetos.

40
Sombras (I)
  • Es una de las partes de la iluminación que mayor
    realismo aporta a nuestras escenas.
  • En general vamos a tener muy diversos tipos de
    sombras, y diversas formas de aplicarlos, pero
    sólo nos vamos a centrar en dos técnicas y su
    aplicación mediante el buffer plantilla.

41
Sombras (II)
  • Sombras proyectadas.
  • Es la técnica más sencilla, y consiste en
    calcular una matriz de proyección sobre el plano
    sobre el que queremos dibujar la sombra.
  • Una vez calculada esta matriz, si la
    multiplicamos por la matriz del modelo, y
    procedemos a dibujar nuestras figuras, las
    estaremos dibujando sobre ese plano.
  • Por tanto una vez dibujada nuestra escena,
    desactivamos la iluminación, proyectamos y
    dibujamos nuestras figuras teniendo en cuenta que
    hay que elegir un color adecuado porque van a ser
    las sombras.

42
Sombras (III)
  • Sombras Volumétrica
  • La técnica anterior es muy sencilla, pero solo
    nos sirve para dibujar esas sobras proyectadas
    sobre planos.
  • Si tenemos una composición de figuras en las que
    unas proyectan sombras sobre otras, con la
    técnica anterior no las podremos representar.
  • Para evitar esto vamos a utilizar una técnica que
    consiste en calcular las sombras como
    intersección de volúmenes.

43
Sombras (IV)
  • Sombras Volumétricas el buffer plantilla.
  • El funcionamiento de este buffer es muy sencillo
  • Cada píxel tiene asignado un valor en este
    buffer.
  • Además, hay una operación de comparación definida
    para el buffer.
  • Si el valor de plantilla de un píxel satisface la
    condición de comparación este se dibuja, si no,
    no se dibuja.
  • También tenemos una operación de modificación de
    este valor, que se aplica sobre los píxel que
    satisfacen la condición.

44
Sombras (V)
  • El algoritmo será como sigue
  • Calculamos el volumen de la sombra, y lo
    dibujamos de tal manera que modifique el valor de
    todos los píxeles asignándoles un valor
    reconocible para nosotros posteriormente como
    sombreado.
  • Dibujamos nuestra escena.
  • Desactivamos la luz, asignamos el color de
    nuestra sombra activamos es test del buffer, de
    tal manera que solo se dibuje en las regiones
    donde el valor del buffer sea el que hemos
    asignado a nuestra sombra.
  • Volvemos a dibujar nuestra escena y ya tendremos
    las sombras.

45
Conclusiones
  • El capítulo de iluminación es uno de los más
    interesantes de la programación gráfica, porque
    es uno de los que más nos va a permitir dotar de
    fotorrealismo a las escenas que estemos
    modelando, pero exige un gran dominio del resto
    de temas.
  • Existen una serie de técnicas que ayudan a
    conseguir ese fotorrealismo.No hemos querido
    profundizar mucho en ellas, ya que en la mayoría
    de los casos nos saldríamos de lo que es el
    carácter introductorio a lo que es OpenGl y a lo
    que es la programación gráfica.
Write a Comment
User Comments (0)
About PowerShow.com