Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de...

16
i Resumen GC: Temas 6 y 7 Indice de Contenidos Capítulo 1: Representación de Objetos Tridimensionales ....................................................................................... 3 1.1. Superficies Poligonales ............................................................................................................................... 4 Codificación Poligonal .................................................................................................................................. 5 Ecuación del plano......................................................................................................................................... 6 Capítulo 2: Métodos de Detección de Superficies Visibles................................................................................... 11 Clasificación de los Algoritmos de detección de Superficies Visibles ........................................................ 11 2.1. Detección de Caras Posteriores (Back-Face). .......................................................................................... 12 2.2. Método del Buffer de Profundidad (Z-Buffer) ........................................................................................... 14 Capítulo 3: Modelos de Iluminación ..................................................................................................................... 19 Fuentes de luz .............................................................................................................................................. 19 3.1. Modelos Básicos de Iluminación ............................................................................................................... 22 Luz Ambiente .............................................................................................................................................. 23 Reflexión Difusa .......................................................................................................................................... 23 Reflexión Especular ..................................................................................................................................... 24 3.2. Sombreado de Polígonos ........................................................................................................................... 27 Sombreado de Intensidad Constante (Flat).................................................................................................. 28 Sombreado por Interpolación Gouraud........................................................................................................ 29 Sombreado por interpolación. Phong........................................................................................................... 30 ii Indice de Tablas Figura 1: Modelo tridimensional de un cubo....................................................................................................... 4 Figura 2: Tablas de información asociadas a la figura 1 ..................................................................................... 5 Figura 3: Diversas interpretaciones de un cubo .................................................................................................. 6 Figura 4: Sistemas Dextrógiro y Levógiro .......................................................................................................... 7 Figura 5: Sentido de las normales para el cubo de la figura 1 ............................................................................. 7 Figura 6: Cálculo vectorial de la Normal .......................................................................................................... 10 Figura 7: Ejemplo de caras visibles e invisibles ................................................................................................ 13 Figura 8: Cara no visible desde el observador................................................................................................... 13 Figura 9: La superficie S 1 tiene la mayor profundidad (z), siendo visible su píxel (x,y) .................................. 14 Figura 10: Coordenadas de pixeles adyacentes ................................................................................................... 16 Figura 11: Posiciones de intersección sobre sucesivas scanlines en la arista izquierda ...................................... 17 Figura 12: Rayos divergentes de una fuente de luz puntual ............................................................................... 20 Figura 13: Fuente de luz distribuida .................................................................................................................... 20 Figura 14: Reflexión Difusa (Ley de Lambert) ................................................................................................... 24 Figura 15: Reflexión Especular (Modelo de Phong) ........................................................................................... 24 Figura 16: Esferas sombreadas según el modelo de Phong................................................................................. 27 Figura 17: Sombreado constante ......................................................................................................................... 28 Figura 18: Suavizado de Gouraud. Interpolación de Intensidades ...................................................................... 29 Figura 19: Cálculo del vector normal en un vértice ............................................................................................ 30 Figura 20: Suavizado de Phong. Interpolación de Normales .............................................................................. 31 Figura 21: Diversos sombreados de polígonos.................................................................................................... 32

Transcript of Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de...

Page 1: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

‐ i ‐ 

Resumen GC: Temas 6 y 7 Indice de Contenidos    

Capítulo 1: Representación de Objetos Tridimensionales....................................................................................... 3

1.1. Superficies Poligonales ............................................................................................................................... 4 Codificación Poligonal .................................................................................................................................. 5 Ecuación del plano......................................................................................................................................... 6

Capítulo 2: Métodos de Detección de Superficies Visibles................................................................................... 11

Clasificación de los Algoritmos de detección de Superficies Visibles ........................................................ 11

2.1. Detección de Caras Posteriores (Back-Face). .......................................................................................... 12

2.2. Método del Buffer de Profundidad (Z-Buffer) ........................................................................................... 14

Capítulo 3: Modelos de Iluminación ..................................................................................................................... 19

Fuentes de luz .............................................................................................................................................. 19

3.1. Modelos Básicos de Iluminación............................................................................................................... 22 Luz Ambiente .............................................................................................................................................. 23 Reflexión Difusa .......................................................................................................................................... 23 Reflexión Especular ..................................................................................................................................... 24

3.2. Sombreado de Polígonos ........................................................................................................................... 27 Sombreado de Intensidad Constante (Flat). ................................................................................................. 28 Sombreado por Interpolación Gouraud........................................................................................................ 29 Sombreado por interpolación. Phong........................................................................................................... 30

 

‐ ii ‐ 

 

Indice de Tablas Figura 1: Modelo tridimensional de un cubo.......................................................................................................4 Figura 2: Tablas de información asociadas a la figura 1 .....................................................................................5 Figura 3: Diversas interpretaciones de un cubo ..................................................................................................6 Figura 4: Sistemas Dextrógiro y Levógiro ..........................................................................................................7 Figura 5: Sentido de las normales para el cubo de la figura 1.............................................................................7 Figura 6: Cálculo vectorial de la Normal ..........................................................................................................10 Figura 7: Ejemplo de caras visibles e invisibles................................................................................................13 Figura 8: Cara no visible desde el observador...................................................................................................13 Figura 9: La superficie S1 tiene la mayor profundidad (z), siendo visible su píxel (x,y) ..................................14 Figura 10: Coordenadas de pixeles adyacentes ...................................................................................................16 Figura 11: Posiciones de intersección sobre sucesivas scanlines en la arista izquierda ......................................17 Figura 12: Rayos divergentes de una fuente de luz puntual ...............................................................................20 Figura 13: Fuente de luz distribuida....................................................................................................................20 Figura 14: Reflexión Difusa (Ley de Lambert) ...................................................................................................24 Figura 15: Reflexión Especular (Modelo de Phong) ...........................................................................................24 Figura 16: Esferas sombreadas según el modelo de Phong.................................................................................27 Figura 17: Sombreado constante .........................................................................................................................28 Figura 18: Suavizado de Gouraud. Interpolación de Intensidades ......................................................................29 Figura 19: Cálculo del vector normal en un vértice ............................................................................................30 Figura 20: Suavizado de Phong. Interpolación de Normales ..............................................................................31 Figura 21: Diversos sombreados de polígonos....................................................................................................32

Page 2: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 1 Representación de Objetos 3D

‐ 3 ‐ 

         

Capítulo 1 Representación de Objetos Tridimensionales

  

as escenas gráficas pueden contener multitud de objetos de distinto tipo:  árboles,  flores, nubes,  rocas,  agua, paneles de madera, papel, mármol, cristal, plástico, por sólo mencionar algunos de ellos. Por lo 

tanto no nos debe sorprender que no sea únicamente un método el que se emplee para describirlos, sino que debamos acudir a varios para describir las distintas  características de  cada uno de  los  objetos  que  compondrán parte  de  nuestra  escena.  Y  para  la  producción  de  escenas  realistas necesitamos emplear las representaciones que mejor se ajusten al objeto y así obtener mayor precisión en su descripción.  Las  superficies por polígonos y  cuádricas proporcionan una descripción precisa  para  objetos  euclídeos,  tales  como  poliedros  y  elipsoides;  las superficies  splines  y  las  técnicas de  construcción  son  adecuadas para  el diseño  de  alas  de  avión,  ruedas,  y  otras  estructuras  formadas  por superficies curvas; los métodos procedurales, tales como los fractales y los sistemas  de  partículas,  nos  permiten  representar  con  precisión  nubes, hierba  y  otros  objetos  naturales;  los métodos  de modelado  basados  en física  usan sistemas de fuerzas que interactúan que pueden ser empleados para  describir  el  manejo  de  objetos  no  rígidos;  las  codificaciones  con árboles  octrees  se  utilizan  para  codificar  el  interior  de  los  objetos,  tales 

L

Resumen Representación de Objetos 3D

‐ 4 ‐ 

como  aquellos  obtenidos  con  imágenes  médicas;  y  otras  técnicas  de visualización  aplicadas  a  conjuntos  discretos  de  datos  para  crear  una representación visual de la información. Los esquemas de representación de objetos sólidos se dividen a menudo en dos categorías, aunque no todas las representaciones caen estrictamente en una de estas dos categorías. Las  representaciones por  frontera describen los  objetos  como  un  conjunto  de  superficies  que  separan  el  objeto  del entorno.  Y  las  representaciones  por  enumeración  espacial  (por  división  del espacio) que se emplean para describir las propiedades del interior de los objetos. Con este método se parte la región espacial que contiene al objeto en  un  conjunto  de  pequeños  sólidos  contiguos,  que  no  se  solapan, usualmente cubos.  

1.1. Superficies Poligonales El método más común para representar las fronteras de un objeto gráfico tridimensional es un conjunto de superficies poligonales que encierran el interior del objeto. Muchos sistemas gráficos almacenan la descripción de todos   los objetos como superficies poligonales. De esta manera se puede simplificar y acelerar el proceso de Rendering ya que todas las superficies son descritas con ecuaciones lineales. Por este motivo, esta representación es conocida a menudo como “objetos gráficos estándar”.              

Figura 1: Modelo tridimensional de un cubo

z

y

x

1.01.0

0.50.5 A

B

D

CH

F

E

G

a4 a0

a11

a10

a3a7 a2

a9

a8 a5

a1

a6

Page 3: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 1 Representación de Objetos 3D

‐ 5 ‐ 

Codificación Poligonal La representación del objeto va a estar  formada por  tres  listas diferentes de  datos:  una  lista  de  vértices,  donde  cada  uno  de  ellos  almacenará  las coordenadas (x, y, z) de un punto del espacio tridimensional; una  lista de aristas, formada por los segmentos de línea o aristas que van a formar los lados del objetos, la información que contendrán será los vértices origen y destino de las arista; y por último, una lista de polígonos, donde se recogen las aristas que forman dicho polígono, o en su defecto  los vértices que lo forman.  Veamos  la  información  que  contendrían  dichas  listas  si quisiéramos representar el cubo de la figura 1:  Tabla de Vértices    Tabla de Aristas    Tabla de Polígonos A  (0.0, 0.0, 0.0)    a0  A, B    P0  a0, a3, a2, a1 B  (1.0, 0.0, 0.0)    a1  B, C    P1  a1, a6, a9, a5 C  (1.0, 1.0, 0.0)    a2  C, D    P2  a2, a7, a10, a6 D  (0.0, 1.0, 0.0)    a3  D, A    P3  a3, a4, a11, a7 E  (0.0, 0.0, 1.0)    a4  A, E    P4  a0, a5, a8, a4 F  (1.0, 0.0, 1.0)    a5  B, F    P5  a9, a10, a11, a8 G  (1.0, 1.0, 1.0)    a6  C, G       H  (0.0, 1.0, 1.0)    a7  D, H             a8  E, F             a9  F, G             a10  G, H             a11  H, E       

Figura 2: Tablas de información asociadas a la figura 1

 En principio se podría pensar que  la  información de  los polígonos no es necesaria,  pero  nos  daría  objetos  sujetos  a  múltiples  interpretaciones, como se muestra a partir del cubo anterior:  

Resumen Representación de Objetos 3D

‐ 6 ‐ 

          

Figura 3: Diversas interpretaciones de un cubo

 Requicha  [REQU,80] proporcionó una  lista de propiedades deseables que un esquema de representación de sólidos debía cumplir. Se ha de buscar por  tanto  un modelo de  representación  que  no  sea  ambiguo,  cuando un modelo  no  es  ambiguo  se  dice  también  que  es  completo.  Una representación  es única  si  el objeto  sólido a  representar admite  sólo una codificación  posible,  el modelo  de  fronteras  del  ejemplo  anterior  no  es único,  puesto  que  la  elección  de  las  aristas  a  la  hora  de  codificar  los polígonos podría haber sido otra distinta y sin embargo representamos el mismo  cubo. Una  representación  es  precisa  si permite que un objeto  sea representado  sin  emplear  una  aproximación.  Idealmente  un modelo  de representación  no  debería  permitir  la  representación  de  objetos imposibles. También es deseable que  la representación sea compacta para ahorrar  espacio  en  su  codificación.  Por  último  una  representación  debe permitir  que  se  puedan  emplear  algoritmos  eficientes  para  calcular  las propiedades  físicas  deseadas,  y  lo más  importante  para  nosotros,  para crear imágenes.  

Ecuación del plano Otro detalle que hay que  tener  en  cuenta, que  es muy  importante,  es  el orden  en  el  que  damos  el  conjunto  de  aristas  o  vértices  a  la  hora  de codificar un polígono,  tenemos dos  sentidos posibles a  elegir,  el  sentido positivo  o  dextrógiro  o  el  sentido  negativo  o  levógiro,  por  notación 

Page 4: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 1 Representación de Objetos 3D

‐ 7 ‐ 

matemática empleada en las transformaciones que se vieron en el tema 2, donde se elegía el sentido positivo, se empleará el sistema dextrógiro:            

Figura 4: Sistemas Dextrógiro y Levógiro

El  orden que  elijamos  a  la hora de dar  los vértices de  los polígonos  va influir en el sentido que tomará su normal (la dirección será la misma). O lo que es  lo mismo  indicará desde qué  lado es visible el polígono. Lo  cual indica que si un polígono se desea ver por ambos  lados deberemos, bien codificarlo como dos polígonos distintos con  los mismos vértices pero en sentido  inverso  uno  del  otro,  bien  introduciendo  información  en  la codificación que señale que el polígono es visible desde sus dos lados.              

Figura 5: Sentido de las normales para el cubo de la figura 1

B

D

r N  

P=(A, D, C, B) Sistema Positivo

o Dextrógiro 

C

A

B

Dr N

P=(A, B, C, D) Sistema Negativo

o Levógiro 

P4 

P2

P5 

P3  P1

P0

Resumen Representación de Objetos 3D

‐ 8 ‐ 

En vistas a aplicar procedimientos de  rendering con ocultación de  líneas, identificación  de  superficies  visibles,  etc.,  necesitamos  calcular  las ecuaciones  del  plano  a  partir  de  las  tablas  con  las  que  codificamos  el modelo tridimensional de un objeto. 

La ecuación del plano se expresa de la siguiente forma: 

Ax + By +Cz + D = 0 ec. 1

Donde  las  coordenadas  (x,  y,  z)  son  cualquier  punto  del  plano,  y  los coeficientes  A,  B,  C  y D  son  constantes  que  describen  las  propiedades espaciales  del  plano.  Podemos  obtener  los  coeficientes  A,  B,  C  y  D resolviendo  un  conjunto  de  tres  ecuaciones  del  plano  empleando  los valores de  tres puntos no colineales  (es decir, que no están en  la misma recta). Para ello seleccionamos  tres puntos consecutivos del polígono  (x1, y1, z1), (x2, y2, z2) y (x3, y3, z3) y resolvemos el siguiente conjunto simultáneo de ecuaciones de plano lineales para los ratios A/D, B/D y C/D.  

AD

xk +BD

yk +CD

zk = −1, k = 1,2,3 ec. 2

La solución de este conjunto de ecuaciones se puede obtener en forma de determinantes, usando la regla de Cramer, como: 

 

      A =1 y1 z1

1 y2 z2

1 y3 z3

  B =x1 1 z1

x2 1 z2

x3 1 z3

 

c. 3

C =x1 y1 1x2 y2 1x3 y3 1

D = −x1 y1 z1

x2 y2 z2

x3 y3 z3

Page 5: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 1 Representación de Objetos 3D

‐ 9 ‐ 

Expandiendo  los  determinantes,  podemos  escribir  los  coeficientes  de  la siguiente forma: 

  A = y1(z2 − z3 ) + y2 (z3 − z1 ) + y3(z1 − z2 )  

  B = z1(x2 − x3 ) + z2 (x3 − x1 ) + z3(x1 − x2 )  

C = x1 (y2 − y3 ) + x2 (y3 − y1 ) + x3 (y1 − y2 ) ec. 4

  D = −x1(y2 z3 − y3 z2 ) − x2 (y3 z1 − y1z3 ) − x1 (y1 z2 − y2 z1)  

Una  alternativa  al  cálculo  de  D  es  emplear  uno  de  los  vértices  del polígono, por ejemplo, el primero (x1, y1, z1), y como ya conocemos A,B y C de la ecuación 4, despejar D de la siguiente forma: 

 

D = −Ax1 − By1 −Cz1 ec. 5

Una vez calculada  la ecuación del plano sabemos que  la normal a dicho plano  tiene  como  coordenadas  cartesianas  las  componentes  (A, B, C),  y debido  a  que  el  objeto  3D  lo  representamos  encerrando  su  interior mediante polígonos, emplearemos la normal del polígono para determinar que  puntos  están  dentro  y  cuáles  fuera,  al mismo  tiempo  que  sabemos cual  es  la  cara  exterior  (la  visible por  el  observador)  y  la  interior  (o no visible), como anticipábamos en los sistemas levógiro y dextrógiro.  La  normal  al  plano  corresponde  al  producto  vectorial definido  por  dos vectores formados por tres puntos no coliniales: 

Resumen Representación de Objetos 3D

‐ 10 ‐ 

 

 

 

 

 

 

 

 

Figura 6: Cálculo vectorial de la Normal

 

Así tenemos que: 

si Ax + By + Cz + D < 0 , el punto (x, y, z) está dentro de la superficie, y 

si Ax + By + Cz + D > 0 , el punto (x, y, z) está fuera de la superficie. 

(V2 − V1)

(V2 − V1)

V1

V2

V3

r N = (V2 − V1) × (V3 − V1)  

Page 6: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 2 Métodos de Detección de

Superficies Visibles

‐ 11 ‐ 

         

Capítulo 2 Métodos de Detección de Superficies Visibles

  

no de  los mayores problemas en  la generación y visualización de gráficos realistas es identificar aquellas partes de la escena que son visibles  desde  la  posición  de  observación  elegida.  Hay  varias 

aproximaciones que podemos  emplear para  solucionar  este problema, y numerosos  algoritmos  que  han  sido diseñados  para  la  identificación de objetos  visibles  para  diferentes  tipos  de  aplicaciones. Algunos métodos requieren más memoria, otros más tiempo de procesamiento, y algunos se aplican sólo a  tipos especiales de objetos. La decisión a  la hora de elegir uno  depende  de  la  complejidad  de  la  escena,  el  tipo  de  objetos  a visualizar, y el equipo disponible y si vamos a generar escenas estáticas o animadas.  

Clasificación de los Algoritmos de detección de Superficies Visibles

Hay métodos  que  operan  en  espacio  objeto,  y métodos  que  operan  en espacio  imagen.  En  los  primeros  se  trabaja  con  el  modelo  de representación de  los objetos 3D, es decir manipulamos  los objetos en sí, mientras  que  en  los  segundos,  operamos  sobre  la  imagen  que  vamos  a generar, por ejemplo, los píxeles del raster que forman la pantalla.  

U

Resumen de Lección Métodos de Detección de Superficies Visibles

‐ 12 ‐ 

2.1. Detección de Caras Posteriores (Back-Face).

Uno de  las primeras  consideraciones que podemos hacer, que  se puede aplicar  con  independencia  del  algoritmo  de  ocultación  de  superficies elegido, es eliminar aquellas caras que están de espaldas al observador, en el ejemplo que se ve en la figura 5, el polígono P0 no sería visible desde la posición  del  observación  elegida.  Para  saber  qué  caras  son  visibles empleamos sustituimos el punto en  la ecuación del plano y examinamos su signo, si es negativo está dentro:  

  Ax + By + Cz + D < 0 ec. 6

 

Cuando un punto interior está a  largo de una línea visual a la superficie. El polígono debe ser una cara posterior (nos encontramos dentro de dicha cara y no podemos verla desde nuestra posición de observación). 

 

Podemos  simplificar  este  test  si  consideramos  el vector normal  r N  de  la 

superficie  poligonal,  que  tiene  coordenadas  cartesianas  (A,  B,  C).  En general si 

r V es un vector en la dirección de observación desde la posición 

del ojo (o cámara), no es visible desde el observador si: 

r N ⋅

r V > 0 ec. 7

Más aún,  si  la descripción del objeto  se ha proyectado y  la dirección de observación es paralela al eje z (que es lo más usual y se ajusta al modelo de cámara que proponemos), entonces 

r V =(0,0,Vz) y por tanto: 

r N ⋅

r V = Vz C ec. 8

de esta forma sólo necesitamos considerar el signo de C, la componente z del vector normal 

r N . 

Page 7: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 2 Métodos de Detección de

Superficies Visibles

‐ 13 ‐ 

 

En  un  sistema  positivo  o  dextrógiro  un  polígono  es  invisible  desde  el observador si C es menor que cero. Así en general podemos etiquetar los polígonos como posteriores cuando se cumpla: 

C ≤ 0 ec. 9

  

 

 

 

 

 

 

 

Figura 7: Ejemplo de caras visibles e invisibles

La siguiente figura muestra un ejemplo de una cara posterior:  

 

 

 

 

 

 

 

 

 

Figura 8: Cara no visible desde el observador

r N = (A, B,C)  

r V

Posición del Observador

-x x

z

-z

C>0, cara visible

C<0, cara invisible

Resumen de Lección Métodos de Detección de Superficies Visibles

‐ 14 ‐ 

 

2.2. Método del Buffer de Profundidad (Z-Buffer)  Una aproximación muy  común dentro de  los métodos que operan  en el espacio imagen es la del método del buffer de profundidad, en el cual se comparan las profundidades en la posición de cada píxel sobre el plano de proyecciones.  Este  procedimiento  se  llama  también  método  Z‐Buffer, debido a que se almacena la profundidad de cada píxel en una matriz que contiene su z. En la siguiente figura se ilustra su funcionamiento:             

Figura 9: La superficie S1 tiene la mayor profundidad (z), siendo visible su píxel (x,y)

 Cada superficie de  la escena se procesa por separado, y cada punto una vez  a  través  de  dicha  superficie.  Este  método  se  aplica  usualmente  a escenas que  contienen únicamente  superficies poligonales, debido  a que las profundidades  se pueden calcular muy  rápidamente y es un método fácil de  implementar. Aunque  también  se puede aplicar a  superficies no planares.  Podemos  implementar  el  algoritmo  de  profundidad  (Z‐Buffer)  en coordenadas normalizadas, por lo que los valores de z varían en el rango entre 0 en el plano de recortado posterior y   zmax en el plano de recortado 

x

y

(x,y)S3

S2

S1

Page 8: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 2 Métodos de Detección de

Superficies Visibles

‐ 15 ‐ 

frontal. El valor de  zmax podrá  ser 1  (para  el  caso del  cubo unitario) o el valor más grande que pueda almacenar el sistema.  Como indica el nombre del método, se requieren varios buffer, en concreto dos, uno que almacene  las profundidades (o z) de  los pixeles,  llamado z‐buffer,  y  otro  que  almacene  los  valores  de  intensidad  de  cada  píxel  en pantalla,  llamado  frame‐buffer.  Inicialmente  el  valor  del  z‐buffer  se establece a 0 y el del frame‐buffer a intensidad de fondo. Cada superficie que aparece en  la  tabla de polígonos es procesada, un scanline cada vez, calculando la z en cada píxel de posición (x, y). La profundidad calculada es comparada con el valor previamente almacenado en el z‐buffer en dicha posición.  Si  la  profundidad  es mayor  que  el  valor  almacenado  en  el  z‐buffer, el valor de la nueva profundidad es almacenado y la intensidad de la  superficie  en  esa posición  se  calcula  (con  los métodos de  iluminación que se explican en el capítulo 4) y coloca en  la posición  (x, y) del  frame‐buffer.  Podemos resumir el algoritmo de la siguiente manera:  

 1.   Inicializar el z‐buffer y el frame buffer para todas la posiciones (x, y):  

z‐buffer(x, y) = 0,  frame‐buffer(x, y) = intensidadfondo   

2.  Para cada posición en cada superficie poligonal, comparar los valores de profundidad  con  los  previamente  almacenados  para  determinar  la visibilidad.  

• Calcular la profundidad z para cada (x, y) del polígono. • Si z>z‐buffer(x, y) entonces 

   z‐buffer(x, y) = z,  frame‐buffer(x, y) = intensidadsuperf (x, y) 

 donde  intensidadfondo  es  la  intensidad  del  fondo  de  la  escena  y  donde intensidadsuperf (x, y) es la intensidad de la superficie en la posición (x, y). 

  

Resumen de Lección Métodos de Detección de Superficies Visibles

‐ 16 ‐ 

Los valores de profundidad para una superficie en  la posición  (x, y) son calculados con la ecuación del plano para cada superficie: 

z =−Ax − By − D

C ec. 10

Recordemos que como sólo consideramos aquellos polígonos que tengan una C superior a 0, no se producirá una división por 0.  Para cualquier scanline (figura 10)  las posiciones horizontales adyacentes a lo largo de la línea difieren en 1, y en un valor vertical de y también de 1. Si  la  profundidad  de  la  posición  (x,  y)  resulta  ser  z,  entonces  la profundidad  z’  de  la  siguiente  posición  (x+1,  y)  a  lo  largo  del  scan  se obtiene con la ecuación 5 como:  

′ z =−A(x +1) − By − D

C ec. 11

o como:   

′ z = z −AC

ec. 12

           

Figura 10: Coordenadas de píxeles adyacentes

 El  ratio  ‐A/C  es  una  constante  para  cada  superficie,  por  lo  tanto sucesivos  valores  de  profundidad  a  lo  largo  de  un  scanline  son obtenidos con sólo una suma.  

x x+1

y-1

y

eje x

eje y

Page 9: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 2 Métodos de Detección de

Superficies Visibles

‐ 17 ‐ 

En  cada  scanline  comenzamos  el  calculando  la  profundidad  en  la arista  izquierda  del  polígono  que  intersecta  con  dicha  scanline. Sucesivos  cálculos  de  la  profundidad  de  posiciones  a  lo  largo  del scanline se efectúan con la ecuación 12.  Primero  determinaremos  la  extensión  del  polígono  en  el  eje  y  y procesaremos  la  superficie desde  la mayor  scanline hasta  la menor como  se  muestra.  Comenzando  en  el  vértice  superior  podemos calcular  recursivamente  x  posiciones  hacia  abajo  sobre  la  arista izquierda  como  x’  =  x‐1/m,  donde  m  es  la  pendiente  de  la  arista (figura  11).  La  profundidad  bajando  por  la  arista  se  obtienen recursivamente como: 

′ z = z −A / m+ B

C ec. 13

Si estamos procesando una arista vertical, la pendiente es infinita y el cálculo se reduce a: 

′ z = z +BC

ec. 14

               

Figura 11: Posiciones de intersección sobre sucesivas scanlines en la arista izquierda

 

x  x’ 

scan line y

scan line y+1

Page 10: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 3 Modelos de Iluminación

        

‐ 19 ‐ 

        

 

Capítulo 3 Modelos de Iluminación

 as  visualizaciones  realistas  de  una  escena  se  obtienen generando proyecciones perspectiva de los objetos y aplicando efectos naturales de luz a las superficies visibles. Un modelo de 

iluminación o modelo de sombreado, es empleado para calcular  la intensidad  de  la  luz  que  deberíamos  ver  en  un  punto  dado  de  la superficie  del  objeto.  Los  algoritmos  de  rendering  de  superficies emplean  el  cálculo  de  las  intensidades  del modelo  de  iluminación para  determinar  la  intensidad  de  luz  para  todos  los  pixeles proyectados para varias superficies de la escena. 

 Fuentes de luz

Cuando  observamos  un  objeto  no  luminoso  opaco,  vemos  la  luz reflejada por  las  superficies de dicho objetos. La  luz  reflejada  es  la suma  de  todas  las  contribuciones  de  las  fuentes  de  luz  y  otras superficies  reflectantes  de  la  escena.  A  veces  nos  referimos  a  las fuentes  de  luz  como  fuentes  emisoras  de  luz;  y  las  superficies reflectantes, tales como  las paredes de una habitación, son llamadas fuentes de luz reflectante.  El  modelos  más  simple  de  emisor  de  luz  es  una  fuente  de  luz puntual.  Los  rayos  de  la  fuente  de  luz  puntual  divergen  en trayectorias radiales desde la posición de dicha fuente.    

L

Resumen Modelos de Iluminación

        

‐ 20 ‐ 

        

     

Figura 12: Rayos divergentes de una fuente de luz puntual

Esta  es  una  aproximación  razonable  para  fuentes  de  luz  que  son relativamente pequeñas comparadas con el tamaño de los objetos de la  escena.  Una  fuente  de  luz  cercana,  tal  y  como  es  un  foco fluorescente,  se modela  con más  precisión  con  una  fuente  de  luz distribuida. En este caso los efectos de la iluminación no se pueden aproximar de forma realista con una fuente de luz puntual, porque el área de la fuente de luz no es pequeña comparada con los objetos de la escena. Un modelo preciso para  las  fuentes de  luz distribuida es considerar  los  efectos  acumulados  de  iluminación  de  los  puntos sobre la superficie de la fuente de luz.            

Figura 13: Fuente de luz distribuida

Page 11: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 3 Modelos de Iluminación

        

‐ 21 ‐ 

        

 Cuando  la  luz  incide  en una  superficie opaca, parte de  esta  luz  es reflejada  y  parte  absorbida.  La  cantidad  de  luz  reflejada  por  la superficie  depende  del  tipo  de material.  Cuando  esa  reflexión  se produce  en  todas  las  direcciones  hablamos  de    reflexión  difusa  y cuando  dicha  reflexión  se  produce  en  una  única  dirección hablaremos de reflexión especular, que es la que produce los brillos. 

Resumen Modelos de Iluminación

        

‐ 22 ‐ 

        

 3.1. Modelos Básicos de Iluminación  

El proceso de  iluminación de  objetos  en un  escenario  3D pretende simular los siguientes efectos: • Fuentes de luz. • iluminación Ambiente. • Reflexiones difusa y especular. • Refracciones.   Vamos a considerar dos tipos de reflexiones:  • reflexión difusa (que es la que hace que una cara esté más o menos 

iluminada). • reflexión especular (que es la que provoca los brillos)            

Luz

Difusa Especular

Luz

θθ

Page 12: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 3 Modelos de Iluminación

        

‐ 23 ‐ 

        

Luz Ambiente El modelo de iluminación más simple es el que considera únicamente la luz ambiente que se representa mediante la siguiente ecuación:   I I ka a= ec. 15

 donde  ka  representa  la constante de  intensidad ambiente, y  Ia  es  la intensidad de la luz ambiente.  

Reflexión Difusa La  luz  difusa  es  constante  para  cada  superficie  de  la  escena, independientemente  de  la  dirección  de  proyección  (es  decir  de  la posición  del  observador).  Este  tipo  de  luz  sigue  la  ley  de  Lambert, donde cada cara se ilumina según el ángulo que forma la normal de la superficie poligonal a  iluminar con  la dirección del vector que va desde  la  luz  a dicha  superficie. Normalmente  en  las  escenas no  se considera  únicamente  la  luz  ambiente,  sino  que  al  menos  se considera una  fuente de  luz, usualmente una  fuente de  luz puntual en la posición del observador.            

I I kp d= cosθ

θr N  

r L  

Punto de luz, intensidad Il*

Resumen Modelos de Iluminación

        

‐ 24 ‐ 

        

 Figura 14: Reflexión Difusa (Ley de Lambert)

  donde  Il  es  la  intensidad  del  punto  de  luz,  kd  es  la  constante  de reflexión difusa y θ es el ángulo que forman los vectores 

r N  y 

r L , o lo 

que es lo mismo: 

cosθ =r N ⋅

r L

r N

r L

ec. 16

 reflexión Especular

La  reflexión  especular modela  los  brillos  que  se  producen  en  los objetos.              

Figura 15: Reflexión Especular (Modelo de Phong)

θθα

(Vector que va hacia el punto de observación) 

r N

* r L

r R

r V  

Page 13: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 3 Modelos de Iluminación

        

‐ 25 ‐ 

        

rN

r N ⋅

r L  

rL

rR

rL

 A partir de ahora asumiremos que todos  los vectores se encuentran normalizados para que las expresiones sean más sencillas. La manera de calcular el vector 

rR  es: 

     

r R =

r N (2

r N ⋅

r L ) −

r L ec. 17

     Además si introducimos la atenuación que se produce a medida que nos alejamos de la luz, que se consigue dividiendo por la distancia al punto de vista del punto (es decir, en nuestro modelo la z) tendremos completo el modelo de iluminación.  Por lo que la fórmula quedará como sigue (d = distancia del punto de vista ≡ z):  

I = Ia ka +I l

d + kkd cosθ + ks cosn α[ ] ec. 18

 No  es  necesario  calcular  los  ángulos  θ   ni  α   puesto  que  lo  que queremos  es  el  coseno  de  dichos  ángulos  podemos  emplear 

Resumen Modelos de Iluminación

        

‐ 26 ‐ 

        

directamente el producto escalar, siempre asumimos que trabajamos con vectores normalizados. La fórmula quedará como sigue:  

I = Ia ka +

I l

d + kkd (

r N ⋅

r L ) + ks (

r R ⋅

r V )n[ ] ec. 19

 Donde k es otra constante que regula  la escena completa alejando o acercando aún más cada punto. Si tenemos varios focos de luz la intensidad final será la suma de la contribución de todas las fuentes de luz:  

I = Ia ka +Il j

d + kkd j cosθ j + ks cos n α j[ ]⎛

⎝ ⎜ ⎞

⎠ ⎟

j =1

m

∑ ec. 20

o si empleamos los productos escalares quedaría como: 

I = Ia ka +

Il j

d + kkd j

r N ⋅

r L j( )+ ks

r N ⋅

r R j( )n[ ]⎛

⎝ ⎜ ⎞

⎠ ⎟

j =1

m

∑ ec. 21

Donde m es el número de  fuentes de  luz y  la n es el exponente de Phong, que modela el brillo del material   del objeto, como resultado se obtiene que a mayor n el brillo es más concentrado, y a menor n el brillo es más disperso.   En la siguiente figura se puede ver un ejemplo de este efecto:  

Page 14: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 3 Modelos de Iluminación

        

‐ 27 ‐ 

        

  

Figura 16: Esferas sombreadas según el modelo de Phong. Para todas las esferas ka =0.1 y kd =0.45, y de izquierda a derecha n=2, 20, 50, 100, 200, y de arriba a abajo para todas las esferas ks =0.3, 0.5, 0.70.

3.2. Sombreado de Polígonos  Los métodos de sombreado de polígonos se emplean para suavizar el aspecto plano de los mismos. Indicando cada uno de ellos una forma distinta  de  calcular  la  intensidad  en  cada  píxel  del  polígono  que estamos dibujando. Los métodos que vamos a considerar son los tres siguientes:  1. Sombreado de Intensidad Constante (Flat). 2. Sombreado de Gouraud. 3. Sombreado de Phong.  

Resumen Modelos de Iluminación

        

‐ 28 ‐ 

        

En  los  dos  últimos  se  realiza  interpolación  de  intensidades  o  de vectores normales,  respectivamente, mientras que en el primero no se realiza ningún tipo de interpolación.  

Sombreado de Intensidad Constante (Flat, en opengl GL_FLAT).

En  el  primero  se  emplea  la  normal  del  polígono  para  todos  los píxeles  del  mismo.  De  esta  manera  se  produce  una  iluminación constante para todos los píxeles de cada polígono.               

Figura 17: Sombreado constante

r N

Page 15: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 3 Modelos de Iluminación

        

‐ 29 ‐ 

        

Sombreado por Interpolación Gouraud (en opengl GL_SMOOTH).

En  el  segundo  se  realiza  una  interpolación  de  intensidades  como  se refleja en  la  siguiente  figura, aquí  cada píxel  tiene una  iluminación distinta:            

Figura 18: Suavizado de Gouraud. Interpolación de Intensidades

 El  primer  paso  para  poder  calcular  las  intensidades  I1,  I2,  I3  es interpolar  la  normal  en  cada  uno  de  los  vértices  a  partir  de  las normales  de  todos  los  polígonos  que  compartan  dicho  vértice.  La siguiente figura muestra como se realiza la interpolación para uno de los vértices: 

Ia = I1 − (I1 − I2 )y1 − yS

y1 − y2

Ib = I1 − (I1 − I3 )y1 − yS

y1 − y3

Ip = Ib − (Ib − Ia )xb − xS

xb − xa

Ip

y3  

y1 

y2  

yS   λ

I1

I2  

I3

Ia Ib  

Resumen Modelos de Iluminación

        

‐ 30 ‐ 

        

          

Figura 19: Cálculo del vector normal en un vértice

 La  intensidad de  cada vértice  Ii,  se obtiene  sustituyendo  la normal rNVi

, en la ecuación de iluminación. 

Sombreado por interpolación de Phong (en opengl no existe directamente). En el segundo se realiza una interpolación de normales como se refleja en la siguiente figura. Es idéntico al modelo de Gouraud cambiando las  intensidades  por  normales,  de  modo  que  para  cada  píxel  se emplea  una  normal  diferente.  Para  cada  punto  Pi  se  emplea  la normal Ni.        

  

  

N0 N1 N3 N4 N5

P0 P1 P2 P3 P4

r N 1

r N 2

r N 3  

r N 4

r N vi

r N vi

=

r N 1 +

r N 2 +

r N 3 +

r N 4

Page 16: Resumen GC: Temas 6 y 7 Indice de Tablas Indice de Contenidos · Resumen GC: Temas 6 y 7 Indice de Contenidos ... 3.2. Sombreado de Polígonos ... Figura 9: La superficie S1 tiene

Capítulo 3 Modelos de Iluminación

        

‐ 31 ‐ 

        

   

Figura 20: Suavizado de Phong. Interpolación de Normales

 La siguiente  tabla muestra el efecto de cada uno de  los métodos de sombreado de polígonos expuestos:  

a)  b) 

Resumen Modelos de Iluminación

        

‐ 32 ‐ 

        

c)  d) 

Figura 21: Diversos sombreados de polígonos. a) modelo alámbrico de una copa, b) sombreado constante, c) sombreado de Gouraud y d) sombreado de Phong