Download - Trazado de Rayos
![Page 1: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/1.jpg)
Trazado de Rayos
Ernesto Coto
Laboratorio de Computación GraficaUniversidad Central de Venezuela
![Page 2: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/2.jpg)
Ernesto Coto - Trazado de Rayos 2
Contenido
• Introducción
• Reflexión y refracción
• El algoritmo básico
• Iluminación
• Consideraciones de eficiencia
![Page 3: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/3.jpg)
Ernesto Coto - Trazado de Rayos 3
Conocimientos Previos
• Objetos 3D
• Iluminación y Sombreado
• Modelos de iluminación local
• Geometría básica
• Subdivisión espacial
![Page 4: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/4.jpg)
Introducción
![Page 5: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/5.jpg)
Ernesto Coto - Trazado de Rayos 5
Introducción
• Los métodos de sombreado de Flat, Gouraud y Phong utilizan modelos de iluminación local
Rayo reflejado Rayo incidente
Ojo Luz
Superficie
![Page 6: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/6.jpg)
Ernesto Coto - Trazado de Rayos 6
Introducción
• Un modelo de iluminación global considera la luz que es reflejada desde otras superficies hacia la superficie con la que se trabaja
Rayo
reflejado
Rayo incidente
Ojo Luz
Superficie
![Page 7: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/7.jpg)
Ernesto Coto - Trazado de Rayos 7
Introducción
• El Trazado de Rayos (Ray Tracing) es un método de despliegue de escenas que esta basado en Iluminación global
• Original de Turner Whitted (1980)
![Page 8: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/8.jpg)
Ernesto Coto - Trazado de Rayos 8
Introducción
• El Trazado de Rayos maneja de manera apropiada:• Reflecciones y Refracciones• Transparencia• Sombras
![Page 9: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/9.jpg)
Ernesto Coto - Trazado de Rayos 9
Introducción
• Ampliamente usado en:• Entretenimiento (Cine, Comerciales, etc.)• Preproducción de juegos• Simulación
![Page 10: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/10.jpg)
Reflexión y Refracción
![Page 11: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/11.jpg)
Ernesto Coto - Trazado de Rayos 11
Reflexión y Refracción
• La luz incidente a una superficie en general es parcialmente reflejada y parcialmente transmitida como un rayo refractado
Rayo reflejadoRayo incidente
Superficie
Rayo refractado
![Page 12: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/12.jpg)
Ernesto Coto - Trazado de Rayos 12
Reflexión
• De acuerdo a la “Ley de reflexión” el ángulo del rayo de incidencia es igual al ángulo del rayo reflejado
Rayo reflejadoRayo incidente
Superficie
i r
N
=
![Page 13: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/13.jpg)
Ernesto Coto - Trazado de Rayos 13
Refracción
• Refracción es el desvío del rayo de luz cuando entra a un medio donde la velocidad del rayo es diferente
Rayo incidente
Superficie
Rayo refractado
N
t
i
![Page 14: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/14.jpg)
Ernesto Coto - Trazado de Rayos 14
Refracción
• La cantidad de desvío depende del índice de refracción de los dos materiales y es descrita por la ley de Snell
2
1
)sin(
)sin(
t
i
N
t
iMedio1
1
Medio22 Ley de Snell
![Page 15: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/15.jpg)
Ernesto Coto - Trazado de Rayos 15
Reflexión y Refracción
RreflexRin
i r
N
Rrefrac
t
= 2N(N · Rin) - Rin
= ((N · Rin) – 1 -2(1- (N · Rin)2))N - Rin
Donde =1 /2
![Page 16: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/16.jpg)
El algoritmo básico
![Page 17: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/17.jpg)
Ernesto Coto - Trazado de Rayos 17
Plano Imagen
El algoritmo básico
• Simular rayos de luz desde la fuente de luz hacia el ojo
OjoLuz
Objeto
Rayos de Luz
![Page 18: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/18.jpg)
Ernesto Coto - Trazado de Rayos 18
Trazado hacia adelante
• Trazar los rayos desde la luz
Ojo
Luz
Plano Imagen
Objeto
Rayos de Luz
![Page 19: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/19.jpg)
Ernesto Coto - Trazado de Rayos 19
Trazado hacia atrás
• Trazar los rayos desde el ojo hasta la escena
Ojo
Luz
PlanoImagen
Objeto
![Page 20: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/20.jpg)
Ernesto Coto - Trazado de Rayos 20
• Trazar un rayo por cada píxel en el plano imagen
El algoritmo básico
calcularImagen(){ para cada píxel i, j en la imagen
rayo.inicializar(); imagen[i][j] = trazarRayo(rayo);
}
![Page 21: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/21.jpg)
Ernesto Coto - Trazado de Rayos 21
• Trazar un rayo por cada píxel en el plano imagen
El algoritmo básico
m
n
Ojo
PlanoImagen
![Page 22: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/22.jpg)
Ernesto Coto - Trazado de Rayos 22
• Trazar el rayo
El algoritmo básico
trazarRayo(rayo) { golpearObjeto(rayo, triángulos, p, n); si(objeto es luz) retornar(color de la luz); sino retornar(iluminación(p, n));}
![Page 23: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/23.jpg)
Iluminación
![Page 24: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/24.jpg)
Ernesto Coto - Trazado de Rayos 24
iluminación(punto) { para cada luz
color += phong(punto) + c1_obj*trazarRayo(reflejado) + c2_obj*trazarRayo(refractado)
retornar(color);}
Iluminación
• Color de la superficie
![Page 25: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/25.jpg)
Ernesto Coto - Trazado de Rayos 25
Iluminación
• Prueba de Sombra• Trazar un rayo desde el objeto hacia la luz en busca
de objetos oclusores
Ojo
Objetooclusor
![Page 26: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/26.jpg)
Ernesto Coto - Trazado de Rayos 26
Iluminación
• Color de la superficie
iluminación(punto) { para cada luz
color += phong(punto) si(golpearObjeto(rayo de sombra)) color *= atenuación color += c1_obj*trazarRayo(reflejado)
+ c2_obj*trazarRayo(refractado)
retornar(color);}
![Page 27: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/27.jpg)
Ernesto Coto - Trazado de Rayos 27
Iluminación
• Terminación• Un rayo se termina si no hubo intersección• De lo contrario se termina solo al alcanzar la
luz, pero:
• MUY COSTOSO
• PODRIA NUNCA TERMINAR !!!!!
![Page 28: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/28.jpg)
Consideraciones de Eficiencia
![Page 29: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/29.jpg)
Ernesto Coto - Trazado de Rayos 29
Consideraciones de Eficiencia
• Criterios posibles de terminación• La contribución del rayo reflejado y/o
refractado es muy pequeña• Se alcanza un nivel de profundidad máximo
![Page 30: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/30.jpg)
Ernesto Coto - Trazado de Rayos 30
Consideraciones de Eficiencia
• Trazado de rayos optimizado• Reducir el número de rayos trazados• Reducir el número de cálculos de
intersecciones entre los rayos y los objetos• Cajas Delimitadoras• Jerarquías de Objetos
![Page 31: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/31.jpg)
Ernesto Coto - Trazado de Rayos 31
Resumen
• Concepto de Modelo de Iluminación Global
• Reflexión y Refracción
• Trazado de Rayos
• Esbozo de la implementación de un Trazador de Rayos
• Consideraciones de Eficiencia en el Trazado de Rayos
![Page 32: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/32.jpg)
Ernesto Coto - Trazado de Rayos 32
Bibliografía
• Kay, D.S. Transparency, Refraction and Ray Tracing for Computer Synthesized Images. M.S. Thesis, Program of Computer Graphics, Cornell University, Ithaca, NY. Enero, 1979.
• Levoy, M.. Efficient ray tracing of volume data. ACM Transactions on Graphics, vol. 9, num. 3, pp. 245-261. Julio,1990.
• Watt, Alan ; Watt, Mark. Advanced Animation and Rendering Techniques: Theory and Practice. ACM Press. Addison-Wesley Publishing Company. New York, 1992.
• Watt, Alan. 3D Computer Graphics. 3era edición. Addison-Wesley, 2000.
![Page 33: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/33.jpg)
Ernesto Coto - Trazado de Rayos 33
Preguntas
![Page 34: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/34.jpg)
Ernesto Coto - Trazado de Rayos 34
Iluminación
• Se utiliza el modelo de iluminación Phong
Para cada luz local = IambientalKambiental +
IdifusaKdifusa(L.N)+ IespecularKespecular(R.V)n
Ojo
V
RN
I
Superficie
Luz
![Page 35: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/35.jpg)
Ernesto Coto - Trazado de Rayos 35
• Cálculo de intersecciones
El algoritmo básico
golpearObjeto() { para cada triángulo en la escena ¿el rayo interseca el triángulo? si (intersecado y más cercano) salvar la intersección si (intersecado) retornar punto de intersección y normal}
![Page 36: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/36.jpg)
Ernesto Coto - Trazado de Rayos 36
• El rayo se expresa de forma paramétrica
El algoritmo básico
<x, y, z> = <xo, yo, zo> + t * <xd, yd, zd>
<x, y, z> = ro + trd
ro = <xo, yo, zo>
rd = <xd, yd, zd>
t = 0.0
t = 1.0
t = 2.0
t = 2.5
![Page 37: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/37.jpg)
Ernesto Coto - Trazado de Rayos 37
Intersección
Normal al plano n = <A, B, C>Normal al plano n = <A, B, C>
p
rd
ro
p = -(n. ro + D) / (n. rd )p = -(n. ro + D) / (n. rd )
( Ax + By + Cz + D = 0 )
![Page 38: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/38.jpg)
Ernesto Coto - Trazado de Rayos 38
• El algoritmo principal
El algoritmo básico
principal() { triángulos = leerTriángulos(); iniciaOjo(); iniciaLuces(); imagen = calcularImagen(triángulos); escribirImagen(imagen);}
![Page 39: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/39.jpg)
Ernesto Coto - Trazado de Rayos 39
Reflexión
RI
i
N
NCosi
NCosi - I
R=2NCosi – I
R=2N(N·I) – I
R-I=2NCosi – 2I
![Page 40: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/40.jpg)
Ernesto Coto - Trazado de Rayos 40
Refracción
i ninint ))(1(1)( 22
cos i n - i
i
n
-n
i
t t = ?
m
itt 222 sin1sin1cos
cos i n
• Ley de Snell i sin i = t sin t
• Sea =i /t = sin t / sin i
• Sea m = (cos i n - i) / sin i
• Entonces…
• t = sin t m - cos t n
= (sin t / sin i) (cos i n - i) - cos t n
= ( cos i - cos t )n - i icomo
i
![Page 41: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/41.jpg)
Ernesto Coto - Trazado de Rayos 41
Cajas Delimitadoras
Ojo
![Page 42: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/42.jpg)
Ernesto Coto - Trazado de Rayos 42
Jerarquías de Objetos
Raíz
![Page 43: Trazado de Rayos](https://reader036.vdocumento.com/reader036/viewer/2022062301/56813ae8550346895da34dbf/html5/thumbnails/43.jpg)
Ernesto Coto - Trazado de Rayos 43
Octrees