stringtranslate.com

Representación de Reyes

Representación de Aqsis Reyes de la tetera Utah con un sombreador de desplazamiento

El algoritmo de renderizado Reyes es una arquitectura de software de computadora utilizada en gráficos de computadora 3D para renderizar imágenes fotorrealistas. Fue desarrollado a mediados de la década de 1980 por Loren Carpenter y Robert L. Cook en el Computer Graphics Research Group 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: La ira de Khan . RenderMan de Pixar fue una implementación del algoritmo Reyes. Ha quedado obsoleto a partir de 2016 y se eliminó a partir de RenderMan 21. [2] Según el artículo original que describe el algoritmo, el sistema de renderizado de imágenes Reyes es "Una arquitectura para renderizado rápido y de alta calidad de imágenes complejas". Reyes fue propuesto como una colección de algoritmos y sistemas de procesamiento de datos. Sin embargo, los términos "algoritmo" y "arquitectura" han llegado a usarse como sinónimos en este contexto y se usan 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 los sistemas de imágenes ópticas. Según Robert L. Cook , Reyes se escribe con solo la primera letra en mayúscula, como aparece en el artículo de Cook/Carpenter/Catmull SIGGRAPH de 1987.

Arquitectura

La arquitectura fue diseñada con una serie de objetivos en mente:

Reyes logra de manera eficiente varios efectos que se consideraban necesarios para una representación con calidad cinematográfica: superficies suaves y curvas, texturas de superficie, 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 de menos de un píxel de tamaño cada uno. Aunque se necesitan muchos micropolígonos para aproximarse con precisión a las superficies curvas, se pueden procesar con operaciones simples y paralelizables . Un renderizador de Reyes tesela primitivas de alto nivel en micropolígonos a pedido, dividiendo cada primitiva solo con la precisión necesaria 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 Reyes permiten a los usuarios proporcionar funciones de iluminación y textura arbitrarias escritas en un lenguaje de sombreado . Los micropolígonos se procesan en cuadrículas grandes 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 que realiza las integraciones necesarias para el desenfoque de movimiento y la profundidad de campo sin requerir más muestras de geometría o sombreado de las que necesitaría una representación sin desenfoque. El ocultador acumula colores de micropolígonos 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 pipeline básico de Reyes tiene los siguientes pasos:

  1. Límite. Calcular el volumen límite de cada primitiva geométrica.
  2. Dividir. Dividir primitivos grandes en primitivos más pequeños y troceables.
  3. Dados. Convierte el primitivo en una cuadrícula de micropolígonos, cada uno de ellos aproximadamente del tamaño de un píxel.
  4. Sombra. Calcular la iluminación y el sombreado en cada vértice de la cuadrícula del micropolígono.
  5. Divida la cuadrícula en micropolígonos individuales, cada uno de los cuales está delimitado y se verifica su visibilidad.
  6. Ocultar. Muestrear los micropolígonos para generar 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 todos los primitivos. Una optimización de memoria común introduce un paso llamado división en cubos antes del paso de división en cubos. La imagen de salida se divide en una cuadrícula gruesa de "cubos", cada uno de los cuales tiene un tamaño típico de 16 por 16 píxeles. A continuación, los objetos se dividen aproximadamente a lo largo de los límites de los cubos y se colocan en cubos según su ubicación. Cada cubo se divide en cubos y se dibuja 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 fotogramas para el cubo actual y las descripciones de alto nivel de todos los primitivos geométricos. 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.

Renderizadores de Reyes

Los siguientes renderizadores utilizan el algoritmo Reyes de una forma u otra o al menos permiten a los usuarios seleccionarlo para producir sus imágenes:

Referencias

  1. ^ RenderMan@20: Ed Catmull y Dana Batali reflexionan sobre la aplicación revolucionaria de Pixar
  2. ^ "Pixar lanza RenderMan 21 | CG Channel". 20 de julio de 2016. Consultado el 11 de marzo de 2021 .
  3. ^ "Pixar lanza RenderMan 21 | CG Channel". www.cgchannel.com . Consultado el 22 de julio de 2016 .

Enlaces externos