phong and blinn phong

Post on 18-Jul-2015

170 Views

Category:

Software

5 Downloads

Preview:

Click to see full reader

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