Estrategias y Tendencias en el desarrollo de motores para juegos<br />Lic. Federico A. Lois<br />
Nos enfocaremos en<br />Tendencias en el desarrollo de Motores AAA<br />Entorno de desarrollo que integra o abstrae de for...
Los motores 3D suelen proveer <br />		soluciones genéricas para:<br />Editores <br />de mundo<br />Inteligencia <br />Arti...
Ecuación del Rendering<br />𝐿𝑜𝑥,𝜔,𝜆,𝑡=𝐿𝑒𝒙,𝜔,𝜆,𝑡+ Ω𝑓𝑟𝒙,𝜔′,𝜔,𝜆,𝑡𝐿𝑖(𝒙,𝜔′,𝜆,𝑡)(−𝜔′∙𝒏)ⅆ𝜔′<br /> <br />Source: Immel et al, Kaji...
Source: GPU Gems 3 (Capítulo 14)<br />
Renderers<br />Forward Renderers<br />- Single Pass Rendering<br />- Multi Pass Rendering<br />Deffered Renderers<br />Sim...
Simulation Based Renderers<br />Source: Maxwell Render<br />
La década en Renderers<br />560 polygons<br />4x 256 textures<br />2,500 polygons<br />2x 1024 textures<br />12,000 base<b...
Forward Renderers<br />Single Pass Rendering<br />For each Object<br />     Render [aplicando todas las luces]<br />Explos...
Forward Renderers<br />Shaders para cada material y tipo de luz<br />Ciclos de GPU perdidos<br /> - Overdraw y Objetos Inv...
Deffered Renderers<br />For each Object<br />     Render de la superficie en el G-Buffer<br />For each Light y Pixel Ilumi...
Killzone 2: Deferred Renderer<br />- RGBA8 para color.<br />- Standard Depth y Stencil Buffer<br />- Normal Buffer<br />- ...
Source: Killzone 2 Renderer<br />
Source: Killzone 2 Renderer<br />
Source: Killzone 2 Renderer<br />
Source: Killzone 2 Renderer<br />
Source: Killzone 2 Renderer<br />
Source: Killzone 2 Renderer<br />
Source: Killzone 2 Renderer<br />
Source: Killzone 2 Renderer<br />
Killzone 2: Deferred Renderer<br />Luces renderizadas como geometría.<br />Por cada luz…<br />   - Encontrar y marcar los ...
Killzone 2: Deferred Renderer<br />Postprocesamiento para efectos<br /> - Corrección de colores<br />      - Sombras<br />...
Killzone 2: Deferred Renderer<br />Pros:<br />- Estructura de datos comprimida<br />- Muchos atributos extras<br />- Permi...
Halo Wars Terrain Renderer<br />Engine para Xbox360.<br />Foco en la experiencia visual.<br />Foco en sacar ventaja del ha...
Source: GDC 2009 The Terrain of Next Gen <br />
El terreno ocupa 70% al 98% de la pantalla<br />Eliminar el sistema de acantilados de AOE3.<br />Incrementar 8x la resoluc...
Height Fields<br />Source: GDC 2009 The Terrain of Next Gen <br />
Vector Field<br />Source: GDC 2009 The Terrain of Next Gen <br />
Problemas<br />400 MB<br />Mayor uso de memoria.<br />4k x 4k vertices<br />¿Performance? <br />¿¿¿En serio???<br />Creaci...
Compresión al rescate<br />Wavelets y DXT<br />Descompresión en GPU<br />Remover alta frecuencia<br />Incrementar el tile ...
Al servicio de Ud!!!<br />Cambio Repentino: Soportar Cámara FPS<br />…Más problemas… Demasiada Densidad<br />Level of Deta...
¿Más problemas?<br />NO, al menos de rendering<br />
Bienvenido al SimRep<br />LOD para simulación<br />VisRep en GPU<br />SimRep en CPU<br />Height Field para Ray Casting <br...
Texturas de 10k x 10k<br />5 canales de texturas<br />12 canales de blending<br />No lo suficientemente rápido<br />Compos...
Conclusiones<br />- Los Vector Fields son faciles de implementar<br />- Tesselation por hardware es el futuro de los terre...
Upcoming SlideShare
Loading in...5
×

ECImag 2010 - Clase 2/5

268

Published on

ECImag 2010 - Estrategias y tendencias en el Desarrollo de Motores de Juegos. Julio 2010. Clase 2.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
268
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Permite a los programadores y a los artistas tomar decisiones y no pisarse los cayitos…
  • ECImag 2010 - Clase 2/5

    1. 1. Estrategias y Tendencias en el desarrollo de motores para juegos<br />Lic. Federico A. Lois<br />
    2. 2. Nos enfocaremos en<br />Tendencias en el desarrollo de Motores AAA<br />Entorno de desarrollo que integra o abstrae de forma coherente los componentes críticos necesarios para el desarrollo de un videojuego AAA, con assets 3D, sonido de alta definición para Consolas Next-Gen y PCs de alta gama. <br />
    3. 3. Los motores 3D suelen proveer <br /> soluciones genéricas para:<br />Editores <br />de mundo<br />Inteligencia <br />Artificial<br />Networking<br />Audio<br />Física de <br />cuerpo rígido<br />Scripting<br />Servicios de<br />Rendering<br />Desarrollo<br />Multiplataforma<br />
    4. 4. Ecuación del Rendering<br />𝐿𝑜𝑥,𝜔,𝜆,𝑡=𝐿𝑒𝒙,𝜔,𝜆,𝑡+ Ω𝑓𝑟𝒙,𝜔′,𝜔,𝜆,𝑡𝐿𝑖(𝒙,𝜔′,𝜆,𝑡)(−𝜔′∙𝒏)ⅆ𝜔′<br /> <br />Source: Immel et al, Kajiya (1986)<br />Y eso que no considera:<br />- Fosforecencia<br />- Fluorescencia<br />- Interferencias<br />- Subsurface Scattering<br />
    5. 5. Source: GPU Gems 3 (Capítulo 14)<br />
    6. 6. Renderers<br />Forward Renderers<br />- Single Pass Rendering<br />- Multi Pass Rendering<br />Deffered Renderers<br />Simulation Based Renderers<br />
    7. 7. Simulation Based Renderers<br />Source: Maxwell Render<br />
    8. 8.
    9. 9. La década en Renderers<br />560 polygons<br />4x 256 textures<br />2,500 polygons<br />2x 1024 textures<br />12,000 base<br />2x 2048 textures<br />
    10. 10. Forward Renderers<br />Single Pass Rendering<br />For each Object<br /> Render [aplicando todas las luces]<br />Explosión Combinatoria de Shaders<br />Shadow Maps en memoria<br />Ciclos de GPU perdidos<br /> - Overdraw y Objetos Invisibles.<br /> - Triangulos fuera de la influencia de la luz.<br />
    11. 11. Forward Renderers<br />Shaders para cada material y tipo de luz<br />Ciclos de GPU perdidos<br /> - Overdraw y Objetos Invisibles.<br /> - Triangulos fuera de la influencia de la luz.<br />- Trabajo repetido<br />Multi Pass Rendering<br />For each Light<br /> For each Object[afectado por esa luz]<br /> framebuffer += Ilum(Object) [contribución de luz]<br />
    12. 12. Deffered Renderers<br />For each Object<br /> Render de la superficie en el G-Buffer<br />For each Light y Pixel Iluminado<br />Usar G-Buffer para computar iluminación. <br /> Agregar resultado al frame buffer.<br />Shaders más sencillos.<br />Escala con el número de pixels iluminados.<br />No soporta objetos transparentes.<br />
    13. 13. Killzone 2: Deferred Renderer<br />- RGBA8 para color.<br />- Standard Depth y Stencil Buffer<br />- Normal Buffer<br />- XY Motion Vectors<br />- Specular Exponent<br />- Specular Intensity<br />- Diffuse Color<br />Source: Killzone 2 Renderer<br />
    14. 14. Source: Killzone 2 Renderer<br />
    15. 15. Source: Killzone 2 Renderer<br />
    16. 16. Source: Killzone 2 Renderer<br />
    17. 17. Source: Killzone 2 Renderer<br />
    18. 18. Source: Killzone 2 Renderer<br />
    19. 19. Source: Killzone 2 Renderer<br />
    20. 20. Source: Killzone 2 Renderer<br />
    21. 21. Source: Killzone 2 Renderer<br />
    22. 22. Killzone 2: Deferred Renderer<br />Luces renderizadas como geometría.<br />Por cada luz…<br /> - Encontrar y marcar los pixels visibles.<br /> - Si la luz contribuye a la escena.<br /> - Renderizar Shadow Map.<br /> - Sumar contribución al framebuffer.<br />Single Pass Forward Renderer para transparencias<br /> - Shaders para 4 uberlights.<br /> - Sin sombras<br /> - Para partículas, vertex lighting.<br />
    23. 23. Killzone 2: Deferred Renderer<br />Postprocesamiento para efectos<br /> - Corrección de colores<br /> - Sombras<br /> - Mid-tones<br /> - Highlights, etc<br /> - Motion Blur, Depth of Field<br /> - Lens reflections<br /> - Film grain filter<br />
    24. 24. Killzone 2: Deferred Renderer<br />Pros:<br />- Estructura de datos comprimida<br />- Muchos atributos extras<br />- Permite MSAA con soporte de hardware<br />- Soporte para muchas luces dinámicas.<br />Contras:<br /> - Precisión limitada para rango dinámico<br /> - Acumulación de iluminación en gamma space<br /> - Se podría usar otro espacio de color (LogLuv)<br />- Descompresión y compresión de atributos.<br />- Todo es renderizado con el mismo modelo de iluminación(phong).<br />
    25. 25. Halo Wars Terrain Renderer<br />Engine para Xbox360.<br />Foco en la experiencia visual.<br />Foco en sacar ventaja del hardware.<br />Foco en los avances del género.<br />Bonfire, nuevo estudio, nuevo engine.<br />Source: GDC 2009 The Terrain of Next Gen <br />
    26. 26. Source: GDC 2009 The Terrain of Next Gen <br />
    27. 27. El terreno ocupa 70% al 98% de la pantalla<br />Eliminar el sistema de acantilados de AOE3.<br />Incrementar 8x la resolución.<br />Permitir full displacement<br />Source: GDC 2009 The Terrain of Next Gen <br />
    28. 28. Height Fields<br />Source: GDC 2009 The Terrain of Next Gen <br />
    29. 29. Vector Field<br />Source: GDC 2009 The Terrain of Next Gen <br />
    30. 30.
    31. 31.
    32. 32. Problemas<br />400 MB<br />Mayor uso de memoria.<br />4k x 4k vertices<br />¿Performance? <br />¿¿¿En serio???<br />Creación del Contenido<br />Source: GDC 2009 The Terrain of Next Gen <br />
    33. 33. Compresión al rescate<br />Wavelets y DXT<br />Descompresión en GPU<br />Remover alta frecuencia<br />Incrementar el tile spacing y reducir cantidad<br />Densidad máxima 2k x 2k<br />14 MB<br />Reducir el espacio del mundo<br />Tamaño máximo 1280x1280<br />Source: GDC 2009 The Terrain of Next Gen <br />
    34. 34. Al servicio de Ud!!!<br />Cambio Repentino: Soportar Cámara FPS<br />…Más problemas… Demasiada Densidad<br />Level of Detail<br />Source: GDC 2009 The Terrain of Next Gen <br />
    35. 35.
    36. 36.
    37. 37. ¿Más problemas?<br />NO, al menos de rendering<br />
    38. 38. Bienvenido al SimRep<br />LOD para simulación<br />VisRep en GPU<br />SimRep en CPU<br />Height Field para Ray Casting <br />4 versiones <br /> a distintas densidades<br />Source: GDC 2009 The Terrain of Next Gen <br />
    39. 39.
    40. 40.
    41. 41.
    42. 42.
    43. 43. Texturas de 10k x 10k<br />5 canales de texturas<br />12 canales de blending<br />No lo suficientemente rápido<br />Composición y Compresión en GPU<br />Manejo de cache<br />“Efficient Cache Replacement using Age and Cost metrics” <br />Game Programming Gems 7<br />Source: GDC 2009 The Terrain of Next Gen <br />
    44. 44.
    45. 45.
    46. 46.
    47. 47.
    48. 48. Conclusiones<br />- Los Vector Fields son faciles de implementar<br />- Tesselation por hardware es el futuro de los terrenos.<br />- La separación VisRep y SimRep es genial<br />- Cuidado al incrementar la densidad<br />- Innovar requiere más de una solución.<br />¿Por que seguimos usando Height Fields?<br />Source: GDC 2009 The Terrain of Next Gen <br />

    ×