deferred shading n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Deferred Shading PowerPoint Presentation
Download Presentation
Deferred Shading

Loading in 2 Seconds...

play fullscreen
1 / 24

Deferred Shading - PowerPoint PPT Presentation


  • 212 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Deferred Shading' - Jimmy


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
deferred shading

Deferred Shading

Ariel BrunettoDirectorAquadize Studios abrunetto@aquadize.com

agenda
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
single pass lighting
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.
multipass lighting
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…
deferred shading1
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.
que es un g buffer
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
g buffer requerimientos
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).
g buffer primera pasada
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.
slide14
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.
fuentes locales y globales
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.
lighting
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.
light convex hulls
Light Convex Hulls
  • Solo se evaluan los pixels afectados por light volume.
efectos de postproceso
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
multiples materiales
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.
objetos transparentes
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.
conclusi n desventajas del deferred shading
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.
conclusi n ventajas del deferred shading
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.
gracias
Gracias!!

(ya pueden descansar ^_^)