Raytracing: Principios, Algoritmos y Optimización
Clasificado en Plástica y Educación Artística
Escrito el en español con un tamaño de 4,45 KB
Raytracing: Conceptos Fundamentales
La técnica nos permite realizar renderizados hiperrealistas de forma eficiente. Con esta técnica no trabajamos con píxeles sino con matemática 3D.
Usa un modelo de iluminación global (luz directa de los focos + luz reflejada por otros objetos + luz refractada por el objeto). Además, incorpora eliminación de superficies ocultas y ocultación de objetos de forma implícita, cálculo de sombras y es fácilmente paralelizable.
Algoritmo Básico Recursivo
El algoritmo sigue los siguientes pasos:
- Trazamos un rayo desde el observador a través de cada píxel.
- Calculamos la primera intersección con un objeto.
- El color del píxel está formado por tres componentes:
- Componente local (modelo Phong)
- Componente reflexiva (da lugar a un nuevo rayo)
- Componente refractiva (da lugar a un nuevo rayo)
- Se repite el proceso con los nuevos rayos.
NOTA: Cuando el rayo choca con un objeto podemos detectar de forma automática qué objetos están delante y cuáles están detrás. El número de refracciones y reflexiones tiene un límite igual al tamaño del árbol.
Durante la ejecución del algoritmo se puede dar el caso de que un rayo no intersecte con ningún objeto. En este caso, la contribución de ese rayo al rayo inicial puede despreciarse.
En el Raytracing, la operación que más se repite es el cálculo de intersecciones. Hay distintos tipos de intersecciones: Rayo-Esfera, Rayo-Poliedro, Rayo-Paralelepípedo y Otras intersecciones.
Reflexión y Refracción
Dirección de reflexión: R = l + 2Ncos(angulo)
Dirección de refracción: T=n1/n2-(cos angulo2- n1/n2 cos angulo1)N
Sombras
Un rayo de sombra consiste en un rayo adicional entre el objeto y la fuente de luz. Este rayo se calcula cuando algún objeto opaco intercepta el rayo; ese punto no se ilumina (sombra). Si algún objeto translúcido intercepta el rayo, la luz debe atenuarse.
Posibles Mejoras
Los problemas principales del Raytracing son:
- Las intersecciones son muy costosas.
- Las reflexiones y las sombras son demasiado perfectas (disminuye el realismo).
- Se producen problemas de aliasing.
Se han planteado diversas mejoras para aumentar la eficiencia y la calidad (como el antialiasing, el control adaptativo de la profundidad, volúmenes de frontera, mejora de la primera intersección, coherencia de rayo o coherencia espacial).
NOTA: La coherencia espacial consiste en dividir el espacio en regiones. Esto disminuye mucho el coste e introduce ordenación en los objetos.
NOTA2: El aliasing se produce por el muestreo equiespaciado de datos continuos.
Trazado de Rayos Distribuido
Lanza 16 rayos por píxel, se basa en la distribución estocástica de los rayos, mejora los problemas de aliasing, produce reflexiones y sombras difuminadas, visualiza objetos translúcidos y, además, proporciona otros efectos como profundidad de campo y efecto de movimiento (motion blur).
- Para la profundidad de campo, lo que se hace es enfocar sólo los objetos sobre un plano focal y se aplica el método de agitación sobre una lente convexa.
- Para el motion blur, se aplica un muestreo estocástico del tiempo.
- Para las sombras difuminadas, se aplica un muestreo estocástico de haz de luz.
Conclusión
Como conclusión, el algoritmo de Raytracing nos ofrece un gran realismo de forma recursiva y con iluminación global a cambio de un alto coste computacional y una mezcla de iluminación global y local. El Raytracing sólo soluciona parte del problema, ya que sólo simula la iluminación directa. Un nuevo método de simulación de las reflexiones difusas era necesario para completar la solución de la Iluminación Global: la Radiosidad.