Ariel Brunetto Director Aquadize Studios

Slides:



Advertisements
Presentaciones similares
Desarrollo de Juegos de Video en 3D
Advertisements

Sistemas de Graficación
DISEÑO DE EXPERIMENTOS
Maximiliano Monterrubio Gutiérrez
Graphics Processing Units (GPUs)
Desarrollo de Juegos de Video en 3D
FUNCIONES EN C.
Representación en espacio de estado
ILUMINACIÓN Un modelo de iluminación sirve para asignar un valor de iluminación a los puntos de la imagen. Se define una ecuación de iluminación. Lighting.
Windows XP sp3.
Tema Nº4.
Reconstrucción 3D mediante campos de reflectancia. Asesor: Miguel Arias Estrada. Estudiante: María Luisa Rosas Cholula.
Ingeniero Anyelo Quintero
 Es el proceso para determinar cómo se llevan a cabo las acciones y la toma de decisiones en una organización.  Cada vez es más importante ya que implica.
Direcciones físicas y direcciones virtuales (lógicas)
Real Time Global Illumination for Dynamic scenes Alejandro Drago Cesar Villasana
Sombreado Diferido (Deferred Shading)
Tema 10: Gestión de Memoria
Gráficos y Visualización 3D
VECTORES VS PIXELES Por Drako.
Trapcode Particular  Instalación como cualquier programa, en   A partir de que se ha instalado, como es un plug-in.

Pipelining Predicción dinámica de brincos. Universidad de SonoraArquitectura de Computadoras2 Introducción En base a la historia de la instrucción, predecir.
Fundamentos.  Abstracción Matemática  Rendering  Pre-rendering  Real-time rendering.
Bases de Conocimientos Tema: Arquitectura de pizarrón Maestro: Guido Fidel Flores Pérez Alumnos: Arlethe Anahí Espinosa Glez. Rosa Estela Castillo Negrín.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
(Organización y Manejo de Archivos)
Asignación de Espacio No Contiguo
Ray Tracing. -La primera noción del Ray Tracing se remonta a Por René Descartes. -En 1980 se propone el Ray tracing a nivel Computacional, creando.
Integrantes: David Miguel Martínez Rodríguez Diego David Bósquez Granja.
Despliegue de Volúmenes
HDR y Tone Mapping. Luminancia Es lo que mas comúnmente llaman “brillo”. Medida fotométrica de la intensidad luminosa por unidad de área de luz en una.
27/04/2015 Seminario Entrenamiento Multihaz HYPACK®1 HYCUBE CURSO MULTIHAZ HYPACK ®
Tipos de Datos. Entrada-Salida.. La entrada-salida (I/O) le permite a un programa comunicarse con el mundo exterior. Esta comunicación puede realizarse.
Seminario De Graduación Microcontroladores Avanzados
Análisis de Sistemas.
GPUs Rayco González Sicilia Microprocesadores para Comunicaciones 5º ETSIT.
Conceptos de Gestión y Planificación de Proyectos Software
Fundamentos.  Abstracción Matemática  Rendering  Pre-rendering  Real-time rendering.
Computación Gráfica I – CI4321
ILUMINACIÓN Graficación FCC. Definición Los modelos de iluminación determinan el color de la superficie en un punto dado. También son conocidos como modelos.
Iluminación Global: Mapa de Fotones
Visualización Computacional 2
Dispositivos gráficos de salida
Laboratorio de Computación Grafica Universidad Central de Venezuela
ESCUELA TECNICA Nº3 DR. J. B. TERAN
Ecuaciones Algebraicas
UNIVERSIDAD DE SANTIAGO DE CHILE Departamento de Ingeniería Industrial
TEMA 3 LA FUNCIÓN PRODUCTIVA.
Por: Ernesto Y. Soto Rivas G
Luciano Reyes Itzel Elvira
Universidad Nacional de Ingeniería
Cognitens-WLS400M Ensamblaje Digital y Virtual. 2 Cognitens-WLS400M  Comprender que es un Ensamblaje  Entender las diferencias entre Ensamblaje Virtual.
Jose María Buades Rubio Light Maps Iluminación mediante multitextura.
Introducción a los TADs
Organización del Computador I Verano Aritmética (2 de 3) Basado en el capítulo 4 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
* Cuando nos permite desarrollar un programa que necesitamos para tomar un conjunto de buenas prácticas para hacer eso. Esto se debe a que podemos ahorrar.
Generación Procedural de Terrenos en la GPU
FOTOGRAFIA DIGITAL  Es cualquier imagen fija o en movimiento, que se captura en un medio electronico y se representa como un archivo de informacion leido.
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
[AR] General Technology Corporation.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
Gestión de Memoria – Parte 2
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Rep.PoliedrosA. García-Alonso1 >> Representación
Determinación de superficies ocultas
Transcripción de la presentación:

Ariel Brunetto Director Aquadize Studios abrunetto@aquadize.com 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 Conclusiones: Ventajas y Desventajas

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 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 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? 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 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: Position OUT.color0.xyz = IN.wPos.xyz;

G-Buffer: 32 bits Depth

G-Buffer: Diffuse OUT.color1.xyz = tex2D(IN.kDiffuseMap,IN.uvw0).xyz;

G-Buffer: Normal OUT.color2.xyz = normal.xyz;

Final

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.

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 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 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 Solo se evaluan los pixels afectados por light volume.

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 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 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 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 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.

Preguntas?

Gracias!! (ya pueden descansar ^_^)