01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.
-
Upload
inez-cubero -
Category
Documents
-
view
228 -
download
6
Transcript of 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.
![Page 1: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/1.jpg)
01
Sombras en OpenGLInformática Gráfica– Ingeniería Informática.
Carlos Calvo Rodríguez
![Page 2: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/2.jpg)
02
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)
![Page 3: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/3.jpg)
03
Sombras estáticas
• Aplicación mediante mapas de luz.
• Deben ser precalculados– No requieren eficiencia en tiempo real– No aptos para objetos dinámicos
![Page 4: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/4.jpg)
04
Sombras estáticas
• Varias técnicas de precálculo– Oclusión ambiental– Radiosidad– Otras
![Page 5: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/5.jpg)
05
Sombras dinámicas
• Fixed pipeline – Sombras Volumétricas• GLSL – Shaders – Shadow Mapping
![Page 6: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/6.jpg)
06
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.
![Page 7: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/7.jpg)
07
Sombras volumétricas
![Page 8: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/8.jpg)
08
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);
![Page 9: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/9.jpg)
09
Shadow Mapping
• Renderizado desde cada luz en la textura, cálculo de profundidad.
• Renderizado normal, test contra la textura de profundidad.
![Page 10: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/10.jpg)
010
Shadow mapping
• Renderizado desde la luz– Proyección ortogonal– Suficientemente grande para toda la escena
![Page 11: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/11.jpg)
011
Shadow mapping
C++
GLSL
#version 120
// Entrada de datos de vértice para cada ejecuciónattribute vec3 vertexPosition_modelspace;
// Valores constantes para todo el meshuniform mat4 depthMVP;
void main(){gl_Position = depthMVP * (vec4(vertexPosition_modelspace,1));
}
//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
![Page 12: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/12.jpg)
012
Shadow Mapping
• Sólo se guarda información de profundidad.
![Page 13: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/13.jpg)
013
Shadow Mapping
![Page 14: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/14.jpg)
014
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;}
![Page 15: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/15.jpg)
015
Shadow Mapping - Problemas
• «Shadow acne»• Peter Panning• Aliasing
![Page 16: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/16.jpg)
016
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);
![Page 17: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/17.jpg)
017
Peter Panning
• Problema relacionado con la geometría.• Resuelto utilizando geometría más ancha.• Supone más primitivas por etapa.
![Page 18: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/18.jpg)
018
Aliasing
• PCF– Multisampling por hardware
GLSL
uniform sampler2DShadow shadowMap;
![Page 19: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/19.jpg)
019
Aliasing
• 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.
![Page 20: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/20.jpg)
020
Aliasing
PoissonSampling
N = 16Baja dispersión
![Page 21: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/21.jpg)
021
Aliasing
PoissonSampling
N = 16Alta dispersión
![Page 22: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/22.jpg)
022
Aliasing
StratifiedPoissonSampling
![Page 23: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/23.jpg)
023
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.
![Page 24: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/24.jpg)
024
Shadow Mapping - Variaciones
• Frustum automático de luz– Cálculo de PSR y PSC– Puede causar popping
![Page 25: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/25.jpg)
025
Shadow Mapping - Variaciones
![Page 26: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/26.jpg)
026
Shadow Mapping - Variaciones
• Light Space Perspective Shadow Maps– Modifican el frustum original para conseguir una
calidad más uniforme con la distancia.
![Page 27: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/27.jpg)
027
Shadow Mapping - Variaciones
![Page 28: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/28.jpg)
028
Shadow Mapping - Variaciones
• Cascaded Shadow Maps– Técnica análoga al mipmapping.– Emplea varios Shadow Maps estándar.
![Page 29: 01 Sombras en OpenGL Informática Gráfica– Ingeniería Informática. Carlos Calvo Rodríguez.](https://reader036.fdocuments.co/reader036/viewer/2022062519/5665b4251a28abb57c8f8588/html5/thumbnails/29.jpg)
029
Tel. (34) 923 294450 (ext. 1525) Movil (34) 618696589Fax (34) 923 294514http://bisite.usal.es | [email protected]
Facultad de CienciasUniversidad de Salamanca37007 Salamanca. Spain
Juan Manuel Corchado Rodríguez