El renderizado de Reyes es una arquitectura de software de computadora que se utiliza en gráficos por computadora en 3D para generar imágenes fotorrealistas. Fue desarrollado a mediados de la década de 1980 por Loren Carpenter y Robert L. Cook en el Grupo de Investigación de Gráficos por Computadora de Lucasfilm , que ahora es Pixar . [1] Se utilizó por primera vez en 1982 para renderizar imágenes para la secuencia del efecto Génesis en la película Star Trek II: The Wrath of Khan . RenderMan de Pixar fue una implementación del algoritmo de Reyes, hasta su eliminación en 2016. [2]Según el artículo original que describe el algoritmo, el sistema de reproducción de imágenes de Reyes es "una arquitectura para la reproducción rápida y de alta calidad de imágenes complejas". Reyes se propuso como una colección de algoritmos y sistemas de procesamiento de datos. Sin embargo, los términos "algoritmo" y "arquitectura" se han utilizado como sinónimos y se utilizan indistintamente en este artículo. [ cita requerida ]
Nombre
Reyes es un acrónimo de Renders Everything You Ever Saw (el nombre también es un juego de palabras con Point Reyes , California, cerca de donde se encontraba Lucasfilm) y sugiere procesos relacionados con sistemas de imágenes ópticas. Según Robert L. Cook , Reyes está escrito solo con la primera letra en mayúscula, como aparece en el documento SIGGRAPH de Cook / Carpenter / Catmull de 1987.
Arquitectura
La arquitectura se diseñó con una serie de objetivos en mente:
- Complejidad / diversidad de modelos : para generar imágenes visualmente complejas y ricas, los usuarios de un sistema de renderizado deben tener la libertad de modelar grandes cantidades (100.000) de estructuras geométricas complejas posiblemente generadas mediante modelos procedimentales como fractales y sistemas de partículas .
- Complejidad del sombreado : gran parte de la complejidad visual de una escena se genera por la forma en que los rayos de luz interactúan con las superficies de los objetos sólidos. Generalmente, en los gráficos por computadora, esto se modela utilizando texturas. Las texturas pueden ser matrices de píxeles coloreadas, describir los desplazamientos de la superficie o la transparencia o la reflectividad de la superficie. Reyes permite a los usuarios incorporar sombreadores de procedimiento mediante los cuales la estructura de la superficie y la interacción óptica se logra utilizando programas informáticos que implementan algoritmos de procedimiento en lugar de simples tablas de búsqueda. Una buena parte del algoritmo tiene como objetivo minimizar el tiempo que dedican los procesadores a obtener texturas de los almacenes de datos.
- Trazado de rayos mínimo : en el momento en que se propuso Reyes, los sistemas informáticos eran significativamente menos capaces en términos de potencia de procesamiento y almacenamiento. Esto significaba que el trazado de rayos de una escena fotorrealista llevaría decenas o cientos de horas por cuadro. Algoritmos como el de Reyes, que generalmente no trazaban rayos, se ejecutan mucho más rápido con resultados casi fotorrealistas.
- Velocidad : la reproducción de una película de dos horas a 24 fotogramas por segundo en un año permite un tiempo de reproducción de 3 minutos por fotograma, en promedio.
- Calidad de imagen : cualquier imagen que contenga artefactos no deseados relacionados con el algoritmo se considera inaceptable.
- Flexibilidad : la arquitectura debe ser lo suficientemente flexible para incorporar nuevas técnicas a medida que estén disponibles, sin la necesidad de una reimplementación completa del algoritmo.
Reyes logra de manera eficiente varios efectos que se consideraron necesarios para una reproducción con calidad de película: superficies suaves y curvas; texturizado superficial; desenfoque de movimiento ; y profundidad de campo .
Reyes renderiza superficies curvas, como las representadas por parches paramétricos , dividiéndolas en micropolígonos , pequeños cuadriláteros cada uno de menos de un píxel de tamaño. Aunque se necesitan muchos micropolígonos para aproximar superficies curvas con precisión, se pueden procesar con operaciones simples y paralelizables . Un renderizador de Reyes tesela las primitivas de alto nivel en micropolígonos a pedido, dividiendo cada primitiva tan finamente como sea necesario para que parezca suave en la imagen final.
A continuación, un sistema de sombreado asigna un color y una opacidad a cada vértice de un micropolígono. La mayoría de los renderizadores de Reyes permiten a los usuarios proporcionar funciones de iluminación y texturizado arbitrarias escritas en un lenguaje de sombreado . Los micropolígonos se procesan en grandes cuadrículas que permiten vectorizar los cálculos .
Los micropolígonos sombreados se muestrean en el espacio de la pantalla para producir la imagen de salida. Reyes emplea un algoritmo de superficie oculta innovador o Hider que realiza las integraciones necesarias para el desenfoque de movimiento y profundidad de campo sin requerir más geometría o sombreado muestras de una no borrosa render necesitaría. El ocultador acumula colores de micropolígono en cada píxel a lo largo del tiempo y la posición de la lente utilizando un método de Monte Carlo llamado muestreo estocástico .
Tubería
El oleoducto básico de Reyes tiene los siguientes pasos:
- Atado. Calcula el volumen delimitador de cada primitiva geométrica.
- Separar. Divida las primitivas grandes en primitivas más pequeñas que se puedan dividir.
- Dado. Convierta la primitiva en una cuadrícula de micropolígonos, cada uno aproximadamente del tamaño de un píxel.
- Sombra. Calcule la iluminación y el sombreado en cada vértice de la cuadrícula del micropolígono.
- Divida la cuadrícula en micropolígonos individuales, cada uno de los cuales está delimitado y verificado para su visibilidad.
- Esconder. Muestree los micropolígonos, produciendo la imagen 2D final.
En este diseño, el renderizador debe almacenar todo el búfer de fotogramas en la memoria, ya que la imagen final no se puede generar hasta que se hayan procesado todas las primitivas. Una optimización de memoria común introduce un paso llamado agrupamiento antes del paso de corte en cubitos. La imagen de salida se divide en una gruesa cuadrícula de "cubos", cada uno de los cuales suele tener un tamaño de 16 por 16 píxeles. Luego, los objetos se dividen aproximadamente a lo largo de los límites del depósito y se colocan en depósitos según su ubicación. Cada cubo se corta en cubitos y se extrae individualmente, y los datos del cubo anterior se descartan antes de que se procese el siguiente. De esta manera, solo se debe mantener en la memoria un búfer de trama para el segmento actual y las descripciones de alto nivel de todas las primitivas geométricas. Para escenas típicas, esto conduce a una reducción significativa en el uso de memoria en comparación con el algoritmo de Reyes sin modificar.
Representadores de Reyes
Los siguientes renderizadores utilizan el algoritmo de Reyes de una forma u otra o al menos permiten a los usuarios seleccionarlo para producir sus imágenes:
- 3Delight de Digits 'n Art ( enlace )
- Aqsis ( enlace ) código abierto
- jrMan ( enlace ) código abierto
- RenderMan Pro Server y RenderMan para Maya de Pixar ( enlace ) hasta la versión 20 (lanzada en 2015) [3]
- Renderizador 3D de píxeles ( enlace )
- Pixie ( enlace ) de código abierto
- RenderDotC de DotC Software ( enlace )
- Mantra del software de efectos secundarios ( enlace )
- Poser's FireFly ( enlace )
- Relight de panadería ( enlace )
Referencias
- ^ RenderMan @ 20: Ed Catmull y Dana Batali reflexionan sobre la aplicación Killer de Pixar "
- ^ "Pixar lanza RenderMan 21 | Canal CG" . 2016-07-20 . Consultado el 11 de marzo de 2021 .
- ^ "Pixar lanza RenderMan 21 | CG Channel" . www.cgchannel.com . Consultado el 22 de julio de 2016 .
- Robert L. Cook ., Loren Carpenter y Edwin Catmull . " La arquitectura de renderizado de imágenes de Reyes ". Gráficos por computadora ( Actas de SIGGRAPH '87) , págs. 95–102.
- Anthony A. Apodaca y Larry Gritz . RenderMan avanzado: Creación de CGI para imágenes en movimiento . Editores Morgan Kaufmann. ISBN 1-55860-618-1
enlaces externos
- REYES, primitivos y algo de filosofía
- Bienvenido a Renderman: Reyes