La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sombras en OpenGL Informática Gráfica– Ingeniería Informática.

Presentaciones similares


Presentación del tema: "Sombras en OpenGL Informática Gráfica– Ingeniería Informática."— Transcripción de la presentación:

1 Sombras en OpenGL Informática Gráfica– Ingeniería Informática.
Carlos Calvo Rodríguez

2 Sombras en OpenGL Elemento imprescindible para realismo de la escena.
Varios mecanismos Sombras estáticas Sombras dinámicas Sombras volumétricas Mapas de sombras (Shadow Mapping)

3 Sombras estáticas Aplicación mediante mapas de luz.
Deben ser precalculados No requieren eficiencia en tiempo real No aptos para objetos dinámicos

4 Sombras estáticas Varias técnicas de precálculo Oclusión ambiental
Radiosidad Otras

5 Sombras dinámicas Fixed pipeline – Sombras Volumétricas
GLSL – Shaders – Shadow Mapping

6 Sombras volumétricas Uso del Stencil Buffer.
Determinación de siluetas y proyección. Renderizado en múltiples etapas. Renderizado de escena en penumbra. Cálculo de stencil buffer. Renderizado aditivo para cada luz. Test contra el stencil buffer. Extremadamente caro computacionalmente.

7 Sombras volumétricas

8 Shadow Mapping El uso de shaders permite la técnica del Shadow Mapping. Hace uso de una textura –no un búfer- de profundidad. El tamaño de la textura indica la resolución de las sombras. glTexImage2D(GL_TEXTURE_2D, 0,GL_DEPTH_COMPONENT16, 1024, 1024, 0,GL_DEPTH_COMPONENT, GL_FLOAT, 0);

9 Shadow Mapping Renderizado desde cada luz en la textura, cálculo de profundidad. Renderizado normal, test contra la textura de profundidad.

10 Shadow mapping Renderizado desde la luz Proyección ortogonal
Suficientemente grande para toda la escena

11 Shadow mapping C++ GLSL
//Especificamos el búfer creado anteriormente para el shadow map como //objetivo de rendering. glBindFramebuffer(GL_FRAMEBUFFER, fbDepth); glViewport(0, 0, 1024, 1024); //Renderizar en todo el búfer #version 120 // Entrada de datos de vértice para cada ejecución attribute vec3 vertexPosition_modelspace; // Valores constantes para todo el mesh uniform mat4 depthMVP; void main(){ gl_Position = depthMVP * (vec4(vertexPosition_modelspace,1)); }

12 Shadow Mapping Sólo se guarda información de profundidad.

13 Shadow Mapping

14 Shadow Mapping El test de sombreado permite cambiar el renderizado condicionalmente. GLSL float visibility = 1.0; if ( texture( shadowMap, ShadowCoord.xy ).z < ShadowCoord.z - bias){ visibility = 0.5; }

15 Shadow Mapping - Problemas
«Shadow acne» Peter Panning Aliasing

16 Shadow Acne Margen de error Margen de error ajustado
Front-face culling // Ajuste de error fijo... float bias = 0.005; // ...o variable // float bias = 0.005*tan(acos(cosTheta)); // bias = clamp(bias, 0,0.01); glEnable(GL_CULL_FACE); glCullFace(GL_FRONT);

17 Peter Panning Problema relacionado con la geometría.
Resuelto utilizando geometría más ancha. Supone más primitivas por etapa.

18 Aliasing PCF Multisampling por hardware GLSL
uniform sampler2DShadow shadowMap;

19 Aliasing Poisson Sampling Stratified Poisson Sampling
Multisampling fijo alrededor del pixel Puede presentar «banding» si se dispersan las muestras. Stratified Poisson Sampling Muestreo aleatorio alrededor del píxel. Genera patrones de ruido.

20 Aliasing Poisson Sampling N = 16 Baja dispersión

21 Aliasing Poisson Sampling N = 16 Alta dispersión

22 Aliasing Stratified Poisson Sampling

23 Shadow Mapping - Mejoras
«Early bailing» Luces «spot» Matriz de proyección de la luz. Múltiples luces Necesidad de etapas extra Luces de punto Uso de cubemaps para el shadowmapping.

24 Shadow Mapping - Variaciones
Frustum automático de luz Cálculo de PSR y PSC Puede causar popping

25 Shadow Mapping - Variaciones

26 Shadow Mapping - Variaciones
Light Space Perspective Shadow Maps Modifican el frustum original para conseguir una calidad más uniforme con la distancia.

27 Shadow Mapping - Variaciones

28 Shadow Mapping - Variaciones
Cascaded Shadow Maps Técnica análoga al mipmapping. Emplea varios Shadow Maps estándar.

29 Juan Manuel Corchado Rodríguez
Facultad de Ciencias Universidad de Salamanca 37007 Salamanca. Spain Tel. (34) (ext. 1525) Movil (34) Fax (34) |


Descargar ppt "Sombras en OpenGL Informática Gráfica– Ingeniería Informática."

Presentaciones similares


Anuncios Google