phong and blinn phong
Post on 18-Jul-2015
170 Views
Preview:
TRANSCRIPT
Lighting
Agenda
• Modelos de iluminación
• Phong
• Blinn-Phong
• Implementation
• Multiples luces
• Deferred rendering
• Tiled Based rendering
Modelos de iluminación
• Phong
• Blinn-Phong
• Lambert
• Oren Nayar
• Cook-Torrance
• Minnaert
Phong
Phong
Specular Power
Blinn-Phong
Blinn-Phong
Diferencia entre modelos
Detalles de ImplementaciónPhong Blinn-Phong Approximate curve 4.0 4.2
ResultadoPhong Normal Blinn-Phong Blinn-Phong With 4.2
Problemas comunes
• WorldInverseTranspose
• Normales no normalizadas
• Directions no normalizadas
• LightColor no normalizadas
WorldInverseTranspose
Normales no normalizadas
Direcciones no normalizadas
LightColor no normalizadas
Multiples luces
• Bucle en el que se recorren todas las luces y se acumula el resultado.
Multiples luces
• Realizar varias pasadas acumulando el resultado mediante Additive.
Multiples luces
• Cálculo de nuevas luces que acumulan al resto.
• Varios shaders para 1, 2, 3 y 4 luces.
• Problema con las transiciones entre luces.
Deferred Rendering
• For each light
– For each object
• Añadir la contribución de luz al framebuffer
• Shader por tipo de material y por tipo de luz
• Perdida de ciclos de Shaders
– Superficies invisibles / Overdraw
– Triángulos fuera de la influencia de la luz.
– Perdida de tiempo
• Full VertexBuffer, Texture Filtering
Deferred Rendering
• For each object
– Almacenar sus propiedades en el G-Buffer
• For each light and lit pixels
– Usar el G-Buffer para calcular la iluminación
– Añadir el resultado al framebuffer
• Número constante de pixeles (Screen Spaces)
• No contempla objetos transparentes.
Deferred Rendering
RenderTarget 0 (SurfaceFormat.Color)
Color.R Color.G Color.B Specular Intensity
RenderTarget 1 (SurfaceFormat.Color)
Normal.X Normal.Y Normal.Z Specular Power
RenderTarget 2 (SurfaceFormat.Single)
Depth 32bit
Deferred Rendering
Tile-based Deferred Shading
• Dividir la pantalla en tiles y determinar que luces afectan a cada tile.
• Se utiliza suele utilizar DirectCompute.
Tile-based Deferred Shading
Thank you so much
Javier Cantón Ferrero
top related