1 / 24

Deferred Shading

Deferred Shading. Ariel Brunetto Director Aquadize Studios abrunetto@aquadize.com. Agenda. Forward Rendering vs Deferred Rendering G-Buffers Fuentes Locales vs Fuentes globales Lighting pass y Convex Hulls Efectos de postproceso Materiales Objetos transparentes

Jimmy
Télécharger la présentation

Deferred Shading

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Deferred Shading Ariel BrunettoDirectorAquadize Studios abrunetto@aquadize.com

  2. Agenda • Forward Rendering vs Deferred Rendering • G-Buffers • Fuentes Locales vs Fuentes globales • Lighting pass y Convex Hulls • Efectos de postproceso • Materiales • Objetos transparentes • Conclusiones: Ventajas y Desventajas

  3. Single-pass Lighting • Se utiliza un unico shader que aplica todas las luces por cada objeto renderizado en la misma pasada. • El problema radica en la cantidad de combinacion que se producen al combinar los shaders con los distintos tipos de luces. • Existe un gasto de procesamiento innecesario sobre los pixels que sufren redraw. • Existen problemas con la integracion con shadows debido al consumo de VRAM. • Recomendando para escenas con pocas luces. • Es facil alcanzar el limite de instrucciones por shader.

  4. Multipass Lighting • Se realiza una pasada por cada luz. La complejidad es O(cantObjetos * cantLuces). • Al igual que en simple-pass, los pixeles ocultos generan procesamiento innecesario. • Dificultad el batching, debido a que deben enviarse diferentes objetos dependiendo de las luces que lo afectan. Ordenar por luz o por objeto es mutuamente excluyente. • Por cada pasada que se envia el mismo objeto, este es procesado nuevamente por el vertex shader, generando el mismo resultado. Se vuelve a transformar, se vuelven a aplicar filtros anisotropicos, etc…

  5. Deferred Shading • La informacion de shading de cada objeto es almacenada en un G-Buffer. • Luego se utiliza el G-Buffer como entrada al shader de lighting. Las luces se aplican producto de un postproceso utilizando la informacion del G-Buffer como entrada. • Mejora notablemente el batching, procesando cada objeto exactamente 1 vez. • La evaluacion de la pasada de lighting se mantiene constante respecto de la cantidad de objetos (n), convirtiendose de O(n) a O(1). • Permite combinar varias fuentes de luces con baja incidencia en una unica fuente.

  6. Que es un G-Buffer? • Un G-Buffer contiene toda la informacion necesaria para evaluar la ecuacion de per pixel lighting. • Normal • Position • Diffuse color (con ambient oclussion) • Specular factor • Reflection factor • Shadow amount • Material ID

  7. G-Buffer: Requerimientos • Floating-point textures • Multiple Render Targets (MRT), permitiendo almacenar todos los atributos del G-Buffer en una unica pasada. • Floating-point blending. • Limita la cantidad de parametros de la BRDF (Spherical Harmonics se dificultan).

  8. G-Buffer: Position

  9. G-Buffer: 32 bits Depth

  10. G-Buffer: Diffuse

  11. G-Buffer: Normal

  12. Final

  13. G-Buffer: Primera pasada • Se utiliza para almacenar la informacion de los objetos necesaria para el calculo de la BRDF. • Se busca mantener al minimo la utilizacion de memoria. Existen varias tecnicas para packear informacion. • Almacenar unicamente pos.z en viewspace y luego reconstruir la posicion a partir de screenPos.x, screenPos.y y el FOV angle. • Almacenar normal.xy y computar normal.z = sqrt(1-x^2-y^2). Para evitar el overhead de procesamiento se pueden almacenar los resultados en una textura.

  14. MRT • Deben posee la misma cantidad de bits, osea: • RT0: R8G8B8A8 • RT1: R32 • La cantidad de targets activos simultaneamente se encuentran limitados por la GPU.

  15. Fuentes Locales y Globales • Globales: Afectan todos los pixels de la pantalla. Se renderizan a traves de un screen aligned. • Locales: Afectan una porcion de pixeles de la pantalla. Se utiliza geometria creada en author time para definir los pixels afectados.

  16. Lighting • Se renderiza un convex hull por cada fuente, proyectandolo en screen space. De esta forma solo se procesan los pixels afectados. El hull es definido en author time: • Point light: esfera • Spot light: cono • Directional light: box • Se lee la informacion desde el G-Buffer. • Se evalua la BRDF. • Se blendea la informacion en el framebuffer.

  17. Light Convex Hulls • Solo se evaluan los pixels afectados por light volume.

  18. Efectos de postproceso • El G-Buffer y el accumulation buffer se pueden utilizar como entrada para varios efectos de postproceso: • Glow • Edge-smoothing • HDR • Heat haze

  19. Multiples materiales • No escala para multiples materiales. La cantidad de terminos que se pueden almacenar en el G-Buffer son limitados debido a la memoria. • Una solucion seria almacenar las propiedades de un material determinado en una textura de materiales. • Se utiliza una unica BRDF en todo el proceso de lighting. • Se puede utilizar un material id y branching (pixel shader 3.0 hardware) para seleccionar una BRDF distinta por pixel.

  20. Objetos transparentes • No se encuentran directamente soportandos por deferred shading. • Opciones? • Depth peeling, como ultimo recurso, ya que involucra ejecutar el path completo de deferred varias veces. • Utilizar forward rendering para objetos transparentes y luego realizar blending con el resultado de deferred. • Utilizar Screen Door Transparency.

  21. ConclusiónDesventajas del Deferred Shading • Objetos transparentes. • VRAM. • AA. • Una unica BRDF por escena. • Materiales limitados a una cantidad fija de terminos. • High fill rate.

  22. ConclusiónVentajas del Deferred Shading • Geometry batching • Procesar cada geometria exactamente una vez • Calcular el color de cada pixel visible exactamente una vez. • Al igual que las luces, realizar efectos de postproceso es sencillo: simplemente se utilizan como entrada el G-Buffer y el accumulation buffer.

  23. Preguntas?

  24. Gracias!! (ya pueden descansar ^_^)

More Related