Proceso de generación de una imagen a partir de un modelo.
La representación o síntesis de imágenes es el proceso de generar una imagen fotorrealista o no fotorrealista a partir de un modelo 2D o 3D por medio de un programa informático . [ cita requerida ] La imagen resultante se conoce como representación . Se pueden definir múltiples modelos en un archivo de escena que contiene objetos en un lenguaje o estructura de datos estrictamente definidos . El archivo de escena contiene información de geometría, punto de vista, texturas , iluminación y sombreado que describe la escena virtual. Los datos contenidos en el archivo de escena se pasan luego a un programa de representación para ser procesados y exportados a una imagen digital o un archivo de imagen de gráficos rasterizados . El término "renderizado" es análogo al concepto de impresión de una escena por parte de un artista . El término "renderizado" también se utiliza para describir el proceso de cálculo de efectos en un programa de edición de vídeo para producir la salida de vídeo final.
Una aplicación o componente de software que realiza la renderización se denomina motor de renderización , [1] motor de renderización , sistema de renderización , motor de gráficos o simplemente renderizador .
La renderización es uno de los principales subtemas de los gráficos por computadora en 3D y, en la práctica, siempre está conectada con los demás. Es el último paso importante en el proceso de creación de gráficos , que otorga a los modelos y a la animación su apariencia final. Con la creciente sofisticación de los gráficos por computadora desde la década de 1970, se ha convertido en un tema más diferenciado.
El renderizado tiene aplicaciones en arquitectura , videojuegos , simuladores , efectos visuales de películas y televisión y visualización de diseños, cada uno de los cuales emplea un equilibrio diferente de características y técnicas. Hay una amplia variedad de renderizadores disponibles para su uso. Algunos están integrados en paquetes de modelado y animación más grandes, algunos son independientes y algunos son proyectos gratuitos de código abierto. En el interior, un renderizador es un programa cuidadosamente diseñado basado en múltiples disciplinas, incluida la física de la luz , la percepción visual , las matemáticas y el desarrollo de software .
Aunque los detalles técnicos de los métodos de renderizado varían, los desafíos generales que se deben superar al producir una imagen 2D en una pantalla a partir de una representación 3D almacenada en un archivo de escena son manejados por el flujo de gráficos en un dispositivo de renderizado como una GPU . Una GPU es un dispositivo diseñado específicamente para ayudar a una CPU a realizar cálculos de renderizado complejos. Si se desea que una escena se vea relativamente realista y predecible bajo una iluminación virtual, el software de renderizado debe resolver la ecuación de renderizado . La ecuación de renderizado no tiene en cuenta todos los fenómenos de iluminación, sino que actúa como un modelo de iluminación general para imágenes generadas por computadora.
En el caso de los gráficos 3D, las escenas se pueden pre-renderizar o generar en tiempo real. La pre-renderización es un proceso lento y de alto consumo de recursos que se utiliza normalmente para la creación de películas, donde las escenas se pueden generar con antelación, mientras que la renderización en tiempo real se suele realizar para los videojuegos 3D y otras aplicaciones que deben crear escenas de forma dinámica. Los aceleradores de hardware 3D pueden mejorar el rendimiento de la renderización en tiempo real.
Características
Una imagen renderizada puede entenderse en términos de una serie de características visibles. La investigación y el desarrollo de la renderización se han basado principalmente en la búsqueda de formas de simularlas de manera eficiente. Algunas se relacionan directamente con algoritmos y técnicas particulares, mientras que otras se producen en conjunto.
Sombreado : cómo varía el color y el brillo de una superficie con la iluminación
Mapeo de texturas : un método para aplicar detalles a las superficies
Mapeo de protuberancias : un método para simular protuberancias a pequeña escala en superficies
Medio nebuloso/participante : cómo se atenúa la luz al pasar a través de una atmósfera o aire no transparente
Translucidez : transmisión de luz altamente dispersa a través de objetos sólidos.
Refracción : curvatura de la luz asociada con la transparencia.
Difracción : curvatura, dispersión e interferencia de la luz que pasa por un objeto o una abertura que interrumpe el rayo.
Iluminación indirecta : superficies iluminadas por la luz reflejada en otras superficies, en lugar de directamente desde una fuente de luz (también conocida como iluminación global)
Cáusticas (una forma de iluminación indirecta): reflexión de la luz sobre un objeto brillante o enfoque de la luz a través de un objeto transparente para producir reflejos brillantes en otro objeto.
Profundidad de campo : los objetos aparecen borrosos o desenfocados cuando están demasiado lejos delante o detrás del objeto enfocado.
Desenfoque de movimiento : los objetos aparecen borrosos debido al movimiento a alta velocidad o al movimiento de la cámara.
Representación no fotorrealista : representación de escenas en un estilo artístico, destinada a parecerse a una pintura o un dibujo.
Entradas
Antes de poder renderizar una escena 3D o una imagen 2D, se debe describir de una manera que el software de renderizado pueda entender. Históricamente, las entradas para el renderizado 2D y 3D eran generalmente archivos de texto , que son más fáciles de editar y entender para los humanos que los archivos binarios. Para 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 que las aplicaciones interactivas se comuniquen directamente con un componente de renderizado sin generar un archivo en el disco (aunque generalmente se sigue creando una descripción de la escena en la memoria antes del renderizado). [2] : 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 algoritmos que renderizan visualizaciones de datos escaneados del mundo real o simulaciones científicas pueden requerir distintos 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 archivos de gráficos 3D se han estandarizado (incluidos los 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 más comunes. [2] : 3.2.3, 3.2.5, 3.3.7 [3] : vii [4] [5] : 16.5.2. [6]
Transformaciones para posicionar, rotar y escalar objetos dentro de una escena (permitiendo que partes de la escena utilicen diferentes sistemas de coordenadas locales).
Propiedades ópticas de los medios a través de los cuales pasa la luz (sólidos transparentes, líquidos, nubes, humo), por ejemplo, secciones transversales de absorción y dispersión .
Pequeños scripts o programas para generar formas o escenas 3D complejas de forma procedimental.
Descripción de cómo las ubicaciones de los objetos y las cámaras y otra información cambian con el tiempo, para renderizar una animación
Existen muchos formatos de archivo para almacenar objetos 3D individuales o " modelos ". Estos se pueden importar a una escena más grande o se pueden cargar a pedido 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 a menudo utilizan grandes bibliotecas de modelos. En la producción de juegos, estos modelos (junto con otros datos como texturas, archivos de audio y animaciones) se conocen como " recursos ". [6] [8] : Cap. 4
Antes de la renderización, se pueden extraer conjuntos de niveles para datos volumétricos y convertirlos en una malla de triángulos, por ejemplo, utilizando el algoritmo de cubos en marcha . También se han desarrollado algoritmos que trabajan directamente con datos volumétricos, por ejemplo, para renderizar representaciones realistas de la forma en que 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. [12] : 4.6 [9] : 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 fotografías de una escena también se pueden unir para crear imágenes panorámicas o mapas del entorno , que permiten renderizar la escena de forma muy eficiente pero solo desde un único punto de vista. El escaneo de objetos y escenas reales utilizando 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 renderizar. (Nota: "nube de puntos" a veces también se refiere a un estilo de renderizado minimalista que se puede utilizar para cualquier geometría 3D, similar al renderizado de estructura alámbrica). [9] : 13.3, 13.9 [2] : 1.3
Aproximaciones neuronales y campos de luz
Un enfoque experimental más reciente es la descripción de escenas utilizando campos de radiancia que definen el color, la intensidad y la dirección de la luz entrante 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 no es práctico representarlo directamente como datos volumétricos, y se debe encontrar una función de aproximación . Las redes neuronales se utilizan típicamente 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 ". [13] [14]
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, parcialmente transparentes de dimensiones y orientaciones variables en lugar de puntos. Al igual que con los campos de radiancia neuronal , estas aproximaciones se generan a menudo a partir de fotografías o fotogramas de vídeo. [15]
Salidas
El resultado de la renderización se puede mostrar inmediatamente en la pantalla (muchas veces por segundo, en el caso de la renderización en tiempo real, como los juegos) o guardarse en un formato de archivo de gráficos rasterizados , como JPEG o PNG . Las aplicaciones de renderización de alta gama suelen utilizar el formato de archivo OpenEXR , que puede representar gradaciones más finas de colores e iluminación de alto rango dinámico , lo que permite aplicar posteriormente el mapeo de tonos u otros ajustes sin pérdida de calidad. [16] [17] : Cap. 14, Ap. B
Las animaciones renderizadas rápidamente se pueden guardar directamente como archivos de video, pero para una renderización de alta calidad, los cuadros individuales (que pueden ser renderizados por diferentes computadoras en un clúster o granja de renderización y pueden tardar horas o incluso días en renderizarse) se generan como archivos separados y se combinan más tarde en un videoclip. [18] [8] : 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 la 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 trayectoria). Se puede incluir información de transparencia, lo que permite componer objetos de primer plano renderizados con fotografías o videos. A veces también es útil almacenar las contribuciones de diferentes luces, o de iluminación especular y difusa, como canales separados, de modo que la iluminación se pueda ajustar después del renderizado. El formato OpenEXR permite almacenar muchos canales de datos en un solo archivo. [16] [17] : Cap. 14, Ap. B
Técnicas
La elección de cómo renderizar una escena 3D generalmente implica hacer concesiones entre velocidad, uso de memoria y realismo (aunque el realismo no siempre es lo deseado).Los algoritmos desarrollados a lo largo de los años siguen una progresión flexible, y los métodos más avanzados se vuelven prácticos a medida que aumenta la capacidad de procesamiento y de memoria. Se pueden utilizar múltiples técnicas para obtener una única imagen final.
Una distinción importante es entre los algoritmos de orden de imágenes , que iteran sobre los píxeles del plano de la imagen, y los algoritmos de orden de objetos , que iteran sobre los objetos de la escena. En el caso de escenas simples, el orden de objetos suele ser más eficiente, ya que hay menos objetos que píxeles. [19] : Cap. 4
Las pantallas vectoriales de los años 1960 y 1970 utilizaban la desviación de un haz de electrones para dibujar segmentos de línea directamente en la pantalla. Hoy en día, 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 se puede utilizar para renderizar objetos 3D proyectándolos primero sobre un plano de imagen 2D. [20] : 93, 431, 505, 553
Adapta algoritmos de rasterización 2D para que puedan usarse de manera más eficiente para renderización 3D, manejando la eliminación de superficies ocultas mediante técnicas de línea de escaneo o búfer z . Se pueden obtener diferentes efectos realistas o estilizados coloreando los píxeles cubiertos por los objetos de diferentes maneras. Las superficies generalmente se dividen en mallas de triángulos antes de ser rasterizadas. La rasterización suele ser sinónimo de renderización de "orden de objetos" (como se describió anteriormente). [20] : 560-561, 575-590 [2] : 8.5 [19] : Cap. 9
Utiliza fórmulas geométricas para calcular el primer objeto que un rayo interseca. [21] : 8 Se puede utilizar para implementar la representación de "orden de imagen" al proyectar un rayo para cada píxel y encontrar un punto correspondiente en la escena. La proyección de rayos es una operación fundamental utilizada tanto para fines gráficos como no gráficos, [22] : 6 por ejemplo, para determinar si un punto está en la sombra o para verificar lo que puede ver un enemigo en un juego .
Simula las trayectorias de rebote de la luz causadas por la reflexión y refracción especulares , lo que requiere un número variable de operaciones de proyección de rayos para cada trayectoria. Las formas avanzadas utilizan técnicas de Monte Carlo para representar 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 dominio del trazado de trayectorias. [21] : 9-13 [23]
Un método de análisis de elementos finitos que divide las superficies de la escena en partes y calcula la cantidad de luz que cada parte recibe de fuentes de luz o indirectamente de otras superficies. Una vez que se conoce la irradiancia de cada superficie, la escena se puede renderizar mediante rasterización o trazado de rayos. [24] : 888-890, 1044-1045
Utiliza la integración de Monte Carlo con una forma simplificada de trazado de rayos, calculando el brillo promedio de una muestra de los posibles caminos que un fotón podría tomar al viajar desde una fuente de luz a la cámara (para algunas imágenes, se deben muestrear miles de caminos por píxel [22] : 8 ). Se introdujo como una forma estadísticamente imparcial de resolver la ecuación de renderizado , lo que le da al trazado de rayos una base matemática rigurosa. [25] [21] : 11-13
Cada uno de los enfoques anteriores tiene muchas variaciones y existen algunas superposiciones. El trazado de trayectorias puede considerarse una técnica distinta o un tipo particular de trazado de rayos. [24] : 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. [21] : 7
El trazado de rayos es una familia de algoritmos, utilizados por el método de proyección 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 se puede incorporar al trazado de rayos y al trazado de trayectorias, y se utiliza en la rasterización para implementar la reflexión en el espacio de la pantalla y otros efectos. [21] : 13
Una técnica llamada mapeo de fotones traza trayectorias de 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 convencionales. [24] : 1037-1039 Renderizar una escena utilizando solo rayos trazados desde la fuente de luz hasta la cámara es poco práctico, aunque se corresponde más con la realidad, porque se necesitaría simular una gran cantidad de fotones, de los cuales solo una pequeña fracción realmente llega a la cámara. [26] : 7-9 [20] : 587
Algunos autores llaman al trazado de rayos convencional trazado de rayos "hacia atrás" porque traza las trayectorias de los fotones hacia atrás desde la cámara hasta la fuente de luz, y llaman trazado de rayos "hacia adelante" a las trayectorias siguientes desde la fuente de luz (como en el mapeo de fotones). [26] : 7-9 Sin embargo, a veces el significado de estos términos se invierte. [27] El trazado de rayos que comienza en la fuente de luz también se puede llamar trazado de partículas o trazado de luz , lo que evita esta ambigüedad. [28] : 92 [29] : 4.5.4
La renderización en tiempo real, incluidos los gráficos de los videojuegos, normalmente utiliza rasterización, pero cada vez más la combina con el trazado de rayos y el trazado de trayectorias. [22] : 2 Para permitir una iluminación global realista , la renderización en tiempo real a menudo se basa en iluminación pre-renderizada ("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 mediante la representación de vistas omnidireccionales de la escena en puntos elegidos en el espacio (a menudo puntos en una cuadrícula para permitir una interpolación más fácil ). Estos son similares a los mapas de entorno , pero normalmente utilizan una resolución muy baja o una aproximación como los armónicos esféricos . [30] (Nota: Blender utiliza el término 'sondas de luz' para una clase más general de datos de iluminación pregrabados, incluidos los mapas de reflexión. [31] )
Ejemplos que comparan diferentes técnicas de renderizado
Una imagen trazada de ruta de baja calidad, renderizada por el renderizador Cycles de Blender con solo 16 rutas muestreadas por píxel y una malla de baja resolución
Una imagen trazada por rayos, utilizando el programa POV-Ray (usando solo sus funciones de trazado de rayos) con una malla de baja resolución
Una imagen rasterizada de mayor calidad, utilizando el renderizador EEVEE de Blender con sondas de luz
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 búfer de cuadros para su visualización. [9] : 2.1 [19] : 9
Las principales tareas de rasterización (incluido el procesamiento de píxeles) son: [9] : 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 real, 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 formas están ocultas por otras formas, debido a capas 2D o profundidad 3D ( eliminación de superficie oculta )
Evaluación de 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 es típicamente parte de un proceso de gráficos en el 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 antes de mostrar el resultado final en la pantalla. [9] : 2.1 [19] : 9
Históricamente, la rasterización 3D utilizaba algoritmos como el algoritmo Warnock y el renderizado de líneas de escaneo (también llamado "conversión de escaneo"), que pueden manejar polígonos arbitrarios y pueden rasterizar muchas formas simultáneamente. Aunque estos algoritmos siguen siendo importantes para el renderizado 2D, el renderizado 3D ahora suele dividir las formas en triángulos y rasterizarlas individualmente utilizando métodos más simples. [32] [33] [20] : 456, 561–569
Una vez que se han proyectado 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 usaban algoritmos geométricos o proyección de rayos para eliminar las partes ocultas de las formas, o usaban el algoritmo del pintor , que ordena las formas por profundidad (distancia desde la cámara) y las renderiza de atrás hacia adelante. La ordenación por profundidad se evitó más tarde incorporando la comparación de profundidad en el algoritmo de renderizado de líneas de escaneo . El algoritmo de búfer z realiza las comparaciones indirectamente al incluir un valor de profundidad o "z" en el búfer de cuadros . 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 en que se inventó), pero simplifica el código de rasterización y permite múltiples pasadas. Ahora la memoria es más rápida y abundante, y casi siempre se usa un búfer z para renderizado en tiempo real. [35] [36] [20] : 553–570 [9] : 2.5.2
Una desventaja del algoritmo básico del búfer z es que cada píxel termina completamente cubierto por un solo objeto o lleno del color de fondo, lo que provoca bordes irregulares en la imagen final. Los primeros enfoques de anti-aliasing abordaron esto 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 subpíxeles y muestreo múltiple ) resuelven el problema con menos precisión pero con un mayor rendimiento. Para gráficos 3D en tiempo real, se ha vuelto común usar heurísticas complicadas (e incluso redes neuronales ) para realizar el anti-aliasing. [36] [37] [19] : 9.3 [9] : 5.4.2
En la rasterización 3D, el color suele estar determinado por 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 hacerlo) 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 solo el mapeo de texturas y múltiples pasadas. [19] : 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 representa 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 en cada triángulo) o el sombreado Phong (los vectores normales se interpolan en cada triángulo y la iluminación se calcula para cada píxel). [19] : 9.2
Una de las formas más sencillas de renderizar una escena 3D es probar si un rayo que comienza en el punto de vista (el "ojo" o la "cámara") intersecta alguna de las formas geométricas de la escena, repitiendo esta prueba utilizando una dirección de rayo diferente para cada píxel. Este método, llamado ray casting , fue importante en los primeros gráficos por computadora y es un componente fundamental para algoritmos más avanzados. El ray casting se puede utilizar para renderizar formas definidas por operaciones de geometría sólida constructiva (CSG). [21] : 8-9 [39] : 246–249
Los primeros experimentos de proyección de rayos incluyen el trabajo de Arthur Appel en la década de 1960. Appel representó sombras proyectando un rayo adicional desde cada punto de la superficie visible hacia una fuente de luz. También intentó representar la densidad de la 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 llamada mapeo de fotones ). [40]
Al renderizar escenas que contienen muchos objetos, probar la intersección de un rayo con cada objeto se vuelve muy costoso. Se utilizan estructuras de datos especiales para acelerar este proceso al permitir excluir rápidamente una gran cantidad de objetos (como los objetos 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 un cuadro delimitador 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 de hardware para pruebas de intersección BVH. Los árboles kd son un caso especial de partición binaria del espacio , que se utilizó con frecuencia en los primeros gráficos de 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. [22] : 16–17 [41] [39] [5] : 36.2
El trazado de rayos tiene como objetivo simular el flujo natural de luz, interpretado como partículas. A menudo, los métodos de trazado de rayos se utilizan para aproximar la solución a la ecuación de renderizado mediante la aplicación de métodos de Monte Carlo . Algunos de los métodos más utilizados son el trazado de trayectorias , el trazado de trayectorias bidireccional o el transporte de luz Metropolis , pero también se utilizan métodos semirrealistas, como el trazado de rayos de estilo Whitted o híbridos. Si bien la mayoría de las implementaciones permiten que la luz se propague en líneas rectas, existen aplicaciones para simular efectos espaciotemporales relativistas. [43]
En una representación final de calidad de producción de un trabajo trazado de rayos, generalmente se disparan múltiples rayos para cada píxel y se trazan no solo hasta el primer objeto de intersección, sino más bien, a través de una serie de "rebotes" secuenciales, utilizando las leyes conocidas de la óptica, como "el ángulo de incidencia es igual al ángulo de reflexión" y leyes más avanzadas que tratan la refracción y la rugosidad de la superficie.
Una vez que el rayo encuentra una fuente de luz, o más probablemente una vez que se ha evaluado un número límite de rebotes, se evalúa la iluminación de la superficie en ese punto final utilizando las técnicas descritas anteriormente y se evalúan los cambios a lo largo del camino a través de los diversos rebotes para estimar un valor observado en el punto de vista. Todo esto se repite para cada muestra, para cada píxel.
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. [22] : 2 Esto permite efectos visuales que son difíciles con solo rasterización, incluido el reflejo de superficies curvas y objetos interreflectivos, [44] : 305 y sombras que son precisas en un amplio rango de distancias y orientaciones de superficie. [45] : 159-160 El soporte de trazado de rayos está incluido en versiones recientes de las API de gráficos utilizadas por los juegos, como DirectX , Metal y Vulkan . [46]
Radiosidad
La radiosidad (denominada así por la cantidad radiométrica del mismo nombre ) es un método para reproducir objetos iluminados por la luz que rebota en superficies rugosas o mate . Este tipo de iluminación se denomina luz indirecta , iluminación ambiental o iluminación difusa , y el problema de reproducirla de forma realista se denomina iluminación global . La rasterización y las formas básicas de trazado de rayos (distintas del trazado de rayos de distribución y el trazado de trayectorias) solo pueden aproximarse de forma aproximada a la luz indirecta, por ejemplo, añadiendo una cantidad de iluminación "ambiental" uniforme elegida por el artista. Las técnicas de radiosidad también son adecuadas para reproducir escenas con luces de área , como paneles de iluminación fluorescentes rectangulares, que son difíciles de rasterizar y de realizar un trazado de rayos tradicional. La radiosidad se considera un método basado en la física , lo que significa que tiene como objetivo simular el flujo de luz en un entorno utilizando ecuaciones y datos experimentales de la física, pero a menudo supone que todas las superficies son opacas y perfectamente lambertianas , lo que reduce el realismo y limita su aplicabilidad. [9] : 10, 11.2.1 [24] : 888, 893 [47]
En el método de radiosidad original (propuesto por primera vez en 1984) ahora llamado radiosidad clásica , las superficies y luces en la escena se dividen en partes llamadas parches , un proceso llamado 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 otro parche. Estas fracciones se denominan factores de forma o factores de vista (usados por primera vez en ingeniería para modelar la transferencia de calor radiativo ). Los factores de forma se multiplican por el albedo de la superficie receptora y se colocan en una matriz . La iluminación en 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 del álgebra lineal . [47] [48] : 46 [24] : 888, 896
La solució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 que 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 representación en tiempo real, este valor (o más comúnmente la irradiancia , que no depende del albedo de la superficie local) se puede calcular previamente y almacenar en una textura (llamada mapa de irradiancia ) o almacenar como datos de vértice para modelos 3D. Esta característica se utilizó en el software de visualización arquitectónica para permitir recorridos en tiempo real del interior de un edificio después de calcular la iluminación. [24] : 890 [9] : 11.5.1 [49] : 332
El gran tamaño de las matrices utilizadas en la radiosidad clásica (el cuadrado del número de parches) causa problemas para las escenas realistas. Las implementaciones prácticas pueden utilizar iteraciones de Jacobi o Gauss-Seidel , lo que equivale (al menos en el caso de Jacobi) a simular la propagación de la luz un rebote a la vez hasta que la cantidad de luz restante (aún no absorbida por las superficies) sea insignificante. El número de iteraciones (rebotes) requeridos 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 (comparado con el cubo para la eliminación gaussiana ). Los factores de forma se pueden volver a calcular cuando sean necesarios, para evitar almacenar una matriz completa en la memoria. [24] : 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 los bordes de las sombras con precisión. 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 que están alejadas entre sí y subdivide los parches de forma adaptativa según sea necesario. Esto permite utilizar la radiosidad para escenas mucho más grandes y complejas. [24] : 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, así como parches de superficie. La radiosidad estocástica o de Monte Carlo utiliza un muestreo aleatorio de varias maneras, por ejemplo, tomando muestras de luz incidente en lugar de integrar sobre todos los parches, lo que puede mejorar el rendimiento pero agrega ruido (este ruido se puede reducir utilizando iteraciones deterministas como paso final, a diferencia del ruido del rastreo de trayectorias). Las versiones simplificadas y parcialmente precalculadas de la radiosidad se utilizan ampliamente para la representación en tiempo real, combinadas con técnicas como la radiosidad de octree que almacenan aproximaciones del campo de luz . [24] : 979, 982 [48] : 49 [50] [9] : 11.5
Rastreo de ruta
Como parte del enfoque conocido como renderizado basado en la física , el trazado de trayectorias se ha convertido en la técnica dominante para renderizar escenas realistas, incluidos los efectos para películas. [51] Por ejemplo, el popular software 3D de código abierto Blender utiliza el trazado de trayectorias en su renderizador Cycles. [52] Las imágenes producidas utilizando el trazado de trayectorias para la iluminación global son generalmente 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 los artefactos que surgen del uso de una representación teselada de la irradiancia . [51] [24] : 975-976, 1045
Al igual que el trazado de rayos distribuido , el trazado de trayectorias es un tipo de trazado de rayos aleatorio o estocástico 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 podría evitarse trazando solo una única trayectoria desde la cámara a la vez (en la implementación de Kajiya, esta regla de "sin ramificación" se rompió al rastrear rayos adicionales desde cada punto de intersección de la superficie hasta puntos elegidos aleatoriamente en cada fuente de luz). Kajiya sugirió reducir el ruido presente en las imágenes de salida mediante el uso de 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 la renderización 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 íntegramente mediante trazado de trayectorias, no se estrenó hasta 20 años después. [25] [51] [53]
En su forma básica, el trazado de trayectorias es ineficiente (requiere demasiadas muestras) para renderizar cáusticos y escenas donde la luz entra indirectamente a través de espacios estrechos. Se hicieron intentos para abordar estas debilidades en la década de 1990. El trazado de trayectorias bidireccional tiene similitudes con el mapeo de fotones , rastreando rayos de la fuente de luz y la cámara por separado, y luego encontrando formas de conectar estas trayectorias (pero a diferencia del mapeo de fotones, generalmente muestrea nuevas trayectorias 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 Metropolis muestrea las trayectorias modificando las trayectorias que se trazaron previamente, dedicando más tiempo a explorar las trayectorias que son similares a otras trayectorias "brillantes", lo que aumenta la posibilidad de descubrir trayectorias 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. [51] [28]
La relativa simplicidad del trazado de rutas y su naturaleza como un método de Monte Carlo (muestreo de cientos o miles de rutas por píxel) lo han hecho atractivo para implementar en una GPU , especialmente en GPU recientes que admiten la tecnología de aceleración de trazado de rayos como RTX y OptiX de Nvidia . [54] Sin embargo, el trazado de rutas bidireccional y el transporte de luz Metropolis son más difíciles de implementar de manera eficiente en una GPU. [55] [56]
La investigación para mejorar el rastreo de trayectorias continúa. Los enfoques recientes de guía 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 puedan muestrear de manera más efectiva. [57] Se han desarrollado muchas técnicas para eliminar el ruido de la salida del rastreo de trayectorias, reduciendo el número de trayectorias necesarias para lograr una calidad aceptable, con el riesgo de perder algún detalle o introducir artefactos de pequeña escala que son más objetables que el ruido; [58] [59] las redes neuronales se utilizan ahora ampliamente para este propósito. [60] [61] [62]
Representación neuronal
La representación neuronal es un método de representación que utiliza redes neuronales artificiales . [63] [64] La representación neuronal incluye métodos de representación basados en imágenes que se utilizan para reconstruir modelos 3D a partir de imágenes bidimensionales. [63] Uno de estos métodos es la fotogrametría , que es un método en el que una colección de imágenes desde múltiples ángulos de un objeto se convierten en un modelo 3D. También ha habido desarrollos recientes en la generación y representación de modelos 3D a partir de texto y pinturas gruesas por parte de Nvidia , Google y varias otras empresas.
Base científica y matemática
La implementación de un renderizador realista siempre tiene algún elemento básico de simulación o emulación física: algún cálculo que se asemeja o abstrae un proceso físico real.
El término " basado físicamente " indica el uso de modelos físicos y aproximaciones que son más generales y ampliamente aceptados fuera del ámbito de la renderización. Un conjunto particular de técnicas relacionadas se han ido estableciendo gradualmente en la comunidad de renderización.
Los conceptos básicos son relativamente sencillos, pero difíciles de calcular; y no se ha logrado encontrar un único algoritmo o enfoque elegante para los renderizadores de uso más general. Para satisfacer las demandas de solidez, precisión y practicidad, una implementación será una combinación compleja de diferentes técnicas.
La investigación sobre renderizado se ocupa tanto de la adaptación de modelos científicos como de su aplicación eficiente.
Este es el concepto académico/teórico clave en el campo de la representación. Sirve como la expresión formal más abstracta del aspecto no perceptual de la representación. Todos los algoritmos más completos pueden considerarse soluciones a formulaciones particulares de esta ecuación.
Significado: en una posición y dirección determinadas, la luz saliente (L o ) es la suma de la luz emitida (L e ) y la luz reflejada. La luz reflejada es la suma de la luz entrante (L i ) de todas las direcciones, multiplicada por la reflexión de la superficie y el ángulo de entrada. Al conectar la luz saliente con la luz entrante, a través de un punto de interacción, esta ecuación representa todo el "transporte de luz" (todo el movimiento de la luz) en una escena.
La función de distribución de reflectancia bidireccional
La interacción de la luz a menudo se aproxima mediante modelos aún más simples: reflexión difusa y reflexión especular, aunque ambos TAMBIÉN pueden ser BRDF.
Óptica geométrica
La renderización se ocupa prácticamente de manera exclusiva del aspecto de partículas de la física de la luz, conocido como óptica geométrica . Tratar la luz, en su nivel básico, como partículas que rebotan es una simplificación, pero apropiada: los aspectos ondulatorios de la luz son insignificantes en la mayoría de las escenas y son significativamente más difíciles de simular. Los fenómenos notables del aspecto ondulatorio incluyen la difracción (como se ve en los colores de los CD y DVD ) y la polarización (como se ve en las pantallas LCD ). Ambos tipos de efectos, si son necesarios, se realizan mediante un ajuste orientado a la apariencia del modelo de reflexión.
Percepción visual
Aunque recibe menos atención, la comprensión de la percepción visual humana es valiosa para la representación. Esto se debe principalmente a que las pantallas de imágenes y la percepción humana tienen rangos restringidos. Un renderizador puede simular una amplia gama de brillo y color de luz, pero las pantallas actuales (pantalla de cine, monitor de computadora, etc.) no pueden manejar tanto, y algo debe descartarse o comprimirse. La percepción humana también tiene límites, por lo que no es necesario que se le proporcionen imágenes de gran alcance para crear realismo. Esto puede ayudar a resolver el problema de encajar imágenes en las pantallas y, además, sugerir qué atajos se podrían utilizar en la simulación de renderizado, ya que ciertas sutilezas no serán perceptibles. Este tema relacionado es el mapeo de tonos .
Muestreo y filtrado
Un problema que cualquier sistema de renderizado debe afrontar, sin importar el enfoque que adopte, es el problema del muestreo . Básicamente, el proceso de renderizado intenta representar una función continua desde el espacio de la imagen hasta los colores utilizando un número finito de píxeles. Como consecuencia del teorema de muestreo de Nyquist-Shannon (o teorema de Kotelnikov), cualquier forma de onda espacial que se pueda mostrar debe constar de al menos dos píxeles, lo que es proporcional a la resolución de la imagen . En términos más simples, esto expresa la idea de que una imagen no puede mostrar detalles, picos o valles en color o intensidad, que sean más pequeños que un píxel.
La renderización suele estar limitada por la potencia de procesamiento disponible y el ancho de banda de la memoria , por lo que se ha desarrollado hardware especializado para acelerarla, en particular para la renderización en tiempo real . Se requieren características de hardware como un búfer de cuadros para gráficos rasterizados para mostrar el resultado de la renderización de manera fluida en tiempo real.
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 en la década de 1980) incorporaron funciones de transformación de coordenadas 3D para acelerar la representación de imágenes de estructura alámbrica . [20] : 93–94, 404–421 [65] 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 (los Digistar y Digistar II basados en vectores se usaron en muchos planetarios, y algunos aún pueden estar en funcionamiento). [66] [67] [68] Se utilizó un prototipo de Digistar para renderizar campos de estrellas en 3D para la película Star Trek II: La ira de Khan , algunas de las primeras secuencias de gráficos de computadora en 3D jamás vistas en un largometraje. [69]
En los años 1970 y principios de los 1980, la representación de gráficos 3D sombreados se implementaba generalmente en computadoras de propósito general, como la PDP-10 utilizada por investigadores de la Universidad de Utah [70] [36] . Era difícil acelerar el proceso utilizando hardware especializado porque implica una serie de pasos complejos, que requieren direccionamiento de datos, toma de decisiones y capacidades de cálculo que normalmente solo proporcionan las CPU (aunque se propusieron circuitos dedicados para acelerar operaciones particulares [70] ). A veces se utilizaban supercomputadoras o computadoras o clústeres multi-CPU especialmente diseñados para el trazado de rayos. [39] En 1981, James H. Clark y Marc Hannah diseñaron el Geometry Engine, un chip VLSI para realizar algunos de los pasos del proceso de rasterización 3D, y fundaron la empresa Silicon Graphics (SGI) para comercializar esta tecnología. [71] [72]
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 se pueden dividir en muchas subtareas pequeñas, similares y en su mayoría independientes (como la representación de píxeles individuales) y que se pueden realizar en paralelo . Esto significa que una GPU puede acelerar cualquier algoritmo de representación que se pueda dividir en subtareas de esta manera, a diferencia de los aceleradores 3D de la década de 1990 que solo se diseñaron para acelerar algoritmos de rasterización específicos y efectos de sombreado e iluminación simples (aunque se podían usar trucos para realizar cálculos más generales). [9] : ch3 [76]
Debido a sus orígenes, las GPU generalmente aún brindan aceleración de hardware especializada para algunos pasos de una tubería de rasterización 3D tradicional , incluida la eliminación de superficies ocultas usando un búfer z y el mapeo de texturas con mipmaps , pero estas características ya no siempre se usan. [9] : ch3 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 , [41] así como características de aceleración de redes neuronales a veces útiles para la renderización. [77]
Las GPU suelen estar integradas con sistemas de memoria de gran 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, en particular 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 en un algoritmo implica muchos accesos a la memoria. El diseño de la GPU acepta la alta latencia como inevitable (en parte porque una gran cantidad de subprocesos comparten el bus de memoria ) e intenta "ocultarla" cambiando de manera eficiente entre subprocesos, de modo que un subproceso diferente pueda realizar cálculos mientras el primer subproceso espera que se complete una lectura o escritura. [9] : ch3 [78] [79]
Los algoritmos de renderizado se ejecutarán de manera eficiente en una GPU solo si se pueden implementar utilizando pequeños grupos de subprocesos que realizan principalmente las mismas operaciones. Como ejemplo de código que cumple con este requisito: al renderizar un pequeño cuadrado de píxeles en una imagen simple con trazado de rayos , es probable que todos los subprocesos intersequen 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 alrededor de 16 a 64 subprocesos llamados warps o wavefronts en sincronía (todos los subprocesos del grupo ejecutan las mismas instrucciones al mismo tiempo). Si no todos los subprocesos del grupo necesitan ejecutar bloques de código particulares (debido a las condiciones), algunos subprocesos estarán inactivos o se descartarán los resultados de sus cálculos, lo que provocará una degradación del rendimiento. [9] : ch3 [79]
Cronología de algoritmos y técnicas
A continuación se presenta una cronología aproximada de las técnicas de renderización mencionadas con frecuencia, incluidas las áreas de investigación actuales. Cabe señalar que incluso en los casos en que se mencionó una idea en un artículo específico, casi siempre hubo varios investigadores trabajando en la misma área (incluidos trabajos relacionados anteriores). Cuando se propone un método por primera vez, suele ser muy ineficiente y se necesitan investigaciones adicionales y esfuerzos prácticos para convertirlo en una técnica útil. [24] : 887
Renderizado 3D : proceso de conversión de escenas 3D en imágenes 2D
Representación artística – Estilo de representaciónPages displaying short descriptions of redirect targets
Representación arquitectónica : creación de imágenes o animaciones bidimensionales que muestran los atributos de un diseño arquitectónico propuesto.Pages displaying wikidata descriptions as a fallback
Aberración cromática : falla de una lente para enfocar todos los colores en el mismo punto.
Mapa de alturas : tipo de imagen rasterizada en gráficos de computadora
Representación de alto rango dinámico : representación de escenas de gráficos de computadora mediante el uso de cálculos de iluminación realizados en alto rango dinámico.
Pre-renderizado : proceso en el que el metraje de video no se renderiza en tiempo real
Procesador de imágenes rasterizadas : componente utilizado en un sistema de impresión que produce una imagen rasterizada también conocida como mapa de bits.Pages displaying wikidata descriptions as a fallback
Radiosidad : método de representación de gráficos por computadora mediante reflexión difusa
^ de Adobe Systems Incorporated (1990). Manual de referencia del lenguaje PostScript (2.ª edición). Addison-Wesley Publishing Company. ISBN0-201-18127-4.
^ ab «SVG: Scalable Vector Graphics». Mozilla Corporation. 7 de agosto de 2024. Archivado desde el original el 24 de agosto de 2024. Consultado el 31 de agosto de 2024 .
^ ab 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. ISBN978-0-321-39952-6.
^ ab "Manual de Blender 4.2: Importación y exportación de archivos". docs.blender.org . The Blender Foundation. Archivado desde el original el 31 de agosto de 2024 . Consultado el 31 de agosto de 2024 .
^ Pharr, Matt; Jakob, Wenzel; Humphreys, Greg (2023). «Formato de archivo de entrada pbrt-v4» . Consultado el 31 de agosto de 2024 .
^ de Dunlop, Renee (2014). Fundamentos del proceso de producción para películas y videojuegos . Focal Press. ISBN978-1-315-85827-2.
^ abcdefghijklmnopq 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. ISBN978-1138627000.
^ "Acerca de OpenVDB". www.openvdb.org . Academy Software Foundation. Archivado desde el original el 3 de septiembre de 2024 . Consultado el 31 de agosto de 2024 .
^ Museth, Ken (junio de 2013). "VDB: volúmenes dispersos de alta resolución con topología dinámica" (PDF) . ACM Transactions on Graphics . 32 (3). doi :10.1145/2487228.2487235. Archivado (PDF) del original el 15 de abril de 2024 . Consultado el 31 de agosto de 2024 .
^ Bridson, Robert (2015). Simulación de fluidos para gráficos por computadora (2.ª edición). AK Peters/CRC Press. ISBN978-1-482-23283-7.
^ 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 desde el original el 31 de agosto de 2024 . Consultado el 31 de agosto de 2024 .
^ ab Mildenhall, Ben; Srinivasan, Pratul P.; Tancik, Matthew; Barron, Jonathan T.; Ramamoorthi, Ravi; Ng, Ren (2020). "NeRF: Representación de escenas como campos de radiancia neuronal para la síntesis de vistas" . Consultado el 31 de agosto de 2024 .
^ ab Kerbl, Bernhard; Kopanas, Georgios; Leimkühler, Thomas; Drettakis, George (julio de 2023). «3D Gaussian Splatting for Real-Time Radiance Field Rendering». ACM Transactions on Graphics . 42 (4): 1–14. arXiv : 2308.04079 . doi :10.1145/3592433. Archivado desde el original el 22 de agosto de 2024. Consultado el 31 de agosto de 2024 .
^ ab Pharr, Matt; Jakob, Wenzel; Humphreys, Greg (2023). «Guía del usuario de pbrt-v4». Archivado desde el original el 3 de septiembre de 2024. Consultado el 31 de agosto de 2024 .
^ ab Brinkmann, Ron (2008). El arte y la ciencia de la composición digital (2.ª ed.). Morgan Kaufmann. ISBN978-0-12-370638-6.
^ "Manual de Blender 4.2: Renderizado: Salida de renderizado: Animaciones de renderizado". docs.blender.org . The Blender Foundation. Archivado desde el original el 31 de agosto de 2024 . Consultado el 31 de agosto de 2024 .
^ abcdefgh Marschner, Steve; Shirley, Peter (2022). Fundamentos de gráficos por computadora (quinta edición). CRC Press. ISBN978-1-003-05033-9.
^ abcdefg Haines, Eric; Shirley, Peter (25 de febrero de 2019). "1. 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. ISBN978-1-4842-4427-2. S2CID 71144394. Archivado desde el original el 27 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ abcde Akenine-Möller, Tomas; Haines, Eric; Hoffman, Naty; Pesce, Angelo; Iwanicki, Michał; Hillaire, Sébastien (6 de agosto de 2018). "Capítulo en línea 26. Trazado de rayos en tiempo real" (PDF) . Representación en tiempo real (4.ª ed.). Boca Raton, FL: AK Peters/CRC Press. ISBN978-1138627000. Archivado (PDF) del original el 27 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ 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. PRENSA ACADÉMICA. ISBN978-0-12-286160-4. Archivado (PDF) del original el 27 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ abcdefghijk Glassner, Andrew S. (2011) [1995]. Principios de síntesis de imágenes digitales (PDF) . 1.0.1. Morgan Kaufmann Publishers, Inc. ISBN978-1-55860-276-2. Archivado (PDF) del original el 27 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ abcd Kajiya, James T. (agosto de 1986). "La ecuación de renderizado". ACM SIGGRAPH Computer Graphics . 20 (4): 143–150. doi :10.1145/15886.15902. Archivado desde el original el 3 de septiembre de 2024. Consultado el 27 de enero de 2024 .
^ ab Glassner, Andrew S. (11 de abril de 2019) [1989]. "1. Una descripción general del trazado de rayos". Introducción al trazado de rayos (PDF) . 1.3. PRENSA ACADÉMICA. ISBN978-0-12-286160-4. Archivado (PDF) del original el 27 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ Arvo, James (agosto de 1986). Trazado de rayos hacia atrás (notas del curso) (PDF) . SIGGRAPH 1986 Developments in Ray Tracing. Vol. 12. CiteSeerX 10.1.1.31.581 . Consultado el 5 de octubre de 2024 .
^ ab Veach, Eric (1997). Métodos robustos de Monte Carlo para la simulación del transporte de luz (PDF) (tesis doctoral). Universidad de Stanford.
^ Dutré, Felipe; Bala, Kavita; Bekaert, Philippe (2015). Iluminación global avanzada (2ª ed.). AK Peters/Prensa CRC. ISBN978-1-4987-8562-4.
^ "Manual de Unity: Sondas de luz: Introducción". docs.unity3d.com . Archivado desde el original el 3 de septiembre de 2024 . Consultado el 27 de enero de 2024 .
^ "Manual de Blender: Renderizado: EEVEE: Sondas de luz: Introducción". docs.blender.org . The Blender Foundation. Archivado desde el original el 24 de marzo de 2024 . Consultado el 27 de enero de 2024 .
^ ab Warnock, John (junio de 1969), Un algoritmo de superficie oculta para imágenes de medios tonos generadas por computadora, Universidad de Utah, TR 69-249 , consultado el 19 de septiembre de 2024
^ ab Bouknight, WJ (1970). "Un procedimiento para la generación de presentaciones de gráficos informáticos tridimensionales de semitonos". Comunicaciones de la ACM . 13 (9): 527–536. doi : 10.1145/362736.362739 . S2CID 15941472.
^ Stamm, Beat (21 de junio de 2018). "La tragedia del raster en baja resolución revisitada: oportunidades y desafíos más allá de la "insinuación delta"". rastertragedy.com . Consultado el 19 de septiembre de 2024 .
^ ab Watkins, Gary Scott (junio de 1970), A Real Time Visible Surface Algorithm, Universidad de Utah , consultado el 19 de septiembre de 2024
^ abcde 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 . Consultado el 19 de septiembre de 2024 .
^ ab Carpenter, Loren (julio de 1984). "El A-buffer, un método de superficie oculta antialiasing". Computer Graphics . 18 (3): 103–108. doi :10.1145/964965.808585.
^ ab Cook, Robert L. ; Carpenter, Loren ; Catmull, Edwin (julio de 1987). "La arquitectura de renderizado de imágenes de Reyes" (PDF) . ACM SIGGRAPH Computer Graphics . 21 (4). Association for Computing Machinery: 95–102. doi :10.1145/37402.37414. ISSN 0097-8930. Archivado (PDF) desde el original el 15 de julio de 2011 . Consultado el 19 de septiembre de 2024 .
^ abc 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. PRENSA ACADÉMICA. ISBN978-0-12-286160-4. Recuperado el 13 de septiembre de 2024 .
^ ab Appel, A. (1968). "Algunas técnicas para sombrear representaciones de sólidos por máquina" (PDF) . Actas de la Conferencia Conjunta de Computación de Primavera . Vol. 32. págs. 37–49. Archivado (PDF) desde el original el 13 de marzo de 2012. Consultado el 19 de septiembre de 2024 .
^ ab Stich, Martin (25 de febrero de 2019). "Prólogo". En Haines, Eric; Akenine-Möller, Tomas (eds.). 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. ISBN978-1-4842-4427-2. S2CID 71144394 . Consultado el 13 de septiembre de 2024 .
^ Hanrahan, Pat (11 de abril de 2019) [1989]. "2. Un estudio de los algoritmos de intersección de rayos y superficies". En Glassner, Andrew S. (ed.). Introducción al trazado de rayos (PDF) . 1.3. PRENSA ACADÉMICA. ISBN978-0-12-286160-4. Archivado (PDF) del original el 27 de enero de 2024 . Consultado el 22 de septiembre de 2024 .
^ "Trazado de rayos relativista: simulación de la apariencia visual de objetos en rápido movimiento". 1995. CiteSeerX 10.1.1.56.830 .
^ Liu, Edward; Llamas, Ignacio; Cañada, Juan; Kelly, Patrick (25 de febrero de 2019). "19: Cinematic Rendering in UE4 with Real-Time Ray Tracing and Denoising". Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs (Joyas del trazado de rayos: 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. S2CID 71144394. Archivado desde el original el 27 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ Boksansky, Jakub; Wimmer, Michael; Bittner, Jiri (25 de febrero de 2019). "13. Sombras con trazado de rayos: mantenimiento de frecuencias de cuadros 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. ISBN978-1-4842-4427-2. S2CID 71144394. Archivado desde el original el 27 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ "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 .
^ ab Goral, Cindy M.; Torrance, Kenneth E.; Greenberg, Donald P .; Battaile, Bennett (julio de 1984). "Modelado de la interacción de la luz entre superficies difusas" (PDF) . Actas de la 11.ª conferencia anual sobre gráficos por ordenador y técnicas interactivas . Vol. 18. Association for Computing Machinery. págs. 213–222. doi :10.1145/800031.808601. ISBN .0-89791-138-5. ISSN 0097-8930 . Consultado el 8 de octubre de 2024 .
^ ab Dutré, Philip (29 de septiembre de 2003), Compendio de iluminación global: la guía concisa de algoritmos de iluminación global , consultado el 6 de octubre de 2024
^ Cohen, Michael F. ; Wallace, John R. (1993). Radiosidad y síntesis de imágenes realistas . Academic Press. ISBN0-12-178270-0.
^ Bekaert, Philippe (1999). Algoritmos jerárquicos y estocásticos para radiosidad (Tesis). Departamento de Ciencias Informáticas, KU Leuven.
^ abcde Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "1.6". Representación basada en la física: de la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN978-0262048026Archivado desde el original el 27 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ "Manual de Blender: Renderizado: Ciclos: Introducción". docs.blender.org . The Blender Foundation. Archivado desde el original el 3 de septiembre de 2024 . Consultado el 27 de enero de 2024 .
^ 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 maint: location missing publisher (link)
^ Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "15. Representación de frente de onda en GPU". Representación basada en la física: de la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN978-0262048026Archivado desde el original el 27 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ Otte, Vilém (2015). Seguimiento de ruta bidireccional en GPU (PDF) (tesis de maestría). Universidad Masaryk, Brno.
^ Schmidt, Martin; Lobachev, Oleg; Guthe, Michael (2016). "Transporte coherente de luz de metrópolis en la GPU usando mutaciones especulativas" (PDF) . Revista de WSCG . 24 (1): 1–8. ISSN 1213-6972.
^ Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "13. Lectura adicional: Guía de rutas". Representación basada en la física: de la teoría a la implementación (4.ª ed.). Cambridge, Massachusetts: The MIT Press. ISBN978-0262048026. Recuperado el 8 de septiembre de 2024 .
^ Pharr, Matt ; Jakob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "5. Lectura adicional: 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. ISBN978-0262048026Archivado desde el original el 27 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ "Manual de Blender: Renderizado: Ciclos: Optimización de renderizados: Reducción de ruido". docs.blender.org . The Blender Foundation. Archivado desde el original el 27 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ "Manual de Blender: Renderizado: Ciclos: Ajustes de renderizado: Muestreo". docs.blender.org . The Blender Foundation. Archivado desde el original el 27 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ "Intel® Open Image Denoise: biblioteca de eliminación de ruido de alto rendimiento para trazado de rayos". www.openimagedenoise.org . Intel Corporation. Archivado desde el original el 6 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ "Denoiser acelerado por IA de NVIDIA OptiX™". developer.nvidia.com . NVIDIA Corporation. Archivado desde el original el 18 de enero de 2024 . Consultado el 27 de enero de 2024 .
^ ab Tewari, A.; Frito, O.; Thiès, J.; Sitzmann, V.; Lombardi, S.; Sunkavalli, K.; Martín-Brualla, R.; Simón, T.; Saragih, J.; Nießner, M.; Pandey, R.; Fanello, S.; Wetzstein, G.; Zhu, J.-Y.; Teobaldo, C.; Agrawala, M.; Shechtman, E.; Goldman, DB; Zollhöfer, M. (2020). "Estado del arte sobre renderizado neuronal". Foro de gráficos por computadora . 39 (2): 701–727. arXiv : 2004.03805 . doi :10.1111/cgf.14022. S2CID 215416317.
^ Knight, Will. "Un nuevo truco permite a la inteligencia artificial ver en 3D". Wired . ISSN 1059-1028. Archivado desde el original el 2022-02-07 . Consultado el 2022-02-08 .
^ "Museo de Ciencias de la Ciudad de Nagoya - Guía de exposiciones - Digistar II". www.ncsm.city.nagoya.jp . Museo de Ciencias de la Ciudad de Nagoya . Consultado el 13 de septiembre de 2024 .
^ "Evans_and_Sutherland Digistar-II". planetariums-database.org . Base de datos mundial de planetarios . Consultado el 13 de septiembre de 2024 .
^ "Listado de planetarios que utilizan un Evans_and_Sutherland Digistar-II". planetariums-database.org . Base de datos mundial de planetarios . Consultado el 13 de septiembre de 2024 .
^ Smith, Alvy Ray (octubre de 1982). «Efectos especiales para Star Trek II: The Genesis Demo» (PDF) . American Cinematographer : 1038. Consultado el 13 de septiembre de 2024 .
^ ab Bùi, Tường-Phong (1973). Iluminación para imágenes generadas por computadora (PDF) (tesis doctoral). Universidad de Utah.
^ ab Peddie, Jon (24 de septiembre de 2020). «Famous Graphics Chips: Geometry Engine». www.computer.org . Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) . Consultado el 13 de septiembre de 2024 .
^ Clark, James H. (1980). "Estructuración de una arquitectura de sistema VLSI" (PDF) . Lambda (2.º trimestre): 25–30.
^ Fox, Charles (2024). "11. ARQUITECTURAS RETRO: Diseño de computadoras de 16 bits con Commodore Amiga: comprensión de la arquitectura". Arquitectura de computadoras . No Starch Press. ISBN978-1-7185-0287-1.
^ "Wiki para desarrolladores de NES: PPU". www.nesdev.org . wiki de nesdev . Consultado el 13 de septiembre de 2024 .
^ Harold, David (11 de agosto de 2017). "PowerVR cumple 25 años: la historia de una revolución gráfica". blog.imaginationtech.com . Imagination Technologies Limited . Consultado el 13 de septiembre de 2024 .
^ Peercy, Mark S.; Olano, Marc; Airey, John; Ungar, P. Jeffrey (2000). "Sombreado interactivo programable de múltiples pasadas" (PDF) . Actas de la 27.ª conferencia anual sobre gráficos por ordenador y técnicas interactivas - SIGGRAPH '00 . pág. 425-432. doi :10.1145/344779.344976. ISBN.1-58113-208-5. Recuperado el 13 de septiembre de 2024 .
^ "NVIDIA DLSS 3". nvidia.com . NVIDIA Corporation . Consultado el 13 de septiembre de 2024 .
^ 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 .
^ ab Gong, Xun; Gong, Xiang; Yu, Leiming; Kaeli, David (marzo de 2019). "HAWS: Aceleración de la ejecución de frente de onda de GPU mediante ejecución selectiva fuera de orden". ACM Trans. Archit. Code Optim . 16 (2). Association for Computing Machinery. doi :10.1145/3291050 . Consultado el 15 de septiembre de 2024 .
^ Warnock, John (20 de mayo de 1968), Un algoritmo de línea oculta para la representación de imágenes en semitonos (PDF) , Universidad de Utah, TR 4-5 , consultado el 19 de septiembre de 2024
^ Gouraud, H. (1971). "Sombreado continuo de superficies curvas" (PDF) . IEEE Transactions on Computers . 20 (6): 623–629. doi :10.1109/tc.1971.223313. S2CID 123827991. Archivado desde el original (PDF) el 2 de julio de 2010.
^ ab «Historia | Facultad de Informática». Archivado desde el original el 2013-12-03 . Consultado el 2021-11-22 .
^ ab Phong, BT (1975). "Iluminación para imágenes generadas por computadora" (PDF) . Comunicaciones de la ACM . 18 (6): 311–316. CiteSeerX 10.1.1.330.4718 . doi :10.1145/360825.360839. S2CID 1439868. Archivado desde el original (PDF) el 27 de marzo de 2012.
^ Blinn, JF ; Newell, ME (1976). "Textura y reflexión en imágenes generadas por ordenador". Comunicaciones de la ACM . 19 (10): 542–546. CiteSeerX 10.1.1.87.8903 . doi :10.1145/360349.360353. S2CID 408793.
^ Blinn, James F. (20 de julio de 1977). "Modelos de reflexión de la 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.
^ Crow, FC (1977). "Algoritmos de sombras para gráficos por ordenador" (PDF) . Computer Graphics (Proceedings of SIGGRAPH 1977) . Vol. 11. págs. 242–248. Archivado desde el original (PDF) el 2012-01-13 . Consultado el 2011-07-15 .
^ Williams, L. (1978). "Proyección de sombras curvas sobre superficies curvas". Computer Graphics (Actas de SIGGRAPH 1978) . Vol. 12. págs. 270–274. CiteSeerX 10.1.1.134.8225 .
^ Blinn, JF (1978). Simulación de superficies arrugadas (PDF) . Computer Graphics (Actas de SIGGRAPH 1978). Vol. 12. págs. 286–292. Archivado (PDF) desde el original el 21 de enero de 2012.
^ Fuchs, H. ; Kedem, ZM; Naylor, BF (1980). Generación de superficies visibles mediante estructuras de árbol a priori . Computer Graphics (Actas de SIGGRAPH 1980). Vol. 14. págs. 124–133. CiteSeerX 10.1.1.112.4406 .
^ Whitted, T. (1980). "Un modelo de iluminación mejorado para visualización sombreada". Comunicaciones de la ACM . 23 (6): 343–349. CiteSeerX 10.1.1.114.7629 . doi :10.1145/358876.358882. S2CID 9524504.
^ Cook, RL ; Torrance, KE (1981). Un modelo de reflectancia para gráficos de computadora . Gráficos de computadora (Actas de SIGGRAPH 1981). Vol. 15. págs. 307–316. CiteSeerX 10.1.1.88.7796 .
^ Williams, L. (1983). Parametría piramidal . Gráficos por ordenador (Actas de SIGGRAPH 1983). Vol. 17. págs. 1–11. CiteSeerX 10.1.1.163.6298 .
^ Glassner, AS (1984). "Subdivisión espacial para trazado rápido de rayos". IEEE Computer Graphics & Applications . 4 (10): 15–22. doi :10.1109/mcg.1984.6429331. S2CID 16965964.
^ Porter, T.; Duff, T. (1984). Composición de imágenes digitales (PDF) . Computer Graphics (Actas de SIGGRAPH 1984). Vol. 18. págs. 253–259. Archivado (PDF) desde el original el 16 de febrero de 2015.
^ Cook, RL ; Porter, T.; Carpenter, L. (1984). Trazado de rayos distribuido (PDF) . Gráficos por ordenador (Actas de SIGGRAPH 1984). Vol. 18. págs. 137–145.[ enlace muerto permanente ]
^ Goral, C.; Torrance, KE; Greenberg, DP ; Battaile, B. (1984). Modelado de la interacción de la luz entre superficies difusas . Gráficos por ordenador (Actas de SIGGRAPH 1984). Vol. 18. págs. 213–222. CiteSeerX 10.1.1.112.356 .
^ Cohen, MF ; Greenberg, DP (1985). El hemicubo: una solución de radiosidad para entornos complejos (PDF) . Computer Graphics (Actas de SIGGRAPH 1985). Vol. 19. págs. 31–40. doi :10.1145/325165.325171. Archivado desde el original (PDF) el 24 de abril de 2014 . Consultado el 25 de marzo de 2020 .
^ Arvo, J. (1986). Trazado de rayos hacia atrás . SIGGRAPH 1986 Notas del curso de Desarrollos en trazado de rayos. CiteSeerX 10.1.1.31.581 .
^ Wu, Xiaolin (julio de 1991). Una técnica eficaz de antialiasing. Vol. 25. págs. 143-152. doi :10.1145/127719.122734. ISBN978-0-89791-436-9. {{cite book}}: |journal=ignorado ( ayuda )
^ 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. ISBN978-0-12-064480-3.
^ Hanrahan, P. ; Salzman, D. ; Aupperle, L. (1991). Un algoritmo rápido de radiosidad jerárquica . Gráficos por ordenador (Actas de SIGGRAPH 1991). Vol. 25. págs. 197–206. CiteSeerX 10.1.1.93.5694 .
^ M. Oren y SK Nayar, "Generalización del modelo de reflectancia de Lambert Archivado el 15 de febrero de 2010 en Wayback Machine ". SIGGRAPH, págs. 239-246, julio de 1994
^ Tumblin, J.; Rushmeier, HE (1993). "Reproducción de tonos para imágenes realistas generadas por computadora" (PDF) . IEEE Computer Graphics & Applications . 13 (6): 42–48. doi :10.1109/38.252554. S2CID 6459836. Archivado (PDF) desde el original el 8 de diciembre de 2011.
^ Hanrahan, P. ; Krueger, W. (1993). Reflexión desde superficies estratificadas debido a dispersión subsuperficial . Gráficos por ordenador (Actas de SIGGRAPH 1993). Vol. 27. págs. 165–174. CiteSeerX 10.1.1.57.9761 .
^ Lafortune, Eric; Willems, Yves (diciembre de 1993). "Trazado de trayectoria bidireccional" (PDF) . Actas de la Tercera Conferencia Internacional sobre Gráficos Computacionales y Técnicas de Visualización (CompuGraphics) . págs. 145–153. Archivado (PDF) desde el original el 21 de mayo de 2022 . Consultado el 2 de septiembre de 2024 .
^ Miller, Gavin (24 de julio de 1994). "Algoritmos eficientes para sombreado de accesibilidad local y global". Actas de la 21.ª conferencia anual sobre gráficos por ordenador y técnicas interactivas - SIGGRAPH '94 . ACM. págs. 319–326. doi :10.1145/192161.192244. ISBN978-0897916677. S2CID 15271113. Archivado desde el original el 22 de noviembre de 2021. Consultado el 7 de mayo de 2018 en dl.acm.org.
^ Jensen, HW ; Christensen, NJ (1995). "Mapas de fotones en el trazado de rayos bidireccional de Monte Carlo de objetos complejos". Computers & Graphics . 19 (2): 215–224. CiteSeerX 10.1.1.97.2724 . doi :10.1016/0097-8493(94)00145-o.
^ Veach, Eric; Guibas, Leonidas J. (15 de septiembre de 1995). "Combinación óptima de técnicas de muestreo para renderizado de Monte Carlo". SIGGRAPH95: 22.ª Conferencia Internacional ACM sobre Gráficos por Computadora y Técnicas Interactivas . págs. 419–428. doi :10.1145/218380.218498. Archivado desde el original el 26 de julio de 2024. Consultado el 2 de septiembre de 2024 .
^ Veach, E. ; Guibas, L. (1997). Metropolis light transport . Computer Graphics (Actas de SIGGRAPH 1997). Vol. 16. págs. 65–76. CiteSeerX 10.1.1.88.944 .
^ Veach, E. ; Guibas, L. (1997). Metropolis light transport . Computer Graphics (Actas de SIGGRAPH 1997). Vol. 16. págs. 65–76. CiteSeerX 10.1.1.88.944 .
^ Keller, A. (1997). Radiosidad instantánea . Gráficos por ordenador (Actas de SIGGRAPH 1997). Vol. 24. págs. 49–56. CiteSeerX 10.1.1.15.240 .
^ Sloan, P.; Kautz, J.; Snyder, J. (2002). Transferencia de radiancia precalculada para renderización en tiempo real en entornos de iluminación dinámicos de baja frecuencia (PDF) . Gráficos por computadora (Actas de SIGGRAPH 2002). Vol. 29. págs. 527–536. Archivado desde el original (PDF) el 24 de julio de 2011.
^ Loper, Matthew M; Black, Michael J (6 de septiembre de 2014). «OpenDR: un renderizador diferenciable aproximado» (PDF) . Computer Vision - ECCV 2014. Vol. 8695. Zúrich, Suiza: Springer International Publishing. págs. 154–169. doi :10.1007/978-3-319-10584-0_11. Archivado (PDF) desde el original el 24 de junio de 2024. Consultado el 2 de septiembre de 2024 .
^ Müller, Thomas; Gross, Markus; Novák, Jan (junio de 2017). "Guía práctica de trayectorias para simulación eficiente del transporte de luz". Computer Graphics Forum (Actas de EGSR) . 36 (4). The Eurographs Association y John Wiley & Sons, Ltd.: 91–100. doi :10.1111/cgf.13227 . Consultado el 4 de septiembre de 2024 .
^ Bitterli, Benedikt; Wyman, Chris; Pharr, Matt; Shirley, Peter; Lefohn, Aaron; Jarosz, Wojciech (julio 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. Archivado desde el original el 1 de marzo de 2024 . Consultado el 2 de septiembre de 2024 .
Lectura adicional
Akenine-Möller, Tomas; Haines, Eric; Hoffman, Naty; Pesce, Ángel; Iwanicki, Micał; Hillaire, Sébastien (2018). Representación en tiempo real (4 ed.). Boca Ratón, FL, EE.UU.: AK Peters. ISBN 978-1-13862-700-0.
Blinn, Jim (1996). El rincón de Jim Blinn: un viaje por el mundo de los gráficos . San Francisco, California: Morgan Kaufmann Publishers. ISBN 978-1-55860-387-5.
Cohen, Michael F.; Wallace, John R. (1998). Radiosidad y síntesis de imágenes realistas (3.ª ed.). Boston, Mass. [ua]: Academic Press Professional. ISBN 978-0-12-178270-2.
Felipe Dutré; Bekaert, Philippe; Bala, Kavita (2003). Iluminación global avanzada ([Online-Ausg.] ed.). Natick, Massachusetts: AK Peters. ISBN 978-1-56881-177-2.
Foley, James D .; Van Dam; Feiner; Hughes (1990). Gráficos por computadora: principios y práctica (2.ª ed.). Reading, Mass.: Addison-Wesley. ISBN 978-0-201-12110-0.
Andrew S. Glassner, ed. (1989). Introducción al trazado de rayos (3.ª ed.). Londres [ua]: Acad. Press. ISBN 978-0-12-286160-4.
Glassner, Andrew S. (2004). Principios de la síntesis de imágenes digitales (2.ª ed.). San Francisco, California: Kaufmann. ISBN 978-1-55860-276-2.
Gooch, Bruce; Gooch, Amy (2001). Representación no fotorrealista . Natick, Mass.: AK Peters. ISBN 978-1-56881-133-8.
Jensen, Henrik Wann (2001). Síntesis de imágenes realistas mediante mapeo de fotones ([Nachdr.] ed.). Natick, Massachusetts: AK Peters. ISBN 978-1-56881-147-5.
Pharr, Matt; Humphreys, Greg (2004). Renderizado basado en la física desde la teoría hasta la implementación . Ámsterdam: Elsevier/Morgan Kaufmann. ISBN 978-0-12-553180-1.
Shirley, Peter ; Morley, R. Keith (2003). Trazado de rayos realista (2.ª ed.). Natick, Mass.: AK Peters. ISBN 978-1-56881-198-7.
Strothotte, Thomas; Schlechtweg, Stefan (2002). Modelado, renderizado y animación de gráficos por computadora no fotorrealistas (2 ed.). San Francisco, California: Morgan Kaufmann. ISBN 978-1-55860-787-3.
Ward, Gregory J. (julio de 1994). "El sistema de simulación y renderización de iluminación RADIANCE". Actas de la 21.ª conferencia anual sobre gráficos por ordenador y técnicas interactivas - SIGGRAPH '94 . pp. 459–72. doi :10.1145/192161.192286. ISBN 0897916670. Número de identificación del sujeto 2487835.
Enlaces externos
Busque renderizador en Wikcionario, el diccionario libre.
Wikimedia Commons tiene medios relacionados con Imágenes generadas por computadora .
SIGGRAPH – el grupo de interés especial de la ACM en gráficos – la asociación y conferencia académica y profesional más grande
vintage3d.org "El camino al 3D casero": extensa historia del hardware de gráficos de computadora, que incluye investigación, comercialización y videojuegos y consolas.