Raytracing

Revisión del 17:43 6 jul 2019 de Javiermartin jc (discusión | contribuciones) (Texto reemplazado: «<div align="justify">» por «»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Raytracing
Información sobre la plantilla
3chromeballs.png
Concepto:Técnica o algoritmo para obtener imágenes 3D generadas por el ordenador.

Raytracing. Es una técnica que se utiliza para simular de una forma muy simplificada este proceso de interacción de la luz con los objetos.

Una de sus características fundamentales es que, en vez de tomar como origen del proceso las fuentes de luz, y tratar de emitir rayos en todas las direcciones posibles, lo que hace es tomar como punto de partida al observador, y trazar desde él rayos hacia la escena en busca de las fuentes de luz.

La ventaja de este enfoque es que simplifica enormemente el sistema, al evitar tener que estudiar todos los rayos posibles, y limitarse sólo a los rayos que llegan al observador, que son los que realmente aportan algo a la imagen final generada.

En Raytracing todo el trabajo se hace sobre las definiciones 3D de los objetos, lo que implica que todo el proceso son algoritmos de alto nivel para los que es muy difícil crear un hardware específico que produzca una mejora visible del rendimiento. De hecho, para generar las escenas para películas cinematográficas se utilizan granjas de PCs totalmente convencionales, sin ningún tipo de hardware específico.

Principio del algoritmo

El Raytracing modela el comportamiento de luz y su interacción con el mundo. Debido a la complejidad de líquidos y gases limitaremos nuestro campo de acción a los sólidos (opacos y transparentes) y a las fuentes de luz que emiten en todas direcciones.

Raytracing intenta modelar cómo vería el mundo el observador. Una forma de hacer esto sería seguir cada rayo de luz que emite cada fuente de luz y ver si va a parar al ojo del observador. Esto se podría hacer ya que el comportamiento de la luz es conocido pero computacionalmente es imposible ya que hay muchos rayos que el observador no vería o simplemente no interactuarían con el mundo. Así que lo que se hace es lo contrario, lanzar rayos desde el observador hacia el mundo y llegado un cierto momento calcular la luz que influye en ese rayo.

Algoritmo

Raytracing como algoritmo admite unas entradas, realiza un proceso y genera unas salidas.

Como entradas del algoritmo estarían la posición y características físicas de cada uno de los objetos que forman la escena. Seguiría la ubicación, intensidad y tipo de las fuentes de luz presentes en la misma. Después el modelo de iluminación a utilizar, que describiría como calcular el color en un punto de la superficie de un objeto. A continuación la posición y dirección desde la que se quiere representar la escena, es decir, la posición del observador. Y en último lugar la ubicación y dimensiones del plano de proyección sobre el que ha de quedar reflejada la imagen, que normalmente equivale a la pantalla del ordenador donde se verá finalmente el resultado.

El proceso básico se basa en trazar un rayo a través de cada uno de los pixeles del plano de proyección, tomando como origen de los rayos la posición del observador. Y para cada uno de estos rayos trazados estudiar si se produce una intersección con alguno de los objetos de la escena. Si no se encuentra ningún objeto se termina el proceso para ese píxel y se le asigna un color de fondo por defecto. Por el contrario, si se encuentra un objeto, se miran sus características físicas y se decide que hacer en función del modelo de iluminación.

En la práctica, todos los elementos que intervienen en el proceso se tratan como entidades matemáticas muy simples. Los objetos se definen mediante primitivas geométricas como esferas, planos o polígonos, aunque se tiende a utilizar mallas de triángulos ya que así funcionan la mayoría de programas de modelado actuales. Los rayos se tratan como vectores, con un punto de origen y una dirección de propagación. Y por tanto, el cálculo de intersecciones entre rayos y objetos se reduce a la resolución de ecuaciones en las que intervienen vectores y primitivas.

Ventajas

Actualmente todos los grandes paquetes comerciales de modelado y diseño gráfico implementan Ray Tracing, ya sea nativamente o como un añadido.

Se puede encontrar en programas libres y de código abierto, como el POV-Ray, o el más reciente YafRay, que está teniendo una gran aceptación gracias a su integración con modeladores como Wings 3D y Blender.

Hacer un programa simple que implemente Ray Tracing resulta una tarea sencilla, ya que existe bastante información al respecto, y además es fácil encontrar código fuente listo para descargar de Internet.

Fuentes