La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Visualización Computacional 2

Presentaciones similares


Presentación del tema: "Visualización Computacional 2"— Transcripción de la presentación:

1 Visualización Computacional 2
Sombras Visualización Computacional 2

2 Horarios (again…) LUNES 26/10: Aula 2 Facultad (19 hs.): Introducción
MARTES 27/10: Aula 2  Facultad  (19 hs.): Texturas MIERCOLES 28/10: Aula 2  Facultad  (19 hs.): Técnicas de iluminación avanzadas JUEVES 29/10: Aula 2 Facultad (19 hs.): Sombras  VIERNES 30/10: Aula 2 Facultad (19 hs.): Optimización LUNES 2/11: Aula 1 Facultad (18 hs.): Animación – Comportamiento Físico

3 Half Life 2 - Valve Software

4 Sombras - Resumen Introducción ¿Por qué usar sombras? Técnicas
Fake Shadows Planar Shadows Projective Textures Shadow Mapping Soft Shadows & Hard Shadows Shadow Volumes Conclusiones

5 Sombras - Introducción
0: Si la luz es bloqueada en este punto Si= 1: Si la luz no es bloqueada en este punto Notar que las áreas que se encuentran en sombra (no influenciadas por ninguna luz) son iluminadas por la luz ambiental

6 Sombras - Introducción
Sombra compuesta de dos regiones: Umbra Penumbra Umbra es la región sólida Luz completamente bloqueada Penumbra es la zona de transición Luz bloqueada parcialmente No ocurre con luces puntuales

7 Sombras - Introducción
Soft Shadows Hard Shadows Hasenfratz et al. / Real-time Soft Shadows

8 Sombras - Introducción
Un punto está en sombras si no es “visto” desde la posición de la luz. Los algoritmos de evaluación de sombra son similares a los algoritmos de determinación de vista. Cuando existen múltiples luces debo clasificar los polígonos para cada una. Igualmente, existen aproximaciones sin hacer testeo de visibilidad.

9 Sombras - ¿Por qué usar sombras?
Ocultan defectos. Uso en condiciones climáticas y efectos especiales. Incrementan notablemente el realismo. Brindan información adicional de la escena.

10 Sombras - ¿Por qué usar sombras?

11 Sombras - ¿Por qué usar sombras?
Posición y tamaño relativos a la escena

12 Sombras - ¿Por qué usar sombras?
Información adicional del entorno

13 Sombras - ¿Por qué usar sombras?
Información adicional del modelo

14 Sombras - Fake Shadows La forma más simple de crear una sombra: agregar un polígono debajo del objeto.

15 Sombras - Fake Shadows Ventajas: Desventajas: Complejidad: Constante
Extremadamente simple. Desventajas: Técnica muy limitada. El piso debe ser plano. El objeto debe estar a cierta altura del piso. Sólo puede rotar en el eje Y. No es verdadera en cuanto a la forma del objeto. No es verdadera en cuanto a la dirección de la luz. No hará sombra más que en el piso. Complejidad: Constante

16 Sombras - Fake Shadows Pequeña mejora: usar escala negativa (misma idea que los fake de reflejo). La ventaja es que la sombra ahora tiene la forma del objeto. Uso de stencil buffer para cortar la proyección. Complejidad: Cant. Objetos glPushMatrix(); glScalef(1.0, -1.0, 1.0); drawDinosaur(); glPopMatrix(); drawFloor();

17 Stencil Buffer frame buffer
Marcar los píxeles en una pasada de rendering para controlar actualizaciones en futuras pasadas. "For pixels en el frame buffer" → "For pixels marcados en el frame buffer" Se pueden especificar distintas operaciones: stencil test falla stencil test pasa & depth test falla stencil test pasa & depth test pasa depth buffer stencil buffer

18 Sombras - Planar Shadows
Dibujar la geometría real y la geometría proyectada sobre los planos donde habrá sombra.

19 Sombras - Planar Shadows
Dibujar planos(); For todos los planos begin aplicar transformacion de proyección; deshabilitar DEPTH_TEST; deshabilitar colores; dibujar Objeto 3d proyectado; End; Dibujar Objeto 3D();

20 Sombras - Planar Shadows

21 Sombras - Planar Shadows
Ventajas: Proyección sobre distintos planos. La sombra refleja la situación de acuerdo a la rotación del objeto. La sombra cambia de acuerdo a la posición de la luz Desventajas: Tengo que dibujar el objeto tantas veces como planos. Los objetos no proyectan sombra ni sobre sí mismos ni sobre otros objetos. No es posible proyectar sombras en superficies curvas. Complejidad: Cant. Objetos * Cant. Planos

22 Sombras - Projective Shadows
Surge como mejora a Planar Shadows: renderizar el objeto a una textura (o tenerla precalculada) y proyectar la textura. Render desde L Textura B/N Render Final

23 Sombras - Projective Shadows
Ventajas: Las mismas que Planar Shadows. No se renderiza el objeto una vez por cada plano. Desventajas: Resolución. Se debe especificar occluder y receiver Limitación por la cantidad de unidades de texturas. Complejidad: MAX (Cant. Objetos, Cant. Planos)

24 Sombras - Shadow Mapping
Utilización de textura con información de Z-Buffer. Dos pasadas: Calcular shadow map (renderizar desde el punto de la luz). Renderizar la escena chequeando si los puntos están o no en sombra. Foley et al. “Computer Graphics Principles and Practice”

25 Sombras - Shadow Mapping
Tenemos el punto 3D (x,y,z)WS. ¿Cómo obtenemos su valor del Shadow Map? Rta: Se aplica al punto la matriz de proyección usada en la imagen generada desde el punto de vista de la luz. (x',y',zL) (x',y',z') LS (x,y,z)WS Obtenemos (x’,y’,z’)LS zL:=ShadowMap(x’,y’); Si zL<z’ entonces punto en sombra Sino punto en luz Foley et al. “Computer Graphics Principles and Practice”

26 Sombras - Shadow Mapping
Ventajas: Los objetos proyectan sombra sobre sí mismos y sobre otros objetos. La técnica más rápida y directa. No se necesita conocimiento previo de la escena. Independiente del punto de vista. Desventajas: No sirve para luces omni-direccionales. Field of View. Dependencia de precisión del Z-Buffer. Aliasing del Shadow Map. Consumo de recursos (render target switch y uso de texturas) Complejidad: Cant. Objetos

27 Sombras - Soft Shadows Diversas técnicas de soft shadows pero alejadas de un frame rate aceptable. Nuevas técnicas orientadas hacia procesamiento de imágenes sobre el Shadow Map. Se intenta mejorar el aliasing y la calidad en técnicas como Shadow Mapping.

28 Sombras - Soft Shadows Pasos: Generar el shadow map.
Guardar a un buffer de textura las partes de la escena que están en sombras después del algoritmo de comparación. Realizar procesamiento de Blur o Soften a la imagen guardada en el paso 2. Proyectar la textura procesada en el espacio de coordenadas de la escena en la pantalla.

29 Sombras - Soft Shadows Map Shadow Original Map Shadow Blur: 1 pasada
2 pasadas Map Shadow Original Map Shadow Blur: 1 pasada

30 Sombras - Shadow Volumes
El cable proyecta sombra sobre el personaje. El personaje proyecta sombra sobre el piso.

31 Sombras - Shadow Volumes
Representar explícitamente el volumen de la sombra en el espacio. Para cada polígono se construye una pirámide con la luz como vértice más alto. Se incluye un polígono para cortar el volumen. El test queda parecido a un test de clipping.

32 Sombras - Shadow Volumes
“Abducted” Contraband Entertainment

33 Sombras - Shadow Volumes
Geometría Visible Escena compleja con sombras Geometría Shadow Volume “Abducted”, Contraband Entertainment

34 Sombras - Shadow Volumes
Geometría Visible Escena con múltiples fuentes de luz Geometría Shadow Volume “Abducted” Contraband Entertainment

35 Sombras - Shadow Volumes
Si un punto está dentro del volumen generado a partir de una luz Li ese punto no recibe contribución de esa luz. Costo ~ #polys * #luces

36 Sombras - Shadow Volumes
Tirar un rayo desde el punto de vista al punto. Incrementar/decrementar un contador cada vez que se intersecta un polígono del shadow volume (usando z buffer) Si el contador es <> 0 el punto está en sombra. +1 -1

37 Sombras - Shadow Volumes
Determinar la silueta del objeto que proyectará sombra. Extruír la silueta desde el punto de vista de la luz para construir el Shadow Volume. Algoritmo de conteo Zpass o Zfail.

38 Sombras - Shadow Volumes
Silueta del Objeto generador (Ocludder) Luz Shadow volume (extensión infinita) Un shadow volume es un volumen definido por la luz y la silueta del objeto generador de sombra.

39 Sombras - Shadow Volumes (Zpass Caso 1)
Luz Ocludder + + + - - - Objeto fuera de la sombra Espectador Contador Shadow Volume = = 0

40 Sombras - Shadow Volumes (Zpass Caso 2)
Luz Ocludder + + + - Objeto en sombra Espectador Contador Shadow Volume = = 2

41 Sombras - Shadow Volumes (Zpass Caso 3)
Luz Occluder Objeto fuera de la sombra Espectador Contador Shadow Volume = 0 (ninguna pasada zPass)

42 Sombras - Shadow Volumes (Problema zNear)
Perdemos esta intersección (problemas en el conteo) zFar Clip Plane View Frustum zNear Clip Plane

43 Sombras - Shadow Volumes (Error Zpass)
Luz Ocludder + - Objeto en sombra Espectador Contador Shadow Volume = +1-1 = 0

44 Sombras - Shadow Volumes (Error Zpass)
Tres posibles soluciones: j Reacomodar los contadores de acuerdo a los volúmenes y la posición de la vista. k Clipping de los shadow volumes al View Frustum. l Usar Z-Fail.

45 Sombras - Shadow Volumes (Solución Reacomodar contadores)
Ajustar el valor inicial del contador. MUY COSTOSO +1 +1

46 Sombras - Shadow Volumes (Solución Clipping de SV)
Hacer clipping de los shadow volumes con el frustum de vista e incluir estos polígonos en el conteo. Difícil reconstrucción

47 Sombras - Shadow Volumes (Solución ZFail)
Luz Ocludder + + Objeto en sombra Espectador Contador Shadow Volume = +1+1 = 2

48 Sombras - Shadow Volumes (Zfail)
Luz Ocludder Objeto fuera de la sombra Espectador Contador Shadow Volume = 0 (ninguna pasada zFail)

49 Sombras - Shadow Volumes (Zfail)
Luz Ocludder - - - + + + Objeto fuera de la sombra Espectador Contador Shadow Volume = = 0

50 Sombras - Shadow Volumes
Ventajas: La proyección de sombras sobre sí mismos en los objetos es automática. Pocos problemas de aliasing y resolución. Sirve para luces omni-direccionales. Desventajas: Imposible hacer soft shadows. Consume fillrate. Se necesita calcular la silueta (costo CPU). Complejidad: Cant. Objetos*2 (si no tenemos doble stencil)

51 Sombras - Zpass y ZFail Nota: Juegos tipo Diablo: Zpass
Zpass Ventajas: No requiere Volumes con bordes. Más eficiente (Oclussion Culling). Zfail Ventajas: No tiene problemas con plano zNear. No tiene problemas con posición de espectador. Nota: Juegos tipo Diablo: Zpass Juegos tipo Doom3: Zfail

52 Sombras - Shadow Volumes
Sería imposible utilizar Shadow Volumes con la reja! La sombra de la reja aparece en el camión y el piso utilizando Shadow Maps. “Fuel” Firetoad Software

53 Sombras - Conclusiones
La mayoría son algoritmos costosos. Requieren conocimientos de procesamiento de imágenes y de geometría no triviales. No existe la técnica “perfecta”. La mejor decisión es la combinación de técnicas de acuerdo al tipo de escena.

54


Descargar ppt "Visualización Computacional 2"

Presentaciones similares


Anuncios Google