Articulo de referencia

Renderizado (gráficos por computadora)

Imagen generada con POV-Ray 3.6. Visualización arquitectónica realizada en múltiples estilos utilizando Blender. El renderizado es el proceso de generar una imagen a partir de d...

Imagen generada con POV-Ray 3.6.
Visualización arquitectónica realizada en múltiples estilos utilizando Blender.

El renderizado es el proceso de generar una imagen a partir de datos de entrada, como modelos 3D . La palabra "renderizado" (en uno de sus sentidos) originalmente se refería a la tarea realizada por un artista al representar algo real o imaginario (la obra de arte terminada también se denomina " renderizado "). Hoy en día, "renderizar" suele significar utilizar un ordenador para generar una imagen a partir de una especificación precisa, a menudo creada por un artista (o varios artistas) mediante software de modelado 3D interactivo. Los tipos de imágenes renderizadas incluyen tanto imágenes fijas como fotogramas para películas y videojuegos . [ 1 ] [ 2 ] [ 3 ] [ 4 ]

En el contexto de los gráficos por computadora , en el uso estándar, la palabra "renderizado" por sí sola significa renderizar escenas 3D, [ a ] pero a veces se usa con un significado más amplio. Se usa un modificador como "2D" o "3D" cuando existe una posible ambigüedad (por ejemplo, renderizado 3D ). [ 6 ] [ 7 ] : 2.1,38.1 [ 8 ] : prefacio

Una aplicación o componente de software que realiza renderizado se denomina motor de renderizado , [ 9 ] motor de renderizado , sistema de renderizado , motor gráfico o simplemente renderizador .

Se distingue entre renderizado en tiempo real , en el que las imágenes se generan y muestran inmediatamente (idealmente con la suficiente rapidez para dar la impresión de movimiento o animación), y renderizado fuera de línea (a veces llamado pre-renderizado ), en el que las imágenes o fotogramas se generan para su posterior visualización. El renderizado fuera de línea puede utilizar un motor de renderizado más lento y de mayor calidad. Las aplicaciones interactivas, como los videojuegos, deben utilizar principalmente renderizado en tiempo real, aunque pueden incorporar contenido pre-renderizado.

El renderizado produce imágenes de escenas u objetos definidos mediante coordenadas en el espacio 3D , vistas desde un punto de vista específico . Utiliza conocimientos e ideas de la óptica , el estudio de la percepción visual , las matemáticas y la ingeniería de software , y tiene aplicaciones como videojuegos, simuladores , efectos visuales para cine y televisión, visualización de diseño y diagnóstico médico . El renderizado realista requiere modelar la propagación de la luz en un entorno, por ejemplo, aplicando la ecuación de renderizado .

La renderización en tiempo real utiliza algoritmos de rasterización de alto rendimiento que procesan una lista de formas y determinan qué píxeles cubre cada forma. Cuando se requiere mayor realismo (por ejemplo, para visualización arquitectónica o efectos visuales ), se utilizan algoritmos más lentos de procesamiento píxel a píxel, como el trazado de rayos . (El trazado de rayos también se puede utilizar selectivamente durante la renderización rasterizada para mejorar el realismo de la iluminación y los reflejos). Un tipo de trazado de rayos llamado trazado de ruta es actualmente la técnica más común para la renderización fotorrealista. El trazado de ruta también es popular para generar imágenes no fotorrealistas de alta calidad, como fotogramas para películas de animación 3D. Tanto la rasterización como el trazado de rayos se pueden acelerar mediante microprocesadores especialmente diseñados llamados GPU .

Los algoritmos de rasterización también se utilizan para producir imágenes que contienen solo formas 2D, como polígonos y texto . Este tipo de renderizado a veces se denomina renderizado 2D , [ 7 ] : 3.6 y sus aplicaciones incluyen la ilustración digital , el diseño gráfico , la animación 2D , la autoedición y la visualización de interfaces de usuario .

Históricamente, el renderizado se denominaba síntesis de imágenes [ 10 ] : xxi pero hoy en día este término probablemente signifique generación de imágenes por IA . [ 11 ] El término "renderizado neuronal" se utiliza a veces cuando una red neuronal es el medio principal de generar una imagen pero se proporciona cierto grado de control sobre la imagen de salida. [ 12 ] Las redes neuronales también pueden ayudar al renderizado sin reemplazar los algoritmos tradicionales, por ejemplo, eliminando el ruido de las imágenes trazadas por rayos.

Notas
  1. "El renderizado es el proceso de producir una imagen a partir de la descripción de una escena 3D." Pharr et al., Physically Based Rendering, The MIT Press, 2023, Introducción [ 5 ]

Características

Renderizado fotorrealista

Una gran parte de la investigación en gráficos por computadora se ha centrado en producir imágenes que se asemejen a fotografías. Las técnicas fundamentales que lo hacen posible se inventaron en la década de 1980, pero a finales de la década, el fotorrealismo para escenas complejas todavía se consideraba un objetivo lejano. [ 13 ] : x Hoy en día, el fotorrealismo se logra de forma rutinaria para la renderización fuera de línea, pero sigue siendo difícil para la renderización en tiempo real . [ 14 ] : 1–2

Para producir imágenes realistas, el renderizado debe simular cómo la luz viaja desde las fuentes de luz, se refleja, refracta y dispersa (a menudo muchas veces) por los objetos de la escena, pasa a través de la lente de la cámara y finalmente llega a la película o al sensor de la cámara. La física utilizada en estas simulaciones es principalmente la óptica geométrica , en la que las partículas de luz siguen líneas (generalmente rectas) llamadas rayos , pero en algunas situaciones (como al renderizar películas delgadas , como la superficie de las burbujas de jabón ) debe tenerse en cuenta la naturaleza ondulatoria de la luz . [ 15 ] [ 16 ]

Entre los efectos que podrían necesitar ser simulados se incluyen:

  • Sombras , incluyendo tanto sombras con bordes definidos como sombras suaves con umbra y penumbra.
  • Reflejos en espejos y superficies lisas, así como en superficies reflectantes rugosas u onduladas.
  • Refracción : la desviación de la luz al atravesar la frontera entre dos materiales transparentes, como el aire y el vidrio. La magnitud de esta desviación varía según la longitud de onda de la luz, lo que puede provocar la aparición de franjas de colores o "arcoíris". 
  • Efectos volumétricos : absorción y dispersión cuando la luz viaja a través de sustancias parcialmente transparentes o translúcidas (llamadas medios participantes porque modifican la luz en lugar de simplemente permitir que los rayos la atraviesen) [ 17 ] : 140 [ 15 ] 
  • Cáusticas : manchas brillantes, a veces con filamentos distintivos y una apariencia plegada o retorcida, que resultan cuando la luz se refleja o refracta antes de iluminar un objeto. [ 17 ] : 109 

En escenas realistas, los objetos se iluminan tanto por la luz que llega directamente de una fuente de luz (tras atravesar el aire prácticamente sin obstáculos) como por la luz que rebota en otros objetos de la escena. La simulación de esta iluminación compleja se denomina iluminación global . Antiguamente, la iluminación indirecta se simulaba a menudo (sobre todo al renderizar películas de animación ) colocando luces ocultas adicionales en la escena, pero hoy en día se utiliza el trazado de rayos para renderizarla con precisión. [ 18 ] : 3 [ 17 ] : 108

Para lograr un fotorrealismo auténtico, es necesario simular la cámara utilizada para tomar la fotografía. La aproximación de lente delgada permite combinar la proyección de perspectiva con la emulación de la profundidad de campo (y el bokeh ). Las simulaciones de lentes de cámara pueden hacerse más realistas modelando la forma en que la luz se refracta por los componentes de la lente. El desenfoque de movimiento se suele simular si se renderizan fotogramas de película o vídeo. [ 15 ] [ 19 ] A veces se añaden destellos y brillos simulados para que la imagen parezca subjetivamente más brillante (aunque el diseño de las cámaras reales intenta reducir estos efectos). [ 8 ] : 12.4

La representación realista utiliza descripciones matemáticas de cómo los diferentes materiales de superficie reflejan la luz, denominadas modelos de reflectancia o (cuando es físicamente plausible) funciones de distribución de reflectancia bidireccional (BRDF) . [ 15 ] La representación de materiales como el mármol , las hojas de las plantas y la piel humana requiere simular un efecto llamado dispersión subsuperficial , en el que una porción de la luz viaja hacia el material, se dispersa y luego regresa hacia afuera. [ 17 ] : 143 La forma en que el color y propiedades como la rugosidad varían en una superficie se puede representar de manera eficiente mediante el mapeo de texturas . [ 8 ] : 6.1

Otros estilos de renderizado 3D

Para algunas aplicaciones (incluidas las primeras etapas del modelado 3D ), pueden ser apropiados estilos de renderizado simplificados como el renderizado de estructura alámbrica , particularmente cuando no se han definido los detalles del material y la superficie y solo se conoce la forma de un objeto. [ 20 ] : 5.3 Los juegos y otras aplicaciones en tiempo real pueden usar técnicas de renderizado más simples y menos realistas como una elección artística o de diseño, o para permitir velocidades de fotogramas más altas en hardware de gama baja.

Las proyecciones ortográficas e isométricas pueden utilizarse para lograr un efecto estilizado o para asegurar que las líneas paralelas se representen como paralelas en la representación CAD . [ 8 ] : 4.7 [ 20 ] : 3.7

La representación no fotorrealista (NPR) utiliza técnicas como la detección de bordes y la posterización para producir imágenes 3D que se asemejan a ilustraciones técnicas, dibujos animados u otros estilos de dibujo o pintura. [ 8 ] : cap. 15

Renderizado 2D

En los gráficos por computadora 2D, las posiciones y tamaños de las formas se especifican mediante coordenadas 2D (x e y) en lugar de coordenadas 3D (x, y y z). Las API de renderizado 2D suelen usar un sistema de coordenadas independiente de la resolución , donde la ventana gráfica determina cómo convertir las coordenadas a índices de píxeles llamados coordenadas del dispositivo . [ 21 ] : 46 Se pueden aplicar transformaciones como escalado , traslación y rotación antes de renderizar las formas. Estas transformaciones afines a menudo se representan mediante matrices de 3 × 3 , lo que facilita la composición de transformaciones. [ 21 ] : 245–255

Los motores de renderizado 2D de mayor calidad, como los renderizadores SVG, suelen implementar suavizado de bordes para reducir la apariencia dentada de las líneas rasterizadas y los bordes de las formas. [ 22 ] : 2.5.6 Al renderizar formas superpuestas, los renderizadores suelen utilizar un " modelo de pintor " en el que las formas se dibujan en un orden determinado, o sus contribuciones a cada píxel se componen mediante operaciones de mezcla que pueden depender del orden de las entradas. [ 22 ] : 3.3 Los renderizadores pueden permitir asignar a las formas un " índice z " o un "orden de apilamiento" para especificar el orden de renderizado o de mezcla (a diferencia de la coordenada z utilizada en el renderizado 3D, esta tercera coordenada solo indica un orden , no una distancia, y no se puede rotar de forma significativa junto con las coordenadas x e y). [ 22 ] : 3.4

La representación 2D normalmente no simula la propagación de la luz (lo que probablemente requeriría especificar posiciones 3D o grosor para las formas). Efectos como sombras paralelas y transparencia se definen mediante funciones matemáticas sin base física. [ 23 ] : 9.12 [ 24 ] : 5

La representación 2D para impresión puede requerir resoluciones muy altas, por ejemplo, 600 o 1200 ppp para una impresora láser típica , o 2400 ppp o superior para una fotocomponedora o grabadora de planchas . Las imágenes en escala de grises y en color requieren semitonos (o algún tipo de tramado o filtrado estocástico ) y separaciones de color . Un motor de renderizado llamado procesador de imágenes ráster (RIP) convierte los datos de entrada, como archivos PDF , en imágenes de mapa de bits de alta resolución utilizadas por la impresora. [ 25 ] : Cap. 1-2

Entradas

Antes de poder renderizar una escena 3D o una imagen 2D, debe describirse de forma que el software de renderizado pueda comprenderla. Históricamente, las entradas para el renderizado tanto en 2D como en 3D solían ser archivos de texto , que son más fáciles de editar y depurar para los humanos que los archivos binarios. En el caso de los gráficos 3D, los formatos de texto han sido reemplazados en gran medida por formatos binarios más eficientes y por API que permiten a las aplicaciones interactivas comunicarse directamente con un componente de renderizado sin generar un archivo en el disco (aunque, por lo general, se sigue creando una descripción de la escena en memoria antes del renderizado). [ 6 ] : 1.2, 3.2.6, 3.3.1, 3.3.7

Los algoritmos de renderizado tradicionales utilizan descripciones geométricas de escenas 3D o imágenes 2D. Las aplicaciones y los algoritmos que renderizan visualizaciones de datos escaneados del mundo real, o simulaciones científicas , pueden requerir diferentes tipos de datos de entrada.

El formato PostScript (al que a menudo se le atribuye el auge de la autoedición ) proporciona una forma estandarizada e interoperable de describir gráficos 2D y diseño de página . El formato Scalable Vector Graphics (SVG) también está basado en texto, y el formato PDF utiliza el lenguaje PostScript internamente. Por el contrario, aunque muchos formatos de archivo de gráficos 3D se han estandarizado (incluidos formatos basados ​​en texto como VRML y X3D ), las diferentes aplicaciones de renderizado suelen utilizar formatos adaptados a sus necesidades, y esto ha llevado a una proliferación de formatos propietarios y abiertos, siendo los archivos binarios los más comunes. [ 6 ] : 3.2.3, 3.2.5, 3.3.7 [ 26 ] : vii [ 27 ] [ 7 ] : 16.5.2. [ 28 ]

Gráficos vectoriales 2D

La descripción de una imagen de gráficos vectoriales puede incluir: [ 26 ] [ 27 ]

geometría 3D

Una descripción de escena geométrica puede incluir: [ 6 ] : Cap. 4-7, 8.7 [ 29 ]

Existen muchos formatos de archivo para almacenar objetos 3D individuales o " modelos ". Estos pueden importarse a una escena más grande o cargarse bajo demanda mediante software de renderizado o juegos. Una escena realista puede requerir cientos de elementos como objetos domésticos, vehículos y árboles, y los artistas 3D suelen utilizar grandes bibliotecas de modelos. En la producción de videojuegos, estos modelos (junto con otros datos como texturas, archivos de audio y animaciones) se denominan " recursos ". [ 28 ] [ 30 ] : Cap. 4

Datos volumétricos

La visualización científica y de ingeniería a menudo requiere la representación de datos volumétricos generados por escaneos o simulaciones 3D . Quizás la fuente más común de dichos datos sean las tomografías computarizadas (TC) y las resonancias magnéticas (RM) , que deben representarse para el diagnóstico. Los datos volumétricos pueden ser extremadamente grandes y requieren formatos de datos especializados para almacenarlos de manera eficiente, particularmente si el volumen es disperso (con regiones vacías que no contienen datos). [ 8 ] : 14.3.1 [ 31 ] [ 32 ]

Antes de la renderización, los conjuntos de niveles para datos volumétricos se pueden extraer y convertir en una malla de triángulos, por ejemplo, utilizando el algoritmo de cubos marchantes . También se han desarrollado algoritmos que trabajan directamente con datos volumétricos, por ejemplo, para renderizar representaciones realistas de cómo la luz se dispersa y absorbe por las nubes y el humo, y este tipo de renderización volumétrica se utiliza ampliamente en efectos visuales para películas. Al renderizar datos volumétricos de menor resolución sin interpolación, los cubos individuales o " vóxeles " pueden ser visibles, un efecto que a veces se utiliza deliberadamente para gráficos de juegos. [ 33 ] : 4.6 [ 8 ] : 13.10, Cap. 14, 16.1

Fotogrametría y escaneo

Las fotografías de objetos del mundo real se pueden incorporar a una escena renderizada utilizándolas como texturas para objetos 3D. Las fotos de una escena también se pueden unir para crear imágenes panorámicas o mapas de entorno , lo que permite renderizar la escena de forma muy eficiente, pero solo desde un único punto de vista. El escaneo de objetos y escenas reales mediante luz estructurada o lidar produce nubes de puntos que consisten en las coordenadas de millones de puntos individuales en el espacio, a veces junto con información de color. Estas nubes de puntos se pueden renderizar directamente o convertir en mallas antes de la renderización. (Nota: "nube de puntos" a veces también se refiere a un estilo de renderización minimalista que se puede utilizar para cualquier geometría 3D, similar a la renderización de estructura alámbrica). [ 8 ] : 13.3, 13.9 [ 6 ] : 1.3

Aproximaciones neuronales y campos de luz

Un enfoque experimental más reciente consiste en la descripción de escenas mediante campos de radiancia que definen el color, la intensidad y la dirección de la luz incidente en cada punto del espacio. (Esto es conceptualmente similar, pero no idéntico, al campo de luz registrado por un holograma ). Para cualquier resolución útil, la cantidad de datos en un campo de radiancia es tan grande que resulta impracticable representarlo directamente como datos volumétricos, por lo que debe hallarse una función de aproximación . Normalmente se utilizan redes neuronales para generar y evaluar estas aproximaciones, a veces utilizando fotogramas de vídeo o una colección de fotografías de una escena tomadas desde diferentes ángulos como " datos de entrenamiento ". [ 34 ] [ 35 ]

Recientemente se han utilizado algoritmos relacionados con redes neuronales para encontrar aproximaciones de una escena como gaussianas 3D . La representación resultante es similar a una nube de puntos , excepto que utiliza manchas difusas y parcialmente transparentes de dimensiones y orientaciones variables en lugar de puntos. Al igual que con los campos de radiancia neuronal , estas aproximaciones a menudo se generan a partir de fotografías o fotogramas de vídeo. [ 36 ]

Salidas

El resultado del renderizado puede mostrarse inmediatamente en la pantalla (varias veces por segundo, en el caso del renderizado en tiempo real, como en los videojuegos) o guardarse en un formato de archivo de gráficos rasterizados como JPEG o PNG . Las aplicaciones de renderizado de alta gama suelen utilizar el formato de archivo OpenEXR , que puede representar gradaciones de color más finas e iluminación de alto rango dinámico , lo que permite aplicar posteriormente mapeo de tonos u otros ajustes sin pérdida de calidad. [ 37 ] [ 38 ] : Cap. 14, Ap. B

Las animaciones renderizadas rápidamente se pueden guardar directamente como archivos de vídeo, pero para una renderización de alta calidad, los fotogramas individuales (que pueden ser renderizados por diferentes ordenadores en un clúster o granja de renderizado y pueden tardar horas o incluso días en renderizarse) se generan como archivos separados y se combinan posteriormente en un videoclip. [ 39 ] [ 30 ] : 1.5, 3.11, 8.11

La salida de un renderizador a veces incluye más que solo valores de color RGB . Por ejemplo, el espectro se puede muestrear usando múltiples longitudes de onda de luz, o se puede incluir información adicional como profundidad (distancia desde la cámara) o el material de cada punto en la imagen (estos datos se pueden usar durante la composición o al generar mapas de textura para renderizado en tiempo real, o se pueden usar para ayudar a eliminar el ruido de una imagen trazada por rayos). Se puede incluir información de transparencia, lo que permite componer objetos en primer plano renderizados con fotografías o video. También es útil a veces almacenar las contribuciones de diferentes luces, o de iluminación especular y difusa, como canales separados, para que la iluminación se pueda ajustar después del renderizado. El formato OpenEXR permite almacenar muchos canales de datos en un solo archivo. Renderizadores como Blender y Pixar RenderMan admiten una gran variedad de valores configurables llamados Variables de Salida Arbitrarias (AOV). [ 37 ] [ 38 ] : Cap. 14, Ap. B [ 40 ]

Técnicas

Elegir cómo renderizar una escena 3D generalmente implica compromisos entre velocidad, uso de memoria y realismo (aunque el realismo no siempre es deseado).Los algoritmos desarrollados a lo largo de los años siguen una progresión aproximada, en la que los métodos más avanzados se vuelven prácticos a medida que aumenta la potencia de cálculo y la capacidad de memoria. Se pueden utilizar varias técnicas para obtener una misma imagen final.

Una distinción importante radica en la diferencia entre los algoritmos de orden de imagen , que iteran sobre los píxeles de la imagen, y los algoritmos de orden de objeto , que iteran sobre los objetos de la escena. Para escenas simples, el orden de objeto suele ser más eficiente, ya que hay menos objetos que píxeles. [ 41 ] : Cap. 4

Gráficos vectoriales 2D
Las pantallas vectoriales de las décadas de 1960 y 1970 utilizaban la desviación de un haz de electrones para dibujar segmentos de línea directamente en la pantalla. Actualmente, los gráficos vectoriales se renderizan mediante algoritmos de rasterización que también admiten formas rellenas. En principio, cualquier renderizador de gráficos vectoriales 2D puede utilizarse para renderizar objetos 3D proyectándolos primero sobre un plano de imagen 2D. [ 21 ] : 93, 431, 505, 553
rasterización 3D
Adapta los algoritmos de rasterización 2D para que puedan utilizarse de forma más eficiente en la renderización 3D, gestionando la eliminación de superficies ocultas mediante técnicas de línea de exploración o búfer Z. Se pueden obtener diferentes efectos realistas o estilizados coloreando los píxeles cubiertos por los objetos de distintas maneras. Las superficies se dividen normalmente en mallas de triángulos antes de ser rasterizadas. La rasterización suele ser sinónimo de renderización por "orden de objetos" (como se describió anteriormente). [ 21 ] : 560-561, 575-590 [ 6 ] : 8.5 [ 41 ] : Cap. 9
Ray casting
Utiliza fórmulas geométricas para calcular el primer objeto que interseca un rayo . [ 42 ] : 8 Se puede utilizar para implementar la renderización de "orden de imagen" lanzando un rayo para cada píxel y encontrando un punto correspondiente en la escena. El lanzamiento de rayos es una operación fundamental utilizada tanto para fines gráficos como no gráficos, [ 14 ] : 6 por ejemplo, determinar si un punto está en sombra o comprobar qué puede ver un enemigo en un juego .
trazado de rayos
Simula las trayectorias de rebote de la luz causadas por la reflexión y refracción especular , lo que requiere un número variable de operaciones de trazado de rayos para cada trayectoria. Las formas avanzadas utilizan técnicas de Monte Carlo para renderizar efectos como luces de área, profundidad de campo , reflejos borrosos y sombras suaves , pero el cálculo de la iluminación global suele estar en el ámbito del trazado de trayectorias. [ 42 ] : 9-13 [ 43 ]
Radiosidad
Un método de análisis de elementos finitos que divide las superficies de la escena en fragmentos y estima la cantidad de luz que cada fragmento recibe de las fuentes de luz o indirectamente de otras superficies. Una vez conocida la irradiancia de cada superficie, la escena se puede renderizar mediante rasterización o trazado de rayos. [ 10 ] : 888-890, 1044-1045
trazado de rutas
Utiliza la integración de Monte Carlo con una forma simplificada de trazado de rayos, calculando el brillo promedio de una muestra de las posibles trayectorias que un fotón podría tomar al viajar desde una fuente de luz hasta la cámara (para algunas imágenes, es necesario muestrear miles de trayectorias por píxel [ 14 ] : 8 ). Se introdujo como una forma estadísticamente imparcial de resolver la ecuación de renderizado , proporcionando al trazado de rayos una base matemática rigurosa. [ 44 ] [ 42 ] : 11-13

Cada uno de los enfoques anteriores tiene muchas variaciones y existe cierta superposición. El trazado de trayectorias puede considerarse una técnica distinta o un tipo particular de trazado de rayos. [ 10 ] : 846, 1021 Nótese que el uso de la terminología relacionada con el trazado de rayos y el trazado de trayectorias ha cambiado significativamente con el tiempo. [ 42 ] : 7

Una escena renderizada en tiempo real mediante el trazado de rayos de campos de distancia con signo . Los efectos de iluminación y sombreado se producen mediante programación creativa (no se basan en principios físicos).

El trazado de rayos es una familia de algoritmos, utilizados por el trazado de rayos, para encontrar intersecciones entre un rayo y un objeto complejo, como un conjunto de datos volumétricos o una superficie definida por una función de distancia con signo . No es, por sí mismo, un método de renderizado, pero puede incorporarse al trazado de rayos y al trazado de rutas, y se utiliza en la rasterización para implementar la reflexión en el espacio de la pantalla y otros efectos. [ 42 ] : 13

Una técnica llamada mapeo de fotones traza las trayectorias de los fotones desde una fuente de luz hasta un objeto, acumulando datos sobre la irradiancia que luego se utilizan durante el trazado de rayos o el trazado de trayectorias convencional. [ 10 ] : 1037-1039 Renderizar una escena utilizando solo rayos trazados desde la fuente de luz hasta la cámara es poco práctico, aunque se corresponda más con la realidad, porque sería necesario simular una enorme cantidad de fotones, de los cuales solo una pequeña fracción realmente llega a la cámara. [ 45 ] : 7-9 [ 21 ] : 587

Algunos autores denominan trazado de rayos convencional "trazado hacia atrás" porque traza las trayectorias de los fotones desde la cámara hasta la fuente de luz, y trazado de rayos "trazado hacia adelante" siguiendo las trayectorias desde la fuente de luz (como en el mapeo de fotones). [ 45 ] : 7-9 Sin embargo, a veces el significado de estos términos se invierte. [ 46 ] El trazado de rayos que comienza en la fuente de luz también puede denominarse trazado de partículas o trazado de luz , lo que evita esta ambigüedad. [ 18 ] : 92 [ 47 ] : 4.5.4

La renderización en tiempo real, incluyendo los gráficos de videojuegos, suele utilizar la rasterización, pero cada vez más la combina con el trazado de rayos y el trazado de rutas. [ 14 ] : 2 Para lograr una iluminación global realista , la renderización en tiempo real a menudo se basa en iluminación prerrenderizada ("horneada") para objetos estacionarios. Para objetos en movimiento, puede utilizar una técnica llamada sondas de luz , en la que la iluminación se registra renderizando vistas omnidireccionales de la escena en puntos elegidos del espacio (a menudo puntos en una cuadrícula para facilitar la interpolación ). Estas son similares a los mapas de entorno , pero suelen utilizar una resolución muy baja o una aproximación como los armónicos esféricos . [ 48 ] (Nota: Blender utiliza el término "sondas de luz" para una clase más general de datos de iluminación pregrabados, incluyendo mapas de reflexión. [ 49 ] )

Rasterización

Visualización arquitectónica del Telescopio Extremadamente Grande de 2009, probablemente realizada mediante una combinación de técnicas.

El término rasterización (en sentido amplio) abarca muchas técnicas utilizadas para la renderización 2D y la renderización 3D en tiempo real . Las películas de animación 3D se renderizaban mediante rasterización antes de que el trazado de rayos y el trazado de rutas se volvieran prácticos.

Un renderizador combina la rasterización con el procesamiento de geometría (que no es específico de la rasterización) y el procesamiento de píxeles que calcula los valores de color RGB que se colocarán en el framebuffer para su visualización. [ 8 ] : 2.1 [ 41 ] : 9

Las principales tareas de rasterización (incluido el procesamiento de píxeles) son: [ 8 ] : 2, 3.8, 23.1.1

  • Determinar qué píxeles están cubiertos por cada forma geométrica en la escena 3D o la imagen 2D (este es el paso de rasterización propiamente dicho, en el sentido más estricto).
  • Mezcla entre colores y profundidades definidas en los vértices de las formas, por ejemplo, utilizando coordenadas baricéntricas ( interpolación ).
  • Determinar si partes de las formas están ocultas por otras formas, debido a la superposición de capas 2D o a la profundidad 3D ( eliminación de superficies ocultas ).
  • Evaluar una función para cada píxel cubierto por una forma ( sombreado ).
  • Suavizar los bordes de las formas para que los píxeles sean menos visibles ( anti-aliasing ).
  • Combinación de formas transparentes superpuestas ( composición )

La rasterización 3D suele formar parte de una canalización gráfica en la que una aplicación proporciona listas de triángulos que se van a renderizar, y el sistema de renderizado transforma y proyecta sus coordenadas, determina qué triángulos son potencialmente visibles en la ventana gráfica y realiza las tareas de rasterización y procesamiento de píxeles mencionadas anteriormente antes de mostrar el resultado final en la pantalla. [ 8 ] : 2.1 [ 41 ] : 9

Históricamente, la rasterización 3D utilizaba algoritmos como el algoritmo de Warnock y la renderización por líneas de escaneo (también llamada "conversión de escaneo"), que pueden manejar polígonos arbitrarios y rasterizar múltiples formas simultáneamente. Si bien estos algoritmos siguen siendo importantes para la renderización 2D, actualmente la renderización 3D suele dividir las formas en triángulos y rasterizarlas individualmente mediante métodos más sencillos. [ 50 ] [ 51 ] [ 21 ] : 456, 561–569

Existen algoritmos de alto rendimiento para la rasterización de líneas 2D , incluidas líneas suavizadas , así como elipses y triángulos rellenos. Un caso especial importante de rasterización 2D es la representación de texto , que requiere un suavizado y redondeo cuidadosos de las coordenadas para evitar la distorsión de las formas de las letras y preservar el espaciado, la densidad y la nitidez. [ 41 ] : 9.1.1 [ 52 ]

Una vez proyectadas las coordenadas 3D sobre el plano de la imagen , la rasterización es principalmente un problema 2D, pero la tercera dimensión requiere la eliminación de superficies ocultas . Los primeros gráficos por computadora utilizaban algoritmos geométricos o trazado de rayos para eliminar las partes ocultas de las formas, o bien el algoritmo del pintor , que ordena las formas por profundidad (distancia a la cámara) y las renderiza de atrás hacia adelante. Posteriormente, se evitó la ordenación por profundidad incorporando la comparación de profundidad al algoritmo de renderizado de línea de exploración . El algoritmo del búfer Z realiza las comparaciones indirectamente al incluir un valor de profundidad o "z" en el búfer de fotogramas . Un píxel solo está cubierto por una forma si el valor z de esa forma es menor (lo que indica que está más cerca de la cámara) que el valor z que se encuentra actualmente en el búfer. El búfer Z requiere memoria adicional (un recurso costoso en el momento de su invención), pero simplifica el código de rasterización y permite múltiples pasadas. Actualmente, la memoria es más rápida y abundante, y el búfer Z se utiliza casi siempre para el renderizado en tiempo real. [ 53 ] [ 54 ] [ 21 ] : 553–570 [ 8 ] : 2.5.2

Una desventaja del algoritmo básico de búfer Z es que cada píxel termina completamente cubierto por un solo objeto o relleno con el color de fondo, lo que provoca bordes dentados en la imagen final. Los primeros enfoques de suavizado de bordes abordaron este problema detectando cuándo un píxel está parcialmente cubierto por una forma y calculando el área cubierta. El búfer A (y otras técnicas de supermuestreo y multimuestreo ) resuelven el problema con menor precisión, pero con mayor rendimiento. Para gráficos 3D en tiempo real, se ha vuelto común utilizar heurísticas complejas (e incluso redes neuronales ) para realizar el suavizado de bordes. [ 54 ] [ 55 ] [ 41 ] : 9.3 [ 8 ] : 5.4.2

En la rasterización 3D, el color generalmente se determina mediante un sombreador de píxeles o un sombreador de fragmentos , un pequeño programa que se ejecuta para cada píxel. El sombreador no accede (o no puede acceder) directamente a los datos 3D de toda la escena (esto sería muy lento y daría como resultado un algoritmo similar al trazado de rayos), y se han desarrollado diversas técnicas para renderizar efectos como sombras y reflejos utilizando únicamente mapeo de texturas y múltiples pasadas. [ 41 ] : 17.8

Las implementaciones de rasterización 3D más antiguas y básicas no admitían sombreadores y utilizaban técnicas de sombreado simples como el sombreado plano (la iluminación se calcula una vez para cada triángulo, que luego se renderiza completamente en un color), el sombreado Gouraud (la iluminación se calcula utilizando vectores normales definidos en los vértices y luego los colores se interpolan a través de cada triángulo) o el sombreado Phong (los vectores normales se interpolan a través de cada triángulo y la iluminación se calcula para cada píxel). [ 41 ] : 9.2

Hasta hace relativamente poco, Pixar utilizaba la rasterización para renderizar sus películas de animación . A diferencia de los renderizadores comúnmente utilizados para gráficos en tiempo real, el sistema de renderizado Reyes del software RenderMan de Pixar estaba optimizado para renderizar polígonos muy pequeños (del tamaño de un píxel) e incorporaba técnicas de muestreo estocástico más típicamente asociadas con el trazado de rayos . [ 6 ] : 2, 6.3 [ 56 ]

Ray casting

Una de las formas más sencillas de renderizar una escena 3D consiste en comprobar si un rayo que parte del punto de vista (el "ojo" o "cámara") interseca alguna de las formas geométricas de la escena, repitiendo esta prueba con una dirección de rayo diferente para cada píxel. Este método, denominado trazado de rayos , fue importante en los inicios de los gráficos por ordenador y constituye un componente fundamental para algoritmos más avanzados. El trazado de rayos se puede utilizar para renderizar formas definidas mediante operaciones de geometría sólida constructiva (CSG). [ 42 ] : 8-9 [ 57 ] : 246–249

Entre los primeros experimentos de trazado de rayos se encuentra el trabajo de Arthur Appel en la década de 1960. Appel representó sombras proyectando un rayo adicional desde cada punto visible de la superficie hacia una fuente de luz. También intentó representar la densidad de iluminación proyectando rayos aleatorios desde la fuente de luz hacia el objeto y trazando los puntos de intersección (similar a la técnica posterior denominada mapeo de fotones ). [ 58 ]

El trazado de rayos se puede utilizar para encontrar la primera intersección de un rayo con una forma compleja, como este fractal Mandelbulb .

Al renderizar escenas con muchos objetos, probar la intersección de un rayo con cada objeto resulta muy costoso. Se utilizan estructuras de datos especiales para acelerar este proceso, permitiendo excluir rápidamente un gran número de objetos (como los que se encuentran detrás de la cámara). Estas estructuras son análogas a los índices de bases de datos para encontrar los objetos relevantes. Las más comunes son la jerarquía de volumen delimitador (BVH), que almacena una caja delimitadora o esfera precalculada para cada rama de un árbol de objetos, y el árbol kd , que divide recursivamente el espacio en dos partes. Las GPU recientes incluyen aceleración por hardware para las pruebas de intersección BVH. Los árboles kd son un caso especial de partición binaria del espacio , que se utilizaba con frecuencia en los primeros gráficos por computadora (también puede generar un orden de rasterización para el algoritmo del pintor ). Los octrees , otra técnica históricamente popular, todavía se utilizan a menudo para datos volumétricos. [ 14 ] : 16–17 [ 59 ] [ 57 ] [ 7 ] : 36.2

Las fórmulas geométricas son suficientes para encontrar la intersección de un rayo con formas como esferas , polígonos y poliedros , pero para la mayoría de las superficies curvas no existe una solución analítica , o la intersección es difícil de calcular con precisión utilizando números de coma flotante de precisión limitada . En ocasiones, se pueden utilizar algoritmos de búsqueda de raíces, como el método de Newton . Para evitar estas complicaciones, las superficies curvas a menudo se aproximan como mallas de triángulos . La renderización de volumen (por ejemplo, la renderización de nubes y humo) y algunas superficies, como los fractales , pueden requerir el trazado de rayos en lugar del trazado de rayos básico. [ 60 ] [ 42 ] : 13 [ 8 ] : 14, 17.3

trazado de rayos

Spiral Sphere y Julia, Detalle , una imagen generada por computadora creada por el artista visual Robert W. McGregor utilizando únicamente POV-Ray 3.6 y su lenguaje de descripción de escenas integrado.

El trazado de rayos se puede utilizar para renderizar una imagen trazando rayos de luz hacia atrás desde una cámara simulada. Después de encontrar un punto en una superficie donde se originó un rayo, se traza otro rayo hacia la fuente de luz para determinar si algo proyecta una sombra en ese punto. Si no es así, se utiliza un modelo de reflectancia (como la reflectancia lambertiana para superficies mates o el modelo de reflexión de Phong para superficies brillantes) para calcular la probabilidad de que un fotón proveniente de la luz se refleje hacia la cámara, y esto se multiplica por el brillo de la luz para determinar el brillo del píxel. Si hay varias fuentes de luz, se suman las contribuciones de brillo de las luces. Para imágenes en color, los cálculos se repiten para múltiples longitudes de onda de luz (por ejemplo, rojo, verde y azul). [ 8 ] : 11.2.2 [ 42 ] : 8

El trazado de rayos clásico (también llamado trazado de rayos estilo Whitted o recursivo ) extiende este método para poder renderizar espejos y objetos transparentes. Si un rayo trazado hacia atrás desde la cámara se origina en un punto de un espejo, se utiliza la fórmula de reflexión de la óptica geométrica para calcular la dirección de donde provino el rayo reflejado, y se proyecta otro rayo hacia atrás en esa dirección. Si un rayo se origina en una superficie transparente, se proyectan rayos hacia atrás tanto para los rayos reflejados como para los refractados (utilizando la ley de Snell para calcular la dirección de la refracción), por lo que el trazado de rayos necesita admitir un "árbol" ramificado de rayos. En implementaciones simples, se llama a una función recursiva para trazar cada rayo. [ 8 ] : 11.2.2 [ 42 ] : 9

El trazado de rayos generalmente realiza el suavizado de bordes tomando el promedio de múltiples muestras para cada píxel. También puede usar múltiples muestras para efectos como profundidad de campo y desenfoque de movimiento . Si se usan direcciones o tiempos de rayos uniformemente espaciados para cada una de estas características, se requieren muchos rayos y persistirá cierto aliasing. El trazado de rayos de estilo Cook , estocástico o Monte Carlo evita este problema al usar muestreo aleatorio en lugar de muestras uniformemente espaciadas. Este tipo de trazado de rayos se conoce comúnmente como trazado de rayos distribuido , o trazado de rayos de distribución, porque muestrea rayos a partir de distribuciones de probabilidad . El trazado de rayos de distribución también puede renderizar sombras "suaves" realistas de luces grandes usando una muestra aleatoria de puntos en la luz al probar el sombreado, y puede simular la aberración cromática muestreando múltiples longitudes de onda del espectro de luz . [ 42 ] : 10 [ 45 ] : 25

Los materiales de superficie reales reflejan pequeñas cantidades de luz en casi todas las direcciones debido a que tienen pequeñas protuberancias y surcos (o microscópicos). Un trazador de rayos de distribución puede simular esto muestreando las posibles direcciones de los rayos, lo que permite renderizar reflejos borrosos de superficies brillantes y metálicas. Sin embargo, si este procedimiento se repite recursivamente para simular una iluminación indirecta realista, y si se toma más de una muestra en cada punto de la superficie, el árbol de rayos se vuelve rápidamente enorme. Otro tipo de trazado de rayos, llamado trazado de trayectorias , maneja la luz indirecta de manera más eficiente, evitando ramificaciones, y asegura que la distribución de todas las trayectorias posibles desde una fuente de luz hasta la cámara se muestrea de manera imparcial . [ 45 ] : 25–27 [ 44 ]

El trazado de rayos se utilizaba con frecuencia para renderizar reflejos en películas de animación, hasta que el trazado de rutas se convirtió en el estándar para la renderización cinematográfica. Películas como Shrek 2 y Monsters University también utilizaron trazado de rayos distribuido o trazado de rutas para precalcular la iluminación indirecta de una escena o fotograma antes de renderizarlo mediante rasterización. [ 17 ] : 118–121

Los avances en la tecnología de GPU han hecho posible el trazado de rayos en tiempo real en los juegos, aunque actualmente casi siempre se usa en combinación con la rasterización. [ 14 ] : 2 Esto permite efectos visuales que son difíciles con solo rasterización, incluyendo la reflexión de superficies curvas y objetos interreflectantes, [ 61 ] : 305 y sombras que son precisas en un amplio rango de distancias y orientaciones de superficie. [ 62 ] : 159-160 La compatibilidad con el trazado de rayos está incluida en versiones recientes de las API gráficas utilizadas por los juegos, como DirectX , Metal y Vulkan . [ 63 ]

El trazado de rayos se ha utilizado para renderizar agujeros negros simulados y la apariencia de objetos que se mueven a velocidades cercanas a la de la luz, teniendo en cuenta la curvatura del espacio-tiempo y los efectos relativistas durante la simulación de rayos de luz. [ 64 ] [ 65 ]

Radiosidad

Demostración de radiosidad clásica. Las superficies se dividen en mallas de 16x16 o 16x32. Arriba: solo luz directa. Abajo: solución de radiosidad (para un albedo de 0,85).
Arriba: la misma escena con una malla de radiosidad más fina, suavizando los parches durante el renderizado final mediante interpolación bilineal . Abajo: la escena renderizada con trazado de rayos (usando el renderizador PBRT).

Radiosidad (llamada así por la magnitud radiométrica del mismo nombre ) es un método para renderizar objetos iluminados por la luz que rebota en superficies rugosas o mates . Este tipo de iluminación se denomina luz indirecta , iluminación ambiental , iluminación difusa o interreflexión difusa , y el problema de renderizarla de forma realista se denomina iluminación global . La rasterización y las formas básicas de trazado de rayos (excepto el trazado de rayos de distribución y el trazado de trayectorias) solo pueden aproximar la luz indirecta de forma aproximada, por ejemplo, añadiendo una cantidad uniforme de iluminación ambiental elegida por el artista. Las técnicas de radiosidad también son adecuadas para renderizar escenas con luces de área, como paneles de iluminación fluorescente rectangulares, que son difíciles de rasterizar y del trazado de rayos tradicional. La radiosidad se considera un método basado en la física , lo que significa que busca simular el flujo de luz en un entorno utilizando ecuaciones y datos experimentales de la física; sin embargo, a menudo asume que todas las superficies son opacas y perfectamente lambertianas , lo que reduce el realismo y limita su aplicabilidad. [ 8 ] : 10, 11.2.1 [ 10 ] : 888, 893 [ 66 ] [ 67 ] : 6

En el método de radiosidad original (propuesto por primera vez en 1984), ahora llamado radiosidad clásica , las superficies y las luces de la escena se dividen en piezas llamadas parches , un proceso denominado mallado (este paso lo convierte en un método de elementos finitos ). El código de renderizado debe determinar qué fracción de la luz emitida o reflejada difusamente (dispersada) por cada parche es recibida por cada parche restante. Estas fracciones se denominan factores de forma o factores de visión (utilizados inicialmente en ingeniería para modelar la transferencia de calor radiativa ). Los factores de forma se multiplican por el albedo de la superficie receptora y se almacenan en una matriz . La iluminación de la escena se puede expresar entonces como una ecuación matricial (o, equivalentemente, un sistema de ecuaciones lineales ) que se puede resolver mediante métodos de álgebra lineal . [ 66 ] [ 68 ] : 46 [ 10 ] : 888, 896

La resolución de la ecuación de radiosidad proporciona la cantidad total de luz emitida y reflejada por cada parche, que se divide por el área para obtener un valor llamado radiosidad , el cual se puede utilizar al rasterizar o trazar rayos para determinar el color de los píxeles correspondientes a las partes visibles del parche. Para la renderización en tiempo real, este valor (o, más comúnmente, la irradiancia , que no depende del albedo superficial local) se puede precalcular y almacenar en una textura (denominada mapa de irradiancia ) o como datos de vértice para modelos 3D. Esta función se utilizó en software de visualización arquitectónica para permitir recorridos virtuales en tiempo real del interior de un edificio después de calcular la iluminación. [ 10 ] : 890 [ 8 ] : 11.5.1 [ 67 ] : 332

El gran tamaño de las matrices utilizadas en la radiosidad clásica (el cuadrado del número de parches) causa problemas en escenas realistas. Las implementaciones prácticas pueden usar iteraciones de Jacobi o Gauss-Seidel , lo que equivale (al menos en el caso de Jacobi) a simular la propagación de la luz rebote a rebote hasta que la cantidad de luz restante (aún no absorbida por las superficies) sea insignificante. El número de iteraciones (rebotes) requerido depende de la escena, no del número de parches, por lo que el trabajo total es proporcional al cuadrado del número de parches (en contraste, resolver la ecuación matricial usando la eliminación gaussiana requiere un trabajo proporcional al cubo del número de parches). Los factores de forma pueden recalcularse cuando sean necesarios para evitar almacenar una matriz completa en la memoria. [ 10 ] : 901, 907

La calidad de la representación suele estar determinada por el tamaño de los parches; por ejemplo, se necesitan mallas muy finas para representar con precisión los bordes de las sombras. Una mejora importante es la radiosidad jerárquica , que utiliza una malla más gruesa (parches más grandes) para simular la transferencia de luz entre superficies distantes entre sí y subdivide los parches de forma adaptativa según sea necesario. Esto permite utilizar la radiosidad en escenas mucho más grandes y complejas. [ 10 ] : 975, 939

Las versiones alternativas y extendidas del método de radiosidad admiten superficies no lambertianas, como superficies brillantes y espejos, y a veces utilizan volúmenes o "grupos" de objetos, además de parches de superficie. La radiosidad estocástica o de Monte Carlo utiliza muestreo aleatorio de diversas maneras, por ejemplo, tomando muestras de luz incidente en lugar de integrar sobre todos los parches, lo que puede mejorar el rendimiento pero añade ruido (este ruido se puede reducir utilizando iteraciones deterministas como paso final, a diferencia del ruido del trazado de rayos). Las versiones simplificadas y parcialmente precalculadas de la radiosidad se utilizan ampliamente para la renderización en tiempo real, combinadas con técnicas como la radiosidad de octree que almacenan aproximaciones del campo de luz . [ 10 ] : 979, 982 [ 68 ] : 49 [ 69 ] [ 8 ] : 11.5

trazado de rutas

Como parte del enfoque conocido como renderizado basado en la física , el trazado de rayos se ha convertido en la técnica dominante para renderizar escenas realistas, incluidos los efectos para películas. [ 70 ] Por ejemplo, el popular software 3D de código abierto Blender utiliza el trazado de rayos en su motor de renderizado Cycles. [ 71 ] Las imágenes producidas mediante el trazado de rayos para la iluminación global suelen ser más ruidosas que cuando se utiliza la radiosidad (el principal algoritmo competidor para la iluminación realista), pero la radiosidad puede ser difícil de aplicar a escenas complejas y es propensa a artefactos que surgen del uso de una representación teselada de la irradiancia . [ 70 ] [ 10 ] : 975-976, 1045

Al igual que el trazado de rayos distribuido , el trazado de trayectorias es un tipo de trazado de rayos estocástico o aleatorio que utiliza la integración de Monte Carlo o cuasi-Monte Carlo . Fue propuesto y nombrado en 1986 por Jim Kajiya en el mismo artículo que la ecuación de renderizado . Kajiya observó que gran parte de la complejidad del trazado de rayos distribuido podía evitarse trazando solo una trayectoria desde la cámara a la vez (en la implementación de Kajiya, esta regla de "no ramificación" se rompía trazando rayos adicionales desde cada punto de intersección de la superficie a puntos elegidos aleatoriamente en cada fuente de luz). Kajiya sugirió reducir el ruido presente en las imágenes de salida utilizando muestreo estratificado y muestreo de importancia para tomar decisiones aleatorias, como elegir qué rayo seguir en cada paso de una trayectoria. Incluso con estas técnicas, el trazado de trayectorias no habría sido práctico para el renderizado de películas, utilizando las computadoras disponibles en ese momento, porque el costo computacional de generar suficientes muestras para reducir la varianza a un nivel aceptable era demasiado alto. Monster House , el primer largometraje renderizado completamente utilizando trazado de trayectorias, no se estrenó hasta 20 años después. [ 44 ] [ 70 ] [ 72 ]

En su forma básica, el trazado de rutas es ineficiente (requiere demasiadas muestras) para renderizar cáusticas y escenas donde la luz entra indirectamente a través de espacios estrechos. En la década de 1990 se intentó abordar estas debilidades. El trazado de rutas bidireccional tiene similitudes con el mapeo de fotones , trazando rayos desde la fuente de luz y la cámara por separado, y luego encontrando formas de conectar estas rutas (pero a diferencia del mapeo de fotones, generalmente muestrea nuevas rutas de luz para cada píxel en lugar de usar los mismos datos almacenados en caché para todos los píxeles). El transporte de luz de Metropolis muestrea rutas modificando las rutas que se trazaron previamente, dedicando más tiempo a explorar rutas que son similares a otras rutas "brillantes", lo que aumenta la probabilidad de descubrir rutas aún más brillantes. El muestreo de importancia múltiple proporciona una forma de reducir la varianza al combinar muestras de más de un método de muestreo, particularmente cuando algunas muestras son mucho más ruidosas que las otras. [ 70 ] [ 18 ]

Este trabajo posterior fue resumido y ampliado en la tesis doctoral de Eric Veach de 1997, lo que contribuyó a despertar el interés por el trazado de rayos en la comunidad de gráficos por computadora. El renderizador Arnold , lanzado por primera vez en 1998, demostró que el trazado de rayos era práctico para renderizar fotogramas de películas y que existía una demanda de renderizado imparcial y basado en la física en la industria cinematográfica; comenzaron a aparecer otros renderizadores de trazado de rayos comerciales y de código abierto. El costo computacional se abordó mediante rápidos avances en el rendimiento de las CPU y los clústeres . [ 70 ]

La relativa simplicidad del trazado de rayos y su naturaleza como método de Monte Carlo (muestreo de cientos o miles de trayectorias por píxel) lo han hecho atractivo para su implementación en una GPU , especialmente en GPU recientes que admiten tecnología de aceleración de trazado de rayos como RTX y OptiX de Nvidia . [ 73 ] Sin embargo, el trazado de rayos bidireccional y el transporte de luz de Metropolis son más difíciles de implementar de manera eficiente en una GPU. [ 74 ] [ 75 ]

Se han desarrollado técnicas para eliminar el ruido de la salida del trazado de rayos, reduciendo el número de trayectorias necesarias para lograr una calidad aceptable, a riesgo de perder algunos detalles o introducir artefactos a pequeña escala que son más objetables que el ruido. [ 76 ] [ 77 ] Actualmente, las redes neuronales se utilizan ampliamente para este propósito. [ 78 ] [ 79 ] [ 80 ]

La investigación para mejorar el trazado de trayectorias continúa. Se han explorado muchas variaciones del trazado de trayectorias bidireccional y del transporte de luz de Metropolis, así como formas de combinar el trazado de trayectorias con el mapeo de fotones. [ 81 ] [ 82 ] Los enfoques recientes de guiado de trayectorias construyen aproximaciones de la distribución de probabilidad del campo de luz en cada volumen del espacio, de modo que las trayectorias se pueden muestrear de forma más eficaz. [ 82 ]

Al combinar la reducción de ruido y la aceleración del trazado de rayos por hardware, ahora es práctico utilizar el trazado de rutas para la renderización en tiempo real . Debido a las limitaciones de rendimiento, se pueden incorporar técnicas sesgadas como una caché de radiancia. El remuestreo de reservorio espaciotemporal (ReSTIR) tiene como objetivo mejorar la calidad del trazado de rutas en tiempo real y permitir una iluminación más compleja mediante la reutilización de muestras (rutas) de fotogramas anteriores y píxeles adyacentes. [ 83 ] : 16.2.4 [ 84 ]

Aprendizaje automático

A partir de 2003, las técnicas de aprendizaje automático (ML) se estaban utilizando en otras áreas de los gráficos por computadora , como la síntesis de texturas , el ajuste de superficies a nubes de puntos y el ajuste de curvas a datos de captura de movimiento . [ 85 ] El uso de ML para renderizado se expandió con la disponibilidad de GPU que pueden evaluar redes neuronales (especialmente redes neuronales convolucionales ) rápidamente.

Las redes neuronales y los modelos de mezcla gaussiana se han utilizado junto con técnicas de renderizado como el trazado de rayos para codificar funciones de distribución de reflectancia bidireccional (BRDF), o para codificar la radiancia almacenada en caché en puntos del espacio (para la aceleración sesgada del renderizado o para la guía de trayectorias). Los campos de radiancia neuronal (NeRF) llevan este último enfoque al extremo, codificando la radiancia en todos los puntos de un volumen y utilizando la evaluación de esta aproximación como método de renderizado principal. [ 86 ] : 16.3.2

Una de las aplicaciones más utilizadas del aprendizaje automático en la renderización es la reducción de ruido en imágenes generadas mediante trazado de rayos (en la práctica, la mayoría de los procesos de trazado de rayos actuales probablemente utilizan un reductor de ruido). Las redes neuronales entrenadas con pares de imágenes con ruido y con poco ruido (o a veces pares de imágenes con ruido no correlacionado) pueden utilizar datos como la normal de la superficie y el albedo , además de la imagen renderizada, para reducir el desenfoque o los artefactos y preservar las texturas. Son eficaces para eliminar los píxeles brillantes dispersos, denominados "luciérnagas", que aparecen con frecuencia en el trazado de rayos. Los reductores de ruido especializados en la renderización en tiempo real pueden trabajar con un número muy bajo de muestras y mejorar la coherencia temporal para reducir el parpadeo. [ 86 ] : 16.3.2 [ 14 ] : 26.5

aceleración de hardware

La renderización suele estar limitada por la potencia de cálculo y el ancho de banda de la memoria disponibles , por lo que se ha desarrollado hardware especializado para acelerarla, especialmente para la renderización en tiempo real . Se requieren características de hardware como un búfer de fotogramas para gráficos rasterizados para mostrar el resultado de la renderización de forma fluida y en tiempo real.

La aceleración por hardware no sustituye el uso de software para la renderización, sino que acelera determinadas operaciones o cálculos mediante circuitos dedicados, o ejecuta partes del código del software en un tipo diferente de procesador.

Historia

En la era de los monitores vectoriales (también llamados pantallas caligráficas ), una unidad de procesamiento de pantalla (DPU) era una CPU o coprocesador dedicado que mantenía una lista de elementos visuales y los redibujaba continuamente en la pantalla controlando un haz de electrones . Las DPU avanzadas como el Line Drawing System-1 de Evans & Sutherland (y modelos posteriores producidos hasta la década de 1980) incorporaban características de transformación de coordenadas 3D para acelerar la representación de imágenes de estructura alámbrica . [ 21 ] : 93–94, 404–421 [ 87 ] Evans & Sutherland también fabricó el sistema de proyección de planetario Digistar , que era una pantalla vectorial que podía representar tanto estrellas como gráficos de estructura alámbrica (el Digistar y el Digistar II basados ​​en vectores se utilizaron en muchos planetarios, y algunos pueden seguir en funcionamiento). [ 88 ] [ 89 ] [ 90 ] Se utilizó un prototipo de Digistar para renderizar campos estelares en 3D para la película Star Trek II: La ira de Khan , algunas de las primeras secuencias de gráficos por computadora en 3D jamás vistas en un largometraje. [ 91 ]

La renderización de gráficos 3D sombreados en las décadas de 1970 y principios de 1980 se implementaba generalmente en computadoras de propósito general, como la PDP-10 utilizada por investigadores de la Universidad de Utah [ 92 ] [ 54 ] . Era difícil acelerarla utilizando hardware especializado porque implica una secuencia de pasos complejos, que requiere capacidades de direccionamiento de datos, toma de decisiones y computación que normalmente solo proporcionan las CPU (aunque se propusieron circuitos dedicados para acelerar operaciones particulares [ 92 ] ). A veces se utilizaban supercomputadoras o computadoras o clústeres multi-CPU especialmente diseñados para el trazado de rayos. [ 57 ] En 1981, James H. Clark y Marc Hannah diseñaron el Geometry Engine, un chip VLSI para realizar algunos de los pasos de la secuencia de rasterización 3D, y fundaron la empresa Silicon Graphics (SGI) para comercializar esta tecnología. [ 93 ] [ 94 ]

En la década de 1980, las computadoras domésticas y las consolas de videojuegos incluían coprocesadores gráficos capaces de desplazar y rellenar áreas de la pantalla, así como de dibujar sprites y líneas, aunque no eran útiles para renderizar imágenes realistas. [ 95 ] [ 96 ] Hacia finales de la década de 1980, comenzaron a aparecer tarjetas gráficas para PC y juegos arcade con aceleración de renderizado 3D, y en la década de 1990 esta tecnología se generalizó. Hoy en día, incluso los procesadores móviles de bajo consumo suelen incorporar funciones de aceleración de gráficos 3D. [ 93 ] [ 97 ]

GPU

Los aceleradores de gráficos 3D de la década de 1990 evolucionaron hasta convertirse en las GPU modernas. Las GPU son procesadores de propósito general, como las CPU , pero están diseñadas para tareas que pueden dividirse en muchas subtareas pequeñas, similares y en su mayoría independientes (como la renderización de píxeles individuales) y ejecutarse en paralelo . Esto significa que una GPU puede acelerar cualquier algoritmo de renderización que pueda dividirse en subtareas de esta manera, a diferencia de los aceleradores 3D de la década de 1990, que solo estaban diseñados para acelerar algoritmos de rasterización específicos y efectos simples de sombreado e iluminación (aunque se podían usar trucos para realizar cálculos más generales). [ 8 ] : cap. 3 [ 98 ]

Debido a sus orígenes, las GPU suelen proporcionar aceleración de hardware especializada para algunos pasos de una canalización de rasterización 3D tradicional , incluyendo la eliminación de superficies ocultas mediante un búfer Z y el mapeo de texturas con mipmaps , pero estas características ya no se utilizan siempre. [ 8 ] : cap. 3 Las GPU recientes tienen características para acelerar la búsqueda de intersecciones de rayos con una jerarquía de volumen delimitador , para ayudar a acelerar todas las variantes de trazado de rayos y trazado de rutas , [ 59 ] así como características de aceleración de redes neuronales que a veces son útiles para la renderización. [ 99 ]

Las GPU suelen estar integradas con sistemas de memoria de alto ancho de banda para soportar los requisitos de ancho de banda de lectura y escritura de la renderización en tiempo real de alta resolución, especialmente cuando se requieren múltiples pasadas para renderizar un fotograma. Sin embargo, la latencia de la memoria puede ser mayor que en una CPU, lo que puede ser un problema si la ruta crítica de un algoritmo implica muchos accesos a la memoria. El diseño de la GPU acepta la alta latencia como inevitable (en parte porque un gran número de hilos comparten el bus de memoria ) e intenta "ocultarla" cambiando eficientemente entre hilos, de modo que un hilo diferente pueda estar realizando cálculos mientras el primer hilo espera a que se complete una lectura o escritura. [ 8 ] : ch3 [ 100 ] [ 101 ]

Los algoritmos de renderizado se ejecutarán de manera eficiente en una GPU solo si se pueden implementar utilizando pequeños grupos de hilos que realicen principalmente las mismas operaciones. Como ejemplo de código que cumple este requisito: al renderizar un pequeño cuadrado de píxeles en una imagen simple de trazado de rayos , es probable que todos los hilos intersecten rayos con el mismo objeto y realicen los mismos cálculos de iluminación. Por razones de rendimiento y arquitectura, las GPU ejecutan grupos de entre 16 y 64 hilos llamados warps u wavefronts de forma sincronizada (todos los hilos del grupo ejecutan las mismas instrucciones al mismo tiempo). Si no todos los hilos del grupo necesitan ejecutar bloques de código específicos (debido a ciertas condiciones), algunos hilos estarán inactivos o los resultados de sus cálculos se descartarán, lo que provocará una degradación del rendimiento. [ 8 ] : ch3 [ 101 ]

Renderizado por hardware y software

Históricamente, el término renderizado por hardware (posiblemente una abreviatura de "renderizado acelerado por hardware" o "renderizado asistido por hardware") se usaba a veces para referirse al renderizado mediante una canalización de rasterización acelerada por hardware (típicamente para renderizado en tiempo real ). [ 67 ] : 243, 249, 284, 324 En cambio, el renderizado por software se refería al renderizado fuera de línea mediante software que no estaba limitado por las capacidades del hardware gráfico y podía usar técnicas más realistas y de mayor calidad. [ 6 ] : 1.5 Tanto el hardware como el software han evolucionado, y aunque estos términos todavía se usan, su significado ahora puede depender del contexto.

Cuando se introdujeron OpenGL y Direct3D en la década de 1990, surgió la necesidad de utilizar estas API en computadoras que no contaban con aceleración de hardware para gráficos 3D. Se proporcionaron implementaciones de renderizado de "alternativa" que no requerían hardware especial, y a veces se las denomina "renderizadores de software" (hoy en día la aceleración de hardware está casi siempre disponible, y estas implementaciones solo de CPU se utilizan principalmente para pruebas). [ 102 ] : Ch2,13 Más recientemente, "renderizado de software" también puede referirse al renderizado que no utiliza API gráficas como OpenGL, Metal , Direct3D o Vulkan . [ 103 ] : Intr.

Los tipos de renderizadores que antes se denominaban "renderizadores de software" (por ejemplo, los renderizadores de trazado de rayos utilizados para la renderización offline de películas) ahora suelen utilizar la aceleración por GPU , a menudo mediante API como CUDA u OpenCL , que no son específicas de gráficos. Dado que estas últimas API permiten ejecutar código C++ en una GPU, ahora es posible ejecutar el mismo código de renderizado tanto en una CPU como en una GPU. [ 73 ]

Cronología de algoritmos y técnicas

A continuación se presenta una cronología aproximada de las técnicas de renderizado más mencionadas, incluyendo áreas de investigación actual. Cabe destacar que, incluso en los casos en que una idea se mencionaba en un artículo específico, casi siempre había varios investigadores o equipos trabajando en la misma área (incluyendo trabajos relacionados anteriores). Cuando se propone un método por primera vez, suele ser muy ineficiente y requiere investigación adicional y esfuerzos prácticos para convertirlo en una técnica útil. [ 10 ] : 887

La lista se centra en la investigación académica y no incluye hardware. (Para más información histórica, consulte #Enlaces externos , así como Gráficos por computadora#Historia y La época dorada de los videojuegos arcade#Tecnología ).

Véase también

Referencias

  1. "Rendering, N., Sense IV.9.a". Oxford English Dictionary . Marzo de 2024. doi : 10.1093/OED/1142023199 .
  2. "Render, V., Sentido I.3.b". Oxford English Dictionary . Junio ​​de 2024. doi : 10.1093/OED/1095944705 .
  3. "Rendering, N., Sense III.5.a". Oxford English Dictionary . Marzo de 2024. doi : 10.1093/OED/1143106586 .
  4. "Render, V., Sentido IV.22.a". Oxford English Dictionary . Junio ​​de 2024. doi : 10.1093/OED/1039673413 .
  5. Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "1 Introducción" . Renderizado basado en la física: de la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN  978-0262048026. Consultado el 29 de marzo de 2026 .
  6. 1 2 3 4 5 6 7 8 Raghavachary, Saty (2005). Rendering for Beginners . Focal Press. ISBN 0-240-51935-3.
  7. 1 2 3 4 Hughes, John F.; Van Dam, Andries ; McGuire, Morgan; Sklar, David F.; Foley, James D .; Feiner, Steven K.; Akeley, Kurt (2014). Gráficos por computadora: principios y práctica (3.ª ed.). Addison-Wesley. ISBN  978-0-321-39952-6.
  8. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Akenine-Möller, Tomas; Haines, Eric; Hoffman, Naty; Pesce, Ángel; Iwanicki, Michał; Hillaire, Sébastien (2018). Representación en tiempo real (4ª ed.). Boca Ratón, FL: AK Peters/CRC Press. ISBN  978-1138627000.
  9. "¿Qué es un motor de renderizado? | Diccionario" . Archivado del original el 21/02/2024 . Consultado el 21/02/2024 .
  10. 1 2 3 4 5 6 7 8 9 10 11 12 Glassner, Andrew S. (2011) [1995]. Principios de síntesis de imágenes digitales (PDF) . 1.0.1. Morgan Kaufmann Publishers, Inc. ISBN 978-1-55860-276-2. Archivado (PDF) del original el 27-01-2024 . Recuperado el 27-01-2024 .
  11. Rombach, Robin; Blattmann, Andreas; Lorenz, Dominik; Esser; Ommer, Björn (junio de 2022). Síntesis de imágenes de alta resolución con modelos de difusión latente . Conferencia IEEE/CVF de 2022 sobre visión por computadora y reconocimiento de patrones (CVPR). págs. 10674–10685 . arXiv : 2112.10752 . doi : 10.1109 /CVPR52688.2022.01042 . 
  12. Tewari, A.; Fried, O.; Thies, J.; Sitzmann, V.; Lombardi, S.; Sunkavalli, K.; Martin-Brualla, R.; Simon, T.; Saragih, J.; Nießner, M.; Pandey, R.; Fanello, S.; Wetzstein, G.; Zhu, J.-Y.; Theobalt, C.; Agrawala, M.; Shechtman, E.; Goldman, DB; Zollhöfer, M. (mayo de 2020). "Estado del arte en renderizado neuronal". Computer Graphics Forum . 39 (2): 701– 727. arXiv : 2004.03805 . doi : 10.1111/cgf.14022 .
  13. Glassner, Andrew S. (11 de abril de 2019) [1989]. «Prefacio». Introducción al trazado de rayos (PDF) . 1.3. ACADEMIC PRESS. ISBN 978-0-12-286160-4. Archivado (PDF) del original el 27 de enero de 2024. Recuperado el 27 de enero de 2024 .
  14. 1 2 3 4 5 6 7 Akenine-Möller, Tomas; Haines, Eric; Hoffman, Naty; Pesce, Angelo; Iwanicki, Michał; Hillaire, Sébastien (6 de agosto de 2018). «Capítulo 26 en línea. Trazado de rayos en tiempo real» (PDF) . Renderizado en tiempo real (4.ª ed.). Boca Raton, FL: AK Peters/CRC Press. ISBN  978-1138627000. Archivado (PDF) del original el 27 de enero de 2024. Recuperado el 27 de enero de 2024 .
  15. 1 2 3 4 Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "1.2 Renderizado fotorrealista y el algoritmo de trazado de rayos" . Renderizado basado en la física: de la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN  978-0262048026. Consultado el 16 de enero de 2025 .
  16. Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). «9. Lecturas adicionales: Óptica ondulatoria» . Representación basada en la física: De la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN  978-0262048026Consultado el 16 de enero de 2024 .
  17. 1 2 3 4 5 Jarosz, Wojciech; Christensen, Per H. (2016). "El camino hacia las películas con trazado de rayos". Fundamentos y tendencias en gráficos y visión por computadora . 10 (2): 103– 175. arXiv : 1611.02145 . doi : 10.1561/0600000073 .
  18. 1 2 3 Veach, Eric (1997). Métodos robustos de Monte Carlo para la simulación del transporte de luz (PDF) (tesis doctoral). Universidad de Stanford.
  19. Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). «5.2. Modelos de cámara proyectiva» . Renderizado basado en la física: de la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN  978-0262048026Consultado el 16 de enero de 2024 .
  20. 1 2 Giesecke, Frederick E.; Lockhart, Shawna; Goodman, Marla; Johnson, Cindy (2023). Dibujo técnico con gráficos de ingeniería, 16.ª edición . Pearson Education, Inc. ISBN 978-0-13-806572-0.
  21. 1 2 3 4 5 6 7 8 Foley, James D .; Van Dam, Andries (1982). Fundamentos de gráficos interactivos por computadora . Addison-Wesley Publishing Company, Inc. ISBN 0-201-14468-9.
  22. 1 2 3 "Gráficos vectoriales escalables (SVG) 2" . W3C. 4 de octubre de 2018. Recuperado el 20 de agosto de 2025 .
  23. "Módulo de efectos de filtro Nivel 1" . W3C. 18 de diciembre de 2018. Consultado el 20 de agosto de 2025 .
  24. "Composición y mezcla de nivel 1" . W3C. 21 de marzo de 2024. Consultado el 20 de agosto de 2025 .
  25. McCue, Claudia (2006). Real World Print Production . Peachpit Press. ISBN 978-0321410184.
  26. 1 2 Adobe Systems Incorporated (1990). Manual de referencia del lenguaje PostScript (2.ª ed.). Addison-Wesley Publishing Company. ISBN  0-201-18127-4.
  27. 1 2 "SVG: Gráficos vectoriales escalables" . Mozilla Corporation. 7 de agosto de 2024. Archivado del original el 24 de agosto de 2024. Recuperado el 31 de agosto de 2024 .
  28. 1 2 "Manual de Blender 4.2: Importación y exportación de archivos" . docs.blender.org . The Blender Foundation. Archivado del original el 31 de agosto de 2024. Recuperado el 31 de agosto de 2024 .
  29. Pharr, Matt; Jakob, Wenzel; Humphreys, Greg (2023). "Formato de archivo de entrada pbrt-v4" . Recuperado el 31 de agosto de 2024 .
  30. 1 2 Dunlop, Renee (2014). Fundamentos del proceso de producción para cine y videojuegos . Focal Press. ISBN 978-1-315-85827-2.
  31. "Acerca de OpenVDB" . www.openvdb.org . Academy Software Foundation. Archivado del original el 3 de septiembre de 2024. Consultado el 31 de agosto de 2024 .
  32. Museth, Ken (junio de 2013). "VDB: volúmenes dispersos de alta resolución con topología dinámica". ACM Transactions on Graphics . 32 (3): 1– 22. doi : 10.1145/2487228.2487235 .
  33. Bridson, Robert (2015). Simulación de fluidos para gráficos por computadora (2.ª ed.). AK Peters/CRC Press. ISBN  978-1-482-23283-7.
  34. Schmid, Katrin (2 de marzo de 2023). "Una breve historia de 170 años de campos de radiación neuronal (NeRF), hologramas y campos de luz" . radiancefields.com . Archivado del original el 31 de agosto de 2024. Recuperado el 31 de agosto de 2024 .
  35. 1 2 Mildenhall, Ben; Srinivasan, Pratul P.; Tancik, Matthew; Barron, Jonathan T.; Ramamoorthi, Ravi; Ng, Ren (2020). "NeRF: Representación de escenas como campos de radiación neuronal para síntesis de vistas" . Recuperado el 31 de agosto de 2024 .
  36. 1 2 Kerbl, Bernhard; Kopanas, Georgios; Leimkuehler, Thomas; Drettakis, George (2023). "3D Gaussian Splatting for Real-Time Radiance Field Rendering" . ACM Transactions on Graphics . 42 (4): 1– 14. doi : 10.1145/3592433 .
  37. 1 2 Pharr, Matt; Jakob, Wenzel; Humphreys, Greg (2023). "Guía del usuario de pbrt-v4" . Archivado del original el 3 de septiembre de 2024. Recuperado el 31 de agosto de 2024 .
  38. 1 2 Brinkmann, Ron (2008). El arte y la ciencia de la composición digital (2.ª ed.). Morgan Kaufmann. ISBN  978-0-12-370638-6.
  39. "Manual de Blender 4.2: Renderizado: Salida de renderizado: Renderizado de animaciones" . docs.blender.org . The Blender Foundation. Archivado del original el 31 de agosto de 2024. Consultado el 31 de agosto de 2024 .
  40. "Documentación de RenderMan 26: Variables de salida arbitrarias" . pixar.com . Pixar. 5 de septiembre de 2023. Consultado el 15 de febrero de 2025 .
  41. 1 2 3 4 5 6 7 8 Marschner, Steve; Shirley, Peter (2022). Fundamentos de gráficos por computadora (5ª ed.). Prensa CRC. ISBN  978-1-003-05033-9.
  42. 1 2 3 4 5 6 7 8 9 10 Haines, Eric; Shirley, Peter (25 de febrero de 2019). «Terminología del trazado de rayos». Ray Tracing Gems: renderizado de alta calidad y en tiempo real con DXR y otras API . Berkeley, CA: Apress. doi : 10.1007/978-1-4842-4427-2 . ISBN 978-1-4842-4427-2.
  43. Cook, Robert L. (11 de abril de 2019) [1989]. "5. Muestreo estocástico y trazado de rayos distribuido". En Glassner, Andrew S. (ed.). Introducción al trazado de rayos (PDF) . 1.3. ACADEMIC PRESS. ISBN 978-0-12-286160-4. Archivado (PDF) del original el 27 de enero de 2024. Recuperado el 27 de enero de 2024 .
  44. 1 2 3 4 5 Kajiya, James T. (1986). "La ecuación de renderizado". ACM SIGGRAPH Computer Graphics . 20 (4): 143– 150. doi : 10.1145/15886.15902 .
  45. 1 2 3 4 Glassner, Andrew S. (11 de abril de 2019) [1989]. "1. Una visión general del trazado de rayos". Introducción al trazado de rayos (PDF) . 1.3. ACADEMIC PRESS. ISBN 978-0-12-286160-4. Archivado (PDF) del original el 27 de enero de 2024. Recuperado el 27 de enero de 2024 .
  46. 1 2 Arvo, James (agosto de 1986). Trazado de rayos inverso (notas del curso) (PDF) . SIGGRAPH 1986 Desarrollos en trazado de rayos. Vol. 12. Recuperado el 5 de octubre de 2024 . 
  47. ^ Dutré, Felipe; Bala, Kavita; Bekaert, Philippe (2015). Iluminación global avanzada (2ª ed.). AK Peters/Prensa CRC. ISBN  978-1-4987-8562-4.
  48. "Manual de Unity: Sondas de luz: Introducción" . docs.unity3d.com . Archivado del original el 3 de septiembre de 2024. Consultado el 27 de enero de 2024 .
  49. "Manual de Blender: Renderizado: EEVEE: Sondas de luz: Introducción" . docs.blender.org . The Blender Foundation. Archivado del original el 24 de marzo de 2024. Consultado el 27 de enero de 2024 .
  50. 1 2 Warnock, John (junio de 1969). Un algoritmo de superficie oculta para imágenes de semitonos generadas por computadora (Informe). Universidad de Utah. DTIC AD0753671 .
  51. 1 2 Bouknight, WJ (1970). "Un procedimiento para la generación de presentaciones gráficas por computadora tridimensionales de semitonos" . Communications of the ACM . 13 (9): 527– 536. doi : 10.1145/362736.362739 .
  52. Stamm, Beat (21 de junio de 2018). "La tragedia del raster en baja resolución revisitada: oportunidades y desafíos más allá del "Delta-Hinting"" . rastertragedy.com . Consultado el 19 de septiembre de 2024 .
  53. 1 2 Watkins, Gary Scott (junio de 1970), Un algoritmo de superficie visible en tiempo real , Universidad de Utah , consultado el 19 de septiembre de 2024
  54. 1 2 3 4 5 Catmull, Edwin (diciembre de 1974). Un algoritmo de subdivisión para la visualización por computadora de superficies curvas (PDF) (tesis doctoral). Universidad de Utah . Recuperado el 19 de septiembre de 2024 .
  55. 1 2 Carpenter, Loren (julio de 1984). "El búfer A, un método de superficie oculta con suavizado de bordes". Computer Graphics . 18 (3): 103– 108. doi : 10.1145/964965.808585 .
  56. 1 2 Cook, Robert L.; Carpenter, Loren; Catmull, Edwin (agosto de 1987). "La arquitectura de renderizado de imágenes de Reyes". ACM SIGGRAPH Computer Graphics . 21 (4): 95– 102. doi : 10.1145/37402.37414 .
  57. 1 2 3 Arvo, James; Kirk, David (11 de abril de 2019) [1989]. "6. Un estudio de las técnicas de aceleración del trazado de rayos". En Glassner, Andrew S. (ed.). Introducción al trazado de rayos (PDF) . 1.3. ACADEMIC PRESS. ISBN 978-0-12-286160-4Consultado el 13 de septiembre de 2024 .
  58. 1 2 Appel, Arthur (1968). "Algunas técnicas para sombrear representaciones de sólidos mediante máquinas". Actas de la conferencia conjunta de computación de primavera del 30 de abril al 2 de mayo de 1968 - AFIPS '68 (Primavera) . pág. 37. doi : 10.1145/1468075.1468082 . 
  59. 1 2 Stich, Martin (25 de febrero de 2019). «Prólogo». En Haines, Eric; Akenine-Möller, Tomas (eds.). Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs . Berkeley, CA: Apress. doi : 10.1007/978-1-4842-4427-2 . ISBN 978-1-4842-4427-2.
  60. Hanrahan, Pat (11 de abril de 2019) [1989]. "2. Un estudio de los algoritmos de intersección rayo-superficie". En Glassner, Andrew S. (ed.). Introducción al trazado de rayos (PDF) . 1.3. ACADEMIC PRESS. ISBN 978-0-12-286160-4. Archivado (PDF) del original el 27 de enero de 2024. Recuperado el 22 de septiembre de 2024 .
  61. Liu, Edward; Llamas, Ignacio; Cañada, Juan; Kelly, Patrick (25 de febrero de 2019). «Renderizado cinematográfico en UE4 con trazado de rayos en tiempo real y eliminación de ruido». Ray Tracing Gems: renderizado de alta calidad y en tiempo real con DXR y otras API . Berkeley, CA: Apress. doi : 10.1007/978-1-4842-4427-2 . ISBN 978-1-4842-4427-2.
  62. Boksansky, Jakub; Wimmer, Michael; Bittner, Jiri (25 de febrero de 2019). «Sombras con trazado de rayos: mantenimiento de la velocidad de fotogramas en tiempo real». Ray Tracing Gems: renderizado de alta calidad y en tiempo real con DXR y otras API . Berkeley, CA: Apress. doi : 10.1007/978-1-4842-4427-2 . ISBN 978-1-4842-4427-2.
  63. «Blog de Khronos: Trazado de rayos en Vulkan» . www.khronos.org . The Khronos Group Inc. 15 de diciembre de 2020 . Consultado el 27 de enero de 2024 .
  64. Alain, Riazuelo (marzo de 2019). "Seeing relativity-I: Ray tracing in a Schwarzschild metric to explore the maximal analytic extension of the metric and making a proper rendering of the stars". International Journal of Modern Physics D . 28 (2). arXiv : 1511.06025 . Bibcode : 2019IJMPD..2850042R . doi : 10.1142/S0218271819500421 .
  65. Howard, Andrew; Dance, Sandy; Kitchen, Les (1995). Trazado de rayos relativista: simulación de la apariencia visual de objetos en rápido movimiento . Universidad de Melbourne, Departamento de Ciencias de la Computación. OCLC 38400480 . 
  66. 1 2 Goral, Cindy M.; Torrance, Kenneth E.; Greenberg, Donald P.; Battaile, Bennett (1984). "Modelado de la interacción de la luz entre superficies difusas". Actas de la 11.ª conferencia anual sobre gráficos por computadora y técnicas interactivas . págs. 213–222 . doi : 10.1145/800031.808601 . ISBN  0-89791-138-5.
  67. 1 2 3 Cohen, Michael F. ; Wallace, John R. (1993). Radiosidad y síntesis de imágenes realistas (PDF) . Academic Press. ISBN 0-12-178270-0Consultado el 17 de enero de 2025 .
  68. 1 2 Dutré, Philip (29 de septiembre de 2003), Compendio de iluminación global: Guía concisa de algoritmos de iluminación global , consultado el 6 de octubre de 2024
  69. Bekaert, Philippe (1999). Algoritmos jerárquicos y estocásticos para la radiosidad (Tesis). Departamento de Informática, KU Leuven.
  70. 1 2 3 4 5 Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "1.6" . Renderizado basado en la física: de la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN  978-0262048026Archivado del original el 27 de enero de 2024. Consultado el 27 de enero de 2024 .
  71. "Manual de Blender: Renderizado: Cycles: Introducción" . docs.blender.org . The Blender Foundation. Archivado del original el 3 de septiembre de 2024. Consultado el 27 de enero de 2024 .
  72. Kulla, Christopher (30 de julio de 2017), Arnold en Sony Pictures Imageworks: De Monster House a Los Pitufos: La aldea perdida (diapositivas del curso) (PDF) , SIGGRAPH, Los Ángeles{{citation}}: CS1 mantenimiento: falta el editor de ubicación ( enlace )
  73. 1 2 Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "15. Renderizado de frente de onda en GPU" . Renderizado basado en la física: de la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN  978-0262048026Archivado del original el 27 de enero de 2024. Consultado el 27 de enero de 2024 .
  74. Otte, Vilém (2015). Seguimiento de ruta bidireccional en GPU (PDF) (tesis de maestría). Universidad Masaryk, Brno.
  75. Schmidt, Martin; Lobachev, Oleg; Guthe, Michael (2016). "Transporte coherente de luz de metrópolis en la GPU mediante mutaciones especulativas". Journal of WSCG . 24 (1): 1– 8. hdl : 11025/21640 .
  76. Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). «5. Lecturas adicionales: Eliminación de ruido» . Renderizado basado en la física: De la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN  978-0262048026Archivado del original el 27 de enero de 2024. Consultado el 27 de enero de 2024 .
  77. "Manual de Blender: Renderizado: Cycles: Optimización de renderizados: Reducción de ruido" . docs.blender.org . The Blender Foundation. Archivado del original el 27 de enero de 2024. Consultado el 27 de enero de 2024 .
  78. "Manual de Blender: Renderizado: Cycles: Configuración de renderizado: Muestreo" . docs.blender.org . The Blender Foundation. Archivado del original el 27 de enero de 2024. Consultado el 27 de enero de 2024 .
  79. "Intel Open Image Denoise: Biblioteca de eliminación de ruido de alto rendimiento para trazado de rayos" . www.openimagedenoise.org . Intel Corporation. Archivado del original el 6 de enero de 2024. Consultado el 27 de enero de 2024 .
  80. "NVIDIA OptiX™ AI-Accelerated Denoiser" . developer.nvidia.com . NVIDIA Corporation. Archivado del original el 18 de enero de 2024. Consultado el 27 de enero de 2024 .
  81. Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (25 de noviembre de 2016). "16. Transporte de luz III: Métodos bidireccionales" . Renderizado basado en la física: De la teoría a la implementación (3.ª ed.). Morgan Kaufmann. ISBN  978-0128006450. Consultado el 9 de febrero de 2025 .
  82. 1 2 3 4 5 6 7 8 9 10 11 12 Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "13. Lecturas adicionales" . Renderizado basado en la física: de la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN  978-0262048026Consultado el 8 de septiembre de 2024 .
  83. Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). «16.2 Alternativas de diseño» . Renderizado basado en la física: de la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN  978-0262048026. Consultado el 8 de diciembre de 2025 .
  84. Knapik, Jakub; De Francesco, Giovanni; Zhdan, Dmitrii; Liu, Edward; Makarov, Evgeny; Kennedy, Jon; Marttila, Juho; Murphy, Michael; Hoobler, Nathan; Cheblokov, Tim; Kozlowski, Pawel (2024). «La evolución del pipeline de iluminación en tiempo real en Cyberpunk 2077». GPU Zen 3: Técnicas avanzadas de renderizado . Black Cat Publishing Inc. pp. 151–245 . ISBN  979-8344236797.
  85. Hertzmann, Aaron (8 de octubre de 2003). Aprendizaje automático para gráficos por computadora: un manifiesto y un tutorial (PDF) . 11.ª Conferencia del Pacífico sobre Gráficos por Computadora y Aplicaciones . Recuperado el 27 de mayo de 2026 .
  86. 1 2 Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "16.3 Temas emergentes" . Renderizado basado en la física: de la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN  978-0262048026. Consultado el 27 de mayo de 2026 .
  87. Sistema multiimagen de Evans & Sutherland (folleto) , Evans & Sutherland Corporation, 1979
  88. "Museo de Ciencias de la Ciudad de Nagoya - Guía de la Exposición - Digistar II" . www.ncsm.city.nagoya.jp . Museo de Ciencias de la Ciudad de Nagoya . Consultado el 13 de septiembre de 2024 .
  89. "Evans_and_Sutherland Digistar-II" . planetariums-database.org . Base de datos mundial de planetarios . Consultado el 13 de septiembre de 2024 .
  90. "Listado de planetarios que utilizan un Digistar-II de Evans y Sutherland" . planetariums-database.org . Base de datos mundial de planetarios . Consultado el 13 de septiembre de 2024 .
  91. Smith, Alvy Ray (octubre de 1982). "Efectos especiales para Star Trek II: La demo de Genesis" (PDF) . American Cinematographer : 1038. Consultado el 13 de septiembre de 2024 .
  92. 1 2 Bùi, Tường-Phong (1973). Iluminación para imágenes generadas por computadora (PDF) (tesis doctoral). Universidad de Utah.
  93. 1 2 Peddie, Jon (24 de septiembre de 2020). "Chips gráficos famosos: Geometry Engine" . www.computer.org . Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) . Recuperado el 13 de septiembre de 2024 .
  94. Clark, James H. (1980). "Estructuración de una arquitectura de sistema VLSI" (PDF) . Lambda (2.º trimestre): 25–30 .
  95. Fox, Charles (2024). "11. ARQUITECTURAS RETRO: Diseño de computadoras de 16 bits con la Commodore Amiga: Entendiendo la arquitectura". Arquitectura de computadoras . No Starch Press. ISBN 978-1-7185-0287-1.
  96. ^ "Wiki para desarrolladores de NES: PPU" . www.nesdev.org . wiki de nesdev . Consultado el 13 de septiembre de 2024 .
  97. Harold, David (11 de agosto de 2017). "PowerVR a los 25: La historia de una revolución gráfica" . blog.imaginationtech.com . Imagination Technologies Limited . Consultado el 13 de septiembre de 2024 .
  98. Peercy, Mark S.; Olano, Marc; Airey, John; Ungar, P. Jeffrey (2000). "Sombreado programable interactivo de múltiples pasadas". Actas de la 27.ª conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '00 . págs. 425–432 . doi : 10.1145/344779.344976 . ISBN  1-58113-208-5.
  99. "NVIDIA DLSS 3" . nvidia.com . NVIDIA Corporation . Consultado el 13 de septiembre de 2024 .
  100. Lam, Chester (16 de abril de 2021). "Medición de la latencia de la memoria de la GPU" . chipsandcheese.com . Chips and Cheese . Consultado el 13 de septiembre de 2024 .
  101. 1 2 Gong, Xun; Gong, Xiang; Yu, Leiming; Kaeli, David (2019). "HAWS: Aceleración de la ejecución de frentes de onda de GPU mediante ejecución selectiva fuera de orden". ACM Transactions on Architecture and Code Optimization . 16 (2): 1– 22. doi : 10.1145/3291050 .
  102. Wright, Richard S.; Lipchak, Benjamin (2004). OpenGL SuperBible (3.ª ed.). Sams Publishing. ISBN  978-0672326011.
  103. Gambetta, Gabriel (2021). Gráficos por computadora desde cero . No Starch Press. ISBN 978-1-7185-0077-8.
  104. Torrance, KE; Sparrow, EM (septiembre de 1967). "Teoría de la reflexión no especular en superficies rugosas". Journal of the Optical Society of America . 57 (9): 1105– 1114. Bibcode : 1967JOSA...57.1105T . doi : 10.1364/JOSA.57.001105 .
  105. Warnock, John E. (20 de mayo de 1968). Un algoritmo de línea oculta para la representación de imágenes de semitonos (Informe). ID de salida de CORE 276286863 DTIC AD0761995 . 
  106. Gouraud, H. (junio de 1971). "Sombreado continuo de superficies curvas". IEEE Transactions on Computers . C-20 (6): 623– 629. Bibcode : 1971ITCmp.100..623G . doi : 10.1109/tc.1971.223313 .
  107. 1 2 "Historia | Escuela de Informática" . Archivado del original el 3 de diciembre de 2013. Consultado el 22 de noviembre de 2021 .
  108. 1 2 Phong, Bui Tuong (junio de 1975). "Iluminación para imágenes generadas por computadora". Communications of the ACM . 18 (6): 311– 317. doi : 10.1145/360825.360839 .
  109. Blinn, JF ; Newell, ME (1976). "Textura y reflexión en imágenes generadas por computadora". Communications of the ACM . 19 (10): 542– 546. doi : 10.1145/360349.360353 .
  110. Blinn, James F. (20 de julio de 1977). "Modelos de reflexión de luz para imágenes sintetizadas por computadora" . ACM SIGGRAPH Computer Graphics . 11 (2): 192– 198. doi : 10.1145/965141.563893 vía dl.acm.org.
  111. Crow, Franklin C. (1977). "Algoritmos de sombra para gráficos por computadora". ACM SIGGRAPH Computer Graphics . 11 (2): 242– 248. doi : 10.1145/965141.563901 .
  112. Williams, Lance (1978). «Proyección de sombras curvas en superficies curvas». Actas de la 5.ª conferencia anual sobre gráficos por computadora y técnicas interactivas . págs. 270–274 . doi : 10.1145/800248.807402 . ISBN  978-1-4503-7908-3.
  113. Blinn, James F. (1978). "Simulación de superficies arrugadas". ACM SIGGRAPH Computer Graphics . 12 (3): 286– 292. doi : 10.1145/965139.507101 .
  114. Fuchs, Henry; Kedem, Zvi M.; Naylor, Bruce F. (1980). "Sobre la generación de superficies visibles mediante estructuras de árbol a priori". Actas de la 7.ª conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '80 . págs. 124–133 . doi : 10.1145/800250.807481 . ISBN  0-89791-021-4.
  115. Whitted, T. (1980). "Un modelo de iluminación mejorado para pantallas sombreadas". Communications of the ACM . 23 (6): 343– 349. doi : 10.1145/358876.358882 .
  116. Cook, Robert L.; Torrance, Kenneth E. (1981). "Un modelo de reflectancia para gráficos por computadora". ACM SIGGRAPH Computer Graphics . 15 (3): 307– 316. doi : 10.1145/965161.806819 .
  117. Williams, Lance (1983). «Parametría piramidal». Actas de la décima conferencia anual sobre gráficos por computadora y técnicas interactivas . págs. 1–11 . doi : 10.1145/800059.801126 . ISBN  0-89791-109-1.
  118. Glassner, AS (1984). "Subdivisión espacial para trazado rápido de rayos". IEEE Computer Graphics & Applications . 4 (10): 15– 22. Bibcode : 1984ICGA....4j..15G . doi : 10.1109/mcg.1984.6429331 .
  119. Porter, Thomas; Duff, Tom (1984). «Composición de imágenes digitales». Actas de la 11.ª conferencia anual sobre gráficos por computadora y técnicas interactivas . págs. 253–259 . doi : 10.1145/800031.808606 . ISBN  0-89791-138-5.
  120. Cook, Robert L.; Porter, Thomas; Carpenter, Loren (1984). «Distributed ray tracing». Actas de la 11.ª conferencia anual sobre gráficos por computadora y técnicas interactivas . págs. 137–145 . doi : 10.1145/800031.808590 . ISBN  0-89791-138-5.
  121. Goral, Cindy M.; Torrance, Kenneth E.; Greenberg, Donald P.; Battaile, Bennett (1984). "Modelado de la interacción de la luz entre superficies difusas". ACM SIGGRAPH Computer Graphics . 18 (3): 213– 222. doi : 10.1145/964965.808601 .
  122. Nishita, Tomoyuki; Nakamae, Eihachiro (1985). "Representación tonal continua de objetos tridimensionales teniendo en cuenta las sombras y la interreflexión". Actas de la 12.ª conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '85 . págs. 23–30 . doi : 10.1145/325334.325169 . ISBN  0-89791-166-0.
  123. Cohen, Michael F.; Greenberg, Donald P. (1985). "El hemicubo: una solución de radiosidad para entornos complejos". ACM SIGGRAPH Computer Graphics . 19 (3): 31– 40. doi : 10.1145/325165.325171 .
  124. Ward, Gregory J.; Rubinstein, Francis M.; Clear, Robert D. (1988). "Una solución de trazado de rayos para la interreflexión difusa". ACM SIGGRAPH Computer Graphics . 22 (4): 85– 92. doi : 10.1145/378456.378490 .
  125. Ward, Gregory J. (1994). «El sistema de simulación y renderizado de iluminación RADIANCE». Actas de la 21.ª conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '94 . págs. 459–472 . doi : 10.1145/192161.192286 . ISBN  0-89791-667-0.
  126. Wu, Xiaolin (1991). "Una técnica eficiente de antialiasing". ACM SIGGRAPH Computer Graphics . 25 (4): 143– 152. doi : 10.1145/127719.122734 .
  127. ^ Wu, Xiaolin (1991). "Generación rápida de círculos antialias". En James Arvo (ed.). Gemas gráficas II . San Francisco: Morgan Kaufmann. págs. 446–450 . ISBN  978-0-12-064480-3.
  128. Hanrahan, Pat; Salzman, David; Aupperle, Larry (1991). «Un algoritmo rápido de radiosidad jerárquica». Actas de la 18.ª conferencia anual sobre gráficos por computadora y técnicas interactivas . págs. 197–206 . doi : 10.1145/122718.122740 . ISBN  0-89791-436-8.
  129. Oren, Michael; Nayar, Shree K. (1994). "Generalización del modelo de reflectancia de Lambert". Actas de la 21.ª conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '94 . págs. 239–246 . doi : 10.1145/192161.192213 . ISBN  0-89791-667-0.
  130. Tumblin, J.; Rushmeier, H. (noviembre de 1993). "Reproducción de tonos para imágenes realistas". IEEE Computer Graphics and Applications . 13 (6): 42– 48. Bibcode : 1993ICGA...13f..42T . doi : 10.1109/38.252554 .
  131. Hanrahan, Pat; Krueger, Wolfgang (1993). «Reflexión de superficies estratificadas debido a la dispersión subsuperficial». Actas de la 20.ª conferencia anual sobre gráficos por computadora y técnicas interactivas . págs. 165–174 . doi : 10.1145/166117.166139 . ISBN  0-89791-601-8.
  132. Lafortune, Eric; Willems, Yves (diciembre de 1993). "Trazado de rutas bidireccional" (PDF) . Actas de la Tercera Conferencia Internacional sobre Técnicas de Gráficos Computacionales y Visualización (CompuGraphics) . págs. 145–153 . Archivado (PDF) del original el 21 de mayo de 2022. Recuperado el 2 de septiembre de 2024 . 
  133. Miller, Gavin (1994). «Algoritmos eficientes para el sombreado de accesibilidad local y global». Actas de la 21.ª conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '94 . págs. 319–326 . doi : 10.1145/192161.192244 . ISBN  0-89791-667-0.
  134. Jensen, Henrik Wann; Christensen, Niels Jørgen (marzo de 1995). "Mapas de fotones en el trazado de rayos Monte Carlo bidireccional de objetos complejos". Computers & Graphics . 19 (2): 215– 224. doi : 10.1016/0097-8493(94)00145-O .
  135. Veach, Eric; Guibas, Leonidas J. (1995). "Combinación óptima de técnicas de muestreo para la representación Monte Carlo". Actas de la 22.ª conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '95 . págs. 419–428 . doi : 10.1145/218380.218498 . ISBN  0-89791-701-4.
  136. 1 2 Veach, Eric; Guibas, Leonidas J. (1997). "Transporte ligero de metrópolis". Actas de la 24.ª conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '97 . págs. 65–76 . doi : 10.1145/258734.258775 . ISBN  0-89791-896-7.
  137. Keller, Alexander (1997). «Radiosidad instantánea». Actas de la 24.ª conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '97 . págs. 49–56 . doi : 10.1145/258734.258769 . ISBN  0-89791-896-7.
  138. Sloan, Peter-Pike; Kautz, Jan; Snyder, John (2002). «Transferencia de radiancia precalculada para renderizado en tiempo real en entornos de iluminación dinámicos de baja frecuencia». Actas de la 29.ª conferencia anual sobre gráficos por computadora y técnicas interactivas . págs. 527–536 . doi : 10.1145/566570.566612 . ISBN  1-58113-521-1.
  139. ^ Kelemen, Csaba; Szirmay-Kalos, László; Antal, György; Csonka, Ferenc (septiembre de 2002). "Una estrategia de mutación simple y sólida para el algoritmo de transporte ligero de Metropolis". Foro de gráficos por computadora . 21 (3): 531– 540. doi : 10.1111/1467-8659.t01-1-00703 .
  140. Matusik, Wojciech; Pfister, Hanspeter; Brand, Matt; McMillan, Leonard (2003). "Un modelo de reflectancia basado en datos". ACM Transactions on Graphics . 22 (3): 759– 769. doi : 10.1145/882262.882343 . hdl : 1721.1/87454 .
  141. Walter, Bruce; Fernandez, Sebastian; Arbree, Adam; Bala, Kavita; Donikian, Michael; Greenberg, Donald P. (2005). "Lightcuts: Un enfoque escalable para la iluminación". ACM Transactions on Graphics . 24 (3): 1098– 1107. doi : 10.1145/1073204.1073318 .
  142. Krivanek, J.; Gautron, P.; Pattanaik, S.; Bouatouch, K. (septiembre de 2005). "Almacenamiento en caché de radiancia para un cálculo eficiente de la iluminación global". IEEE Transactions on Visualization and Computer Graphics . 11 (5): 550– 561. Bibcode : 2005ITVCG..11..550K . doi : 10.1109/TVCG.2005.83 . PMID 16144252 . 
  143. Hachisuka, Toshiya; Jensen, Henrik Wann (2009). "Mapeo estocástico progresivo de fotones". Artículos de ACM SIGGRAPH Asia 2009. págs. 1–8 . doi : 10.1145/1661412.1618487 . ISBN  978-1-60558-858-2.
  144. ^ Georgiev, Iliyan; Křivánek, Jaroslav; Davidovič, Tomáš; Slusallek, Philipp (2012). "Simulación de transporte ligero con conexión y fusión de vértices". Transacciones ACM sobre gráficos . 31 (6): 1– 10. doi : 10.1145/2366145.2366211 .
  145. Hachisuka, Toshiya; Pantaleoni, Jacopo; Jensen, Henrik Wann (2012). "Una extensión del espacio de trayectorias para la simulación robusta del transporte de luz". ACM Transactions on Graphics . 31 (6): 1– 10. doi : 10.1145/2366145.2366210 .
  146. "Documentación de RenderMan 26: PxrVCM" . pixar.com . Pixar. 16 de julio de 2024. Consultado el 11 de febrero de 2025 .
  147. Jakob, Wenzel; Marschner, Steve (5 de agosto de 2012). "Exploración de variedades: una técnica de Monte Carlo de cadena de Markov para renderizar escenas con transporte especular difícil" . ACM Transactions on Graphics . 31 (4): 1– 13. doi : 10.1145/2185520.2185554 .
  148. Lehtinen, Jaakko; Karras, Tero; Laine, Samuli; Aittala, Miika; Durand, Fredo; Aila, Timo (21 de julio de 2013). "Transporte ligero de metrópolis en dominio de gradiente". Transacciones ACM sobre gráficos . 32 (4): 1– 12. doi : 10.1145/2461912.2461943 .
  149. Hachisuka, Toshiya; Kaplanyan, Anton S.; Dachsbacher, Carsten (27 de julio de 2014). "Transporte ligero de metrópolis multiplexado". ACM Transactions on Graphics . 33 (4): 1– 10. doi : 10.1145/2601097.2601138 .
  150. Loper, Matthew M.; Black, Michael J. (2014). "OpenDR: Un renderizador diferenciable aproximado". Visión por computadora – ECCV 2014. Notas de clase en ciencias de la computación. Vol. 8695. págs. 154–169 . doi : 10.1007/978-3-319-10584-0_11 . ISBN   978-3-319-10583-3.
  151. Hanika, Johannes; Droske, Marc; Fascione, Luca (27 de julio de 2015). "Estimación del siguiente evento en variedad". Computer Graphics Forum (Actas del Simposio Eurographics de 2015 sobre renderizado) . 34 (4): 87– 97. doi : 10.1111/cgf.12681 .
  152. 1 2 "Documentación de RenderMan 26: PxrUnified" . pixar.com . Pixar. 21 de junio de 2024. Consultado el 11 de febrero de 2025 .
  153. Müller, Thomas; Gross, Markus; Novák, Jan (julio de 2017). "Guía práctica de trayectorias para una simulación eficiente del transporte de luz". Computer Graphics Forum . 36 (4): 91– 100. doi : 10.1111/cgf.13227 .
  154. Bitterli, Benedikt; Wyman, Chris; Pharr, Matt; Shirley, Peter; Lefohn, Aaron; Jarosz, Wojciech (31 de agosto de 2020). "Remuestreo de reservorio espaciotemporal para trazado de rayos en tiempo real con iluminación directa dinámica". ACM Transactions on Graphics . 39 (4). doi : 10.1145/3386569.3392481 .

Lecturas adicionales

Libros recientes

  • Akenine-Möller, Tomas; Haines, Eric; Hoffman, Naty; Pesce, Ángel; Iwanicki, Michał; Hillaire, Sébastien (2018). Representación en tiempo real (4ª  ed.). Boca Ratón, FL: AK Peters/CRC Press. ISBN 978-1138627000.
  • Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). Renderizado basado en la física: de la teoría a la implementación (4.ª  ed.). Cambridge, Massachusetts: The MIT Press. ISBN 978-0262048026.
  • Dutré, Felipe; Bala, Kavita; Bekaert, Philippe (2015). Iluminación global avanzada (2ª  ed.). AK Peters/Prensa CRC. ISBN 978-1-4987-8562-4.
  • Hughes, John F.; Van Dam, Andries ; McGuire, Morgan; Sklar, David F.; Foley, James D .; Feiner, Steven K.; Akeley, Kurt (2014). Gráficos por computadora: principios y práctica (3.ª  ed.). Addison-Wesley. ISBN 978-0-321-39952-6.
  • Marschner, Steve; Shirley, Peter (2022). Fundamentos de gráficos por computadora (5ª  ed.). Prensa CRC. ISBN 978-1-003-05033-9.

Libros antiguos

  • Raghavachary, Saty (2005). Rendering for Beginners . Focal Press. ISBN 0-240-51935-3.
  • Glassner, Andrew S. (2011) [1995]. Principios de síntesis de imágenes digitales (PDF) . 1.0.1. Morgan Kaufmann Publishers, Inc. ISBN 978-1-55860-276-2. Archivado (PDF) del original el 27-01-2024 . Recuperado el 27-01-2024 .
  • Glassner, Andrew S. (11 de abril de 2019) [1989]. Introducción al trazado de rayos (PDF) . 1.3. ACADEMIC PRESS. ISBN 978-0-12-286160-4. Archivado (PDF) del original el 27 de enero de 2024. Recuperado el 27 de enero de 2024 .
  • Cohen, Michael F .; Wallace, John R. (1993). Radiosidad y síntesis de imágenes realistas (PDF) . Academic Press. ISBN 0-12-178270-0.

Renderizado no fotorrealista

  • Gooch, Bruce; Gooch, Amy (2001). Representación no fotorrealista . AK Peters. ISBN 978-1-56881-133-8.
  • Strothotte, Thomas; Schlechtweg, Stefan (2002). Gráficos por computadora no fotorrealistas . Morgan Kaufman. ISBN 978-1-55860-787-3.

Tutoriales en línea (también disponibles en formato libro)

  • de Vries, Joey. "Aprende OpenGL" . aprenderopengl.com .
  • Shirley, Peter; Black, Trevor D.; Hollasch, Steve. "Ray Tracing in One Weekend (series)" . raytracing.github.io .
  • vintage3d.org "El camino al 3D doméstico" Amplia historia del hardware de gráficos por computadora, incluyendo investigación, comercialización, videojuegos y consolas.