Upload
javier-canton-ferrero
View
303
Download
0
Tags:
Embed Size (px)
Citation preview
• For each object
• Encontrar las luces que afectan al objeto
• Renderizar todas las luces y materiales en una pasada
• Explosión de combinaciones• Shader por cada material y tipo de luz
• Perdida de ciclos de GPU• Overdraw
• Triangles fuera del rango de la luz
• For each light
• For each object
• Añadir la contribución de luz
• Shaders para cada tipo de material y luz
• Perdida de ciclos de GPU• Overdraw
• Triangles fuera del rango de la luz
• For each object
• Almacenar todo lo necesario en el G-Buffer
• For each light and pixel iluminado• Usar el G-Buffer para el cálculo de luz
• Añadir el resultado al frame buffer
• Shaders simples
• Elimina la limitación del número de luces
• Multi Render Target (MRT)
• Ancho de banda elevado
• MSAA
• No contempla objetos transparentes
• Materiales limitados a la información en G-Buffer
• For each object
• Almacenar Position y Normal
• For each light • Dibujar un volumen de luz
• Calculo de luz con la información almacenada
• Acumular el calculo sobre un lightingRT
• For each object• Dibujar cada pixel utilizando la iluminación
almacenada
• Desktop (Windows, Linux, MacOS)• DepthBuffer supported
8R (8bits) G (8 bits) B (8 bits) A (8 bits)
Normal X Normal Y Normal Z Specular Power
Depth (24 bits) S8
• Windows Metro• DirectX 9_1 (No Depth, no MRT)
• Windows Phone• DirectX 9_3 (Depth supported)
R (8 bits) G (8 bits) B (8 bits) A (8 bits)
Normal X Normal Y Normal Z Specular Power
Depth (24 bits) S8
R (8 bits) G (8 bits) B (8 bits) A (8 bits)
Normal 1 Normal 2 Depth (16 bits)
• iOS• DepthTexture extensión
R (8 bits) G (8 bits) B (8 bits) A (8 bits)
Normal X Normal Y Normal Z Specular Power
Depth (24 bits) S8
• Android• DepthTexture extensión (OpenGL ES 2.0)
• Tegra GPU (MRT supported)
R (8 bits) G (8 bits) B (8 bits) A (8 bits)
Normal X Normal Y Normal Z Specular Power
Depth (24 bits) S8
R (8 bits) G (8 bits) B (8 bits) A (8 bits)
Normal X Normal Y Normal Z Specular Power
Depth (32 bits)