5. • 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
6. • 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
7.
8. • 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
18. • Multi Render Target (MRT)
• Ancho de banda elevado
• MSAA
• No contempla objetos transparentes
• Materiales limitados a la información en G-Buffer
19. • 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
24. • 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
25. • 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)
26. • 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
27. • 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)