Title: Grficas Interactivas
1Gráficas Interactivas
- Isaac Rudomín (Instructor)
- rudomin_at_itesm.mx
- Erik Millán (asistente)
- emillan_at_itesm.mx
2Iluminación Global
- Introducción
- Ray Tracing
- Radiosidad
- Photon mapping
-
3Iluminación Global
- Iluminación basada en la escena completa
- Iluminación basada en física
- Representada trdicionelmente por dos algoritmos
- Raytracing 1980
- Radiosidad 1984
- Técnicas mas modernas incluyen photon mapping
y variaciones de raytracing y radiosidad
4Raytracing
5Raytracing
Albrecht Duerer, Underweysung der Messung mit
dem Zirkel und Richtscheyt (Nurenberg, 1525),
Book 3, figure 67.
6Raytracing - Base
- Representa iluminación global especular
- Traza luz hacia atrás desde el ojo, a través del
pixel,a la escena - Recursivamente rebota en los objetos, acumulando
un color para ese pixel - Salida es una sola imagen de la escena
7Raycasting vs. Raytracing
8Ray Casting
Pantalla
Ojo
Escena
9Raytracing - Pros
- idea sencilla con buenos resultados
- interacción entre objetos posible
- Sombras
- Reflejos
- Refracción
- Basado en iluminación del mundo real
-
10Raytracing - Contra
- Mucho tiempo
- Aceleraciones usualmente dependen de la escena
- Iluminación muy contundente, sin aristas suaves,
si no se usan técnicas mas avanzadas - Dificil poner en hardware (ya no tanto)
11Ray Tracing Historia
- Appel 68
- Whitted 80 recursive ray tracing
- Se trabaja en varias primitivas geométricas y en
aceleración - Actualmente se investiga
- Real-Time raytracing (historically, slow
technique)
12Sombras
Fuente de luz
Ojo
Rayo de sombra a luz bloqueado objeto en sombra
Pantalla
Objectos
13Sombras Suaves
- En vez de luz puntual usa objeto con área
- Manda rayos con jitter hacia la luz y cuenta solo
los que le atinan
Sombra dura
Somba suave
14Reflexiones especulares/refracción
Ojo
pantalla
Objectos
9.6 in textbook
15Ray Tracing Recursivo
- Para cada pixel
- Traza rayo primario desde el ojo hasta
intersección - Traza rayos de sombra a todas las luces
- Color Visible ? Illumination Model 0
- Traza rayos reflejados o refractados
- Color reflectivity Color of reflected ray
- Cuando detener recursión?
Also see section 9.4 in text
16Turner Whitted 1980
17Intersecciones Rayo/Objecto
- Corazón de Ray Tracer
- Área de investigación inicial
- Rutinas optimizadas para varias primitivas
- Diversos tipos de información
- Rayos de sombra Intersecta o no
- Rayos principales Punto de intersección,
material, normales - Texture coordinates
- Ejemplos
- Triágulo, esfera, polígono, implícita
Section 9.3
18Intersecciones con rayo
- Se reduce a resolver para t
- x xs t xd
- y ys t yd
- z zs t zd
- Esfera es muy sencillo
- (x-x0)2(y-y0)2(z-z0)2r2
- Substituye ecuación del rayo y resuelve para t
19Esfera
20Intersección con un plano
- Ecuación del plano
- AxByCzD0
- (A,B,C) normal al plano
- Dado un punto y la normal, calcular D
21Intersección con polígono
- Dada intersección con plano
- El punto esta dentro del poligono?
22Punto en polígono
- inside( vert v, int n, float x, float y )
-
- int cross0 float x0, y0, x1, y1
-
- x0 vn-1.x x
- y0 vn-1.y y
- while (n--)
- x1 v-gtx x
- y1 v-gty y
- if (y0 gt 0)
- if (y1 lt 0 x1y0 gt y1x0) cross
- else
- if (y1 gt 0 x0y1 gt y0x1) cross
-
- x0 x1 y0 y1 v
-
- return cross 1
23Intersección con primitivas diversas
24Aceleración
Lento!
Intersección mas veloz
Menos rayos
Rayos generalizados
N
1
- Malla uniforme
- Jerarquía espacial
- K-D
- Octtree
- BSP
- Mallas jerárquicas
- Volumen acotante
- jerárquico
Cotas mas justas Intersector mas rápido
Terminación Temprana de rayos Muestreo
adaptativo
Beam tracing Cone tracing Pencil tracing
25Malla uniforme
- Preprocesa escena
- Encuentra bounding box
- Determina resolución de malla
- Coloca objeto en celda si su bounding box está
sobrepuesto en la celda - Checa que objeto si este en celda (caro)
26Malla uniforme
- Preprocesa escena
- Recorre malla
- linea 3D 3D-DDA
- linea 6-conexa
27Jerarquía espacial
A
D
B
B
C
C
D
A
Hojas son regiones únicas en espacio Búsqueda de
puntos es recursiva
28Variaciones
KD tree
octtree
BSP tree
29Mallas Jerárquicas
- Compromiso que gusta a algunos
30Bounding VolumesJerárquicos
- Crea árbol de bounding volumes
- Hijos contenidos en padres
- Creación
- A partir de jerarquía del modelo
- Agrupamiento automático
- Search
- intersect(node,ray,hits)
- if( intersectp(node-gtbound,ray)
- if( leaf(node) )
- intersect(node-gtprims,ray,hits)
- else
- for each child
- inter sect(child,ray,hits)
-
31Supersampling I
- Problema cada pixel de la imagen representa un
solo rayo - Aliasing
- Imágenes muy contundentes
- Solución Mandar múltiples rayos a través de
cada pixel y promediar los colores
32Supersampling II
- Supersampling Directo
- Divide cada pixel a en una maya y manda rayos a
través de cada punto de la malla - Supersampling Adaptivo
- Divide cada pixel solo si son significativamente
distintos de sus vecinos - Jittering
- Manda rayos a través de puntos seleccionados al
azar dentro del pixel
33Distributed Ray Tracing
- Distribuir rayos estocásticamente
- Pixel antialiasing
- Fuente de luz sombras suaves
- Función de reflexión reflejos suaves reflections
- Tiempo motion blur
- Lente profundidad de campo
34Raytracing Interactivo
- Ray tracing ha sido lento
- Ahora es viable para escenas complejas
- Clave es complejidad sublineal con aceleración
- Permite algunos efectos en hardware
- OpenRT (http//www.openrt.de)
35Raytracing en Hardware Gráfico
- Permitido por la arquitectura de hardware gráfico
programable - (de hecho versión sencilla en SDK Browser de
Nvidia. Ir con Erik si quieren verlo) - Purcell et al. 2002, 2003
- http//graphics.stanford.edu/papers/photongfx
36(No Transcript)
37Radiosidad
From Cornell University
38Radiosidad Concepto
- Radiosidad de cada superficie depende de la
radiosidad de todas las demás superficies - Iluminación global como sistema lineal
- Necesita BRDF constante (difuso)
- Resuelve ecuación de render como problema
matricial - Proceso
- Divide en parches
- Calcula factores de forma
- Resuelve radiosidad
- Dibuja parches
39Radiosidad - Base
- Radiosidad de una superficie razón en la que la
energía deja una superficie - Emitida por la superficie y reflejada de otras
superficies - Representa iluminación global difusa
- Crea sistemas de enrgía cerrados donde todo
polígono emite o refleja luz hacia todos los
demás polígonos - Calcula como la energía luminosa se dispersa en
el sistema - La radiosidad de cada superficie
- Depende de las propiedades de emisión
- Depende de relación con otras superficies (form
factors) - Salida es una maya poligonal con colores
precalculados para cada vértice (o light maps!!!!)
40Radiosidad - Pros
- Independiente de punto de vista significa
despliegue en tiempo real despues de los cálculos
iniciales - Interacción entre objetos
- Sombras suaves
- Luz indirecta
- Color bleeding
- Simulación exacta de transferencia de energía
41Radiosidad - Contra
- Form factors debe recalcularse si cualquier cosa
se mueve - Costos computacionales y de almacenamiento son
grandes - Luz no difusa no representada
- Espejos y otros objetos brillantes difíciles de
incluir - Efectos de iluminación son desenfocados si no se
hace bién la subdivisión - No aplica a superficies definidas proceduralmente
42RadiosidadRadiometría
- Ecuación de rendering (flujo)
- Lujo de energía radiante F
- Radiancia sobre un área en todas direcciones
- Radiosidad (B)
- Flujo por unidad de area
- Radiosidad emitida E
- Reflejos difusos
- BRDF Ideal fr 1/p
- Reflectividad r p fr
- Factor de Forma (F)
- Encapsula factores geométricos
Fi
Fo
43Factor de Forma
Ai
fi
fj
r
- FdAidAj parte de flujo radiante que sale de un
punto en el parche i que llega a un punto en
el parche j - FdAiAj parte de flujo radiante que sale de un
unto en el parche i que llega a todo el parche
j - Fij parte de flujo radiante que sale de todo el
parche i que llega a todo el parche j - (Intensidad flujo por ángulo sólido)
- Fii 0 (parches planos)
- Fij 0 si hay oclusión
- AiFij AjFji
- Fij no tiene dimensionalidad
Aj
44Cálculo de Factores de Forma
DA
- Teorema de Stokes
- Goral et al. SIGGRAPH 84
- Reemplaza integral de área con integral de
contorno - Análogo de Nusselt
- Proyectar parche a
- Hemicubo
- Medio cubo de z-buffers
- Problemas con Aliasing
- Hemisferio
- Ray casting
- Muestréo estratificado
45Nusselts Analog
Proyecta analíticamente A hemisferio sobre
el Punto. Despues proyecta a base de hemisferio.
Form factor es la razón De la area en la base
sobre El area de toda la base
46Hemicubo
47Matriz de Radiosidad
Ei
Bi
48Reunir
- Resuelve como sistema lineal Ax b
- MB E
- Jacobi
- Bi(k1) Ei Sj?i Mij Bj(k)
- Radiosidad Emitancia mas radiosidades
reflejadas - Gauss-Siedel
- Bi Ei Sj?i Mij Bj
- Funciona en el mismo lugar
- Sobre relajación
- Bi(k1) 110 Bj(k1) 10 Bj(k)
- Gauss-Siedel demasiado conservador
Bi
49Disparar
Bi
- Refinamiento progresivo
- Distribuue radiosidad extra DBi a otros parches j
- Bj(k1) Bj(k) rjFji DBi
- Radiosidad extra no disparada es lo obtenido en
la iteración anterior - DBi Bj(k) Bj(k-1)
- Energía comienza en emisores
- Se distribuye progresivamente en escena
- Puede usar término ambiente para desplegar
escena, que se va quitando al ir convergiendo la
radiosidad
IBM
50Monte Carlo Ray Tracing
- Puede usarse para encontrar form factors (lento)
- Puede usarse directamente para disparar energía
51(No Transcript)
52Otros efectos de iluminación global
- Caustica Enfocar a través de superficie
especular - Aún es tema de investigación
53Photon Mapping
From http//graphics.ucsd.edu/henrik/images/globa
l.html
54Photon Mapping Base
- Mejora a Ray Tracing
- Simula cáustica (fondo de piscina)
- Intereflexión difusa
- Nubes y Humo
55Photon Mapping
- Fotones se emiten (con ray tracing) desde
fuentes de luz - Los fotones rebotan o son absorbidos
- Los fotones se guardan en un photon map, con
posición y dirección de entrada - El mapa está desacoplado de la geometría
56Photon Mapping
- Paso de Ray Tracing usa los N fotones mas
cercanos a cada intersección de rayo y estima la
radiancia de salida - Reflexión especular puede hacerse como ray
tracing usual para reducir número de fotones - Hay muchas extensiones a la idea que permiten
efectos mas complejos
57Photon Mapping - Pros
- Preproceso es independiente de vista
- Interacción entre objectos incluye
- Sombras
- Iluminación indirecta
- Color bleeding
- Brillos y reflejos
- Caustica
- Funciona para superficies definidas
proceduralmente
58Photon Mapping - Cons
- Lento, aunque menos que Ray Tracing puro
- Photon map no es facil de actualizar dados
cambios pequeños a la escena
59Ecuación de Render (Kajiya 86)
60Ecuación de render es Ecuación Integral
61Técnicas de solución
- Todos los métodos de iluminación global tratan
de resolver (aproximaciones de) la ecuación de
render - Solución numérica pues la analítica es dificil
- Radiosidad es básicamente resolverla mediante
métodos tipo elemento finito - Ray Tracing distrubuido es básicamente usar
métodos Monte Carlo
62Render en aplicaciones comerciales
- mental ray - http//www.mentalimages.com/
- Maya - http//www.alias.com/eng/index.shtml
- 3ds max - http//www.discreet.com/
- Lightwave 3D - http//www.newtek.com/
- RenderMan Repository - http//www.renderman.org/
- RenderMan - https//renderman.pixar.com/
63Aplicaciones Gratuitas
- POV-Ray The Persistence of Vision Raytracer
http//www.povray.org/ - 3Delight - http//www.3delight.com/
- Lucille - http//web.sfc.keio.ac.jp/syoyo/lucille
/ - OpenRT - http//www.openrt.de/index.html
- Radiance - http//radsite.lbl.gov/radiance/HOME.ht
ml - RenderPark - http//www.cs.kuleuven.ac.be/cwis/res
earch/graphics/RENDERPARK/ - SunFlow - http//sunflow.sourceforge.net/
64Reyes Rendering
- Desarrollado por Lucasfilm
- En uso por Pixar (Renderman)
65Idea Fundamental
- Subdividir primitivas en micropoligolos de ½
pixel
66Algoritmo Reyes
Lee modelo
subdivide
sombrea
textura
visibilidad
muestreo
imagen
67Micropoligonos
68Porque micropoligonos?
- Iluminación a resolución mayor a pixel
- Phong
- Desplazamiento local de geometría
- Displacement maps
- Texture mapping
69Sampling
70Reyes ventajas/desventajas?
- ventajas
- Rápido para ser fotorealista
- Modelos mayores a memoria
- Ddesventajas
- Reflexion y transmisión es cara
- Iluminación compleja es cara
71Non-Photorealistic RenderingPainting, Drawing,
Sketching
72Non-Photorealistic Rendering
- Using a term like nonlinear science is like
referring to the bulk of zoology as the study of
nonelephant animals - Fotorealismo meta ancestral de gráficas
- Non-photorealistic rendering
- Técnicas que buscan estilo, expresividad,
abstracción, incertidumbre, etc - Nombre malo
- Mejor stylized rendering, artistic rendering,
abstract rendering
73Stylized Rendering
- NPR se usa sobre todo para simular un estilo o
medio particular - Pintura Impressionista
- Dibujo a tinta, lapiz, grabado
- Cartoon
74Toon shading
- Toon shading busca imitar efecto de cartoon
- Tendencias en cartoon/comic
- Sombreado simple, plano
- Dos tonos (luz/sombra) or Tres tonos
(luz/sombra/brillo) - Dibujo de aristas
- Borde
- Doblez
- Material
- Silueta
75Resultados (Venus, efectos via GPU)
Wireframe Translation Fattening 40
fps 50 fps 11.5 fps
76Painterly Rendering
77Otros
- Hatching
- Combina por GPU usando distintas texturas para
distintos tonos
78Otros