stringtranslate.com

Renderizado (gráficos por computadora)

Una variedad de técnicas de renderizado aplicadas a una única escena 3D.
Una imagen creada con POV-Ray 3.6

El renderizado 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 mediante un programa informático . [ cita requerida ] La imagen resultante se conoce como renderizado . Se pueden definir múltiples modelos en un archivo de escena que contenga objetos en un lenguaje o estructura de datos estrictamente definidos . El archivo de escena contiene información de geometría, punto de vista, textura , iluminación y sombreado que describe la escena virtual. Los datos contenidos en el archivo de escena luego se pasan a un programa de renderizado para ser procesados ​​y generados como una imagen digital o un archivo de imagen de gráficos rasterizados . El término "renderizado" es análogo al concepto de impresión artística de una escena. El término "renderizado" también se utiliza para describir el proceso de calcular efectos en un programa de edición de video para producir la salida de video final.

El renderizado es uno de los principales subtemas de los gráficos por ordenador en 3D y, en la práctica, siempre está relacionado con los demás. Es el último paso importante en el proceso de gráficos , dando a los modelos y animaciones 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 distinto.

El renderizado tiene usos en arquitectura , videojuegos , simuladores , efectos visuales de películas y televisión y visualización de diseños, y cada uno 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 más grandes de modelado y animación, algunos son independientes y algunos son proyectos gratuitos de código abierto. Por dentro, un renderizador es un programa cuidadosamente diseñado y 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 la canalización de gráficos en un dispositivo de renderizado como una GPU . Una GPU es un dispositivo diseñado específicamente que ayuda a una CPU a realizar cálculos de renderizado complejos. Para que una escena parezca relativamente realista y predecible bajo 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 renderizar previamente o generar en tiempo real. El renderizado previo es un proceso lento y computacional intensivo que normalmente se utiliza para la creación de películas, donde las escenas se pueden generar con anticipación, mientras que el renderizado en tiempo real a menudo se realiza para videojuegos 3D y otras aplicaciones que deben crear escenas dinámicamente. Los aceleradores de hardware 3D pueden mejorar el rendimiento de la renderización en tiempo real.

Uso

Cuando la imagen previa (generalmente un boceto de estructura alámbrica ) está completa, se utiliza el renderizado, que agrega texturas de mapa de bits o texturas de procedimiento , luces, mapeo de relieve y posición relativa a otros objetos. El resultado es una imagen completa que ve el consumidor o el espectador previsto.

Para animaciones de películas, se deben renderizar varias imágenes (fotogramas) y unirlas en un programa capaz de realizar una animación de este tipo. La mayoría de los programas de edición de imágenes 3D pueden hacer esto.

Características

Una imagen renderizada puede entenderse en términos de una serie de características visibles. La investigación y el desarrollo de renderizado se han visto motivados en gran medida por encontrar formas de simularlos de manera eficiente. Algunos se relacionan directamente con algoritmos y técnicas particulares, mientras que otros se producen juntos.

Técnicas

Muchos renderizadosSe han investigado algoritmos y el software utilizado para la renderización puede emplear varias técnicas diferentes para obtener una imagen final.

Elegir cómo renderizar una escena normalmente implica un equilibrio entre velocidad y realismo (aunque no siempre se desea el realismo). Las técnicas desarrolladas a lo largo de los años siguen una progresión flexible, y métodos más avanzados se vuelven prácticos a medida que aumentan la potencia informática y la capacidad de memoria.

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. Para escenas simples, el orden de los objetos suele ser más eficiente, ya que hay menos objetos que píxeles.

Rasterización (incluida la representación de líneas de exploración )
Proyecta geométricamente objetos en la escena a un plano de imagen. Se pueden obtener diferentes efectos realistas o estilizados coloreando los píxeles cubiertos por los objetos de diferentes maneras. Las superficies normalmente se dividen en mallas de triángulos antes de rasterizarlas. La rasterización suele ser sinónimo de renderizado en "orden de objetos" (como se describe anteriormente).
fundición de rayos
Utiliza fórmulas geométricas para calcular el primer objeto que cruza un rayo . [1] : 8  Se puede utilizar para implementar la representación en "orden de imagen" proyectando un rayo para cada píxel y encontrando un punto correspondiente en la escena. La emisión de rayos es una operación fundamental que se utiliza tanto para fines gráficos como no gráficos, [2] : 6  , por ejemplo, determinar si un punto está en la sombra o comprobar lo que un enemigo puede ver en un juego .
trazado de rayos
Simula los caminos de rebote de la luz causados ​​por la reflexión y la refracción especulares , lo que requiere un número variable de operaciones de proyección de rayos para cada camino. 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 trayectoria. [1] : 9-13  [3]
Seguimiento de ruta
Utiliza la integración Monte Carlo con una forma simplificada de trazado de rayos, calculando el brillo promedio de una muestra de los posibles caminos que podría tomar un fotón cuando viaja desde una fuente de luz a la cámara (para algunas imágenes, es necesario muestrear miles de caminos por píxel [2] : 8  ). Se introdujo como una forma estadísticamente imparcial de resolver la ecuación de renderizado , dando al trazado de rayos una base matemática rigurosa. [4] [1] : 11-13 
Radiosidad
Un enfoque de análisis de elementos finitos que divide las superficies de la escena en pedazos y estima la cantidad de luz que cada pieza 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. [5] : 888-890, 1044-1045 

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

Representación de un terreno fractal mediante la marcha de rayos

La marcha de rayos es una familia de algoritmos utilizados por la 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, en sí mismo, un método de renderizado, pero puede incorporarse al trazado de rayos y al trazado de ruta, y la rasterización lo utiliza para implementar la reflexión del espacio de la pantalla y otros efectos. [1] : 13 

Una técnica llamada mapeo de fotones o rastreo de fotones utiliza el rastreo de rayos hacia adelante (también llamado rastreo de partículas ), que rastrea las trayectorias de los fotones desde una fuente de luz hasta un objeto, en lugar de hacerlo hacia atrás desde la cámara. Los datos adicionales recopilados por este proceso se utilizan junto con el trazado de rayos hacia atrás o el trazado de ruta convencional. [5] : 1037-1039  Renderizar una escena utilizando únicamente el trazado de rayos directos no es práctico, aunque se corresponde más estrechamente con la realidad, porque sería necesario simular una gran cantidad de fotones, de los cuales sólo una pequeña fracción realmente impacta en la cámara. [6] : 7-9 

El renderizado en tiempo real, incluidos los gráficos de videojuegos, normalmente utiliza la rasterización, pero cada vez más la combina con el trazado de rayos y el trazado de ruta. [2] : 2  Para permitir una iluminación global realista , el renderizado en tiempo real a menudo se basa en iluminación prerenderizada ("horneada") para objetos estacionarios. Para objetos en movimiento, se puede utilizar una técnica llamada sondas de luz , en la que la iluminación se registra representando 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 ). Son similares a los mapas ambientales , pero normalmente utilizan una resolución muy baja o una aproximación como los armónicos esféricos . [7] (Nota: Blender utiliza el término 'sondas de luz' para una clase más general de datos de iluminación pregrabados, incluidos mapas de reflexión. [8] )

Representación y rasterización de líneas de exploración

Representación del telescopio extremadamente grande

Una representación de alto nivel de una imagen contiene necesariamente elementos en un dominio diferente al de los píxeles. Estos elementos se denominanprimitivos . En un dibujo esquemático, por ejemplo, los segmentos de línea y las curvas pueden ser primitivos. En una interfaz gráfica de usuario, las ventanas y los botones pueden ser las primitivas. En la representación de modelos 3D, los triángulos y polígonos en el espacio pueden ser primitivos.

Si un enfoque de renderizado píxel por píxel (orden de imágenes) no es práctico o demasiado lento para alguna tarea, entonces un enfoque de renderizado primitivo por primitivo (orden de objetos) puede resultar útil. Aquí, un bucle recorre cada una de las primitivas, determina a qué píxeles de la imagen afecta y modifica esos píxeles en consecuencia. A esto se le llama rasterización , y es el método de renderizado que utilizan todas las tarjetas gráficas actuales .

La rasterización suele ser más rápida que la renderización píxel por píxel. Primero, grandes áreas de la imagen pueden estar vacías de primitivas; la rasterización ignorará estas áreas, pero la representación píxel por píxel debe pasar a través de ellas. En segundo lugar, la rasterización puede mejorar la coherencia de la caché y reducir el trabajo redundante aprovechando el hecho de que los píxeles ocupados por una única primitiva tienden a ser contiguos en la imagen. Por estas razones, la rasterización suele ser el enfoque elegido cuando se requiere renderizado interactivo ; sin embargo, el enfoque píxel por píxel a menudo puede producir imágenes de mayor calidad y es más versátil porque no depende de tantas suposiciones sobre la imagen como la rasterización.

La forma más antigua de rasterización se caracteriza por representar una cara completa (primitiva) con un solo color. Alternativamente, la rasterización se puede realizar de una manera más complicada renderizando primero los vértices de una cara y luego renderizando los píxeles de esa cara como una combinación de los colores de los vértices. Esta versión de rasterización ha superado el método anterior, ya que permite que los gráficos fluyan sin texturas complicadas (una imagen rasterizada cuando se usa cara a cara tiende a tener un efecto muy parecido a un bloque si no está cubierta con texturas complejas; las caras no son suaves porque no hay un cambio gradual de color de una primitiva a la siguiente). Este nuevo método de rasterización utiliza las funciones de sombreado más exigentes de la tarjeta gráfica y aún logra un mejor rendimiento porque las texturas más simples almacenadas en la memoria usan menos espacio. A veces, los diseñadores utilizan un método de rasterización en algunas caras y el otro método en otras basándose en el ángulo en el que esa cara se encuentra con otras caras unidas, aumentando así la velocidad y sin perjudicar el efecto general.

fundición de rayos

En ray casting, la geometría que ha sido modelada se analiza píxel a píxel, línea a línea, desde el punto de vista hacia afuera, como si se proyectaran rayos desde el punto de vista. Cuando un objeto se cruza , el valor del color en el punto se puede evaluar utilizando varios métodos. En la forma más simple, el valor del color del objeto en el punto de intersección se convierte en el valor de ese píxel. El color se puede determinar a partir de un mapa de textura . Un método más sofisticado consiste en modificar el valor del color mediante un factor de iluminación, pero sin calcular la relación con una fuente de luz simulada. Para reducir los artefactos, se puede promediar una cantidad de rayos en direcciones ligeramente diferentes.

La proyección de rayos implica calcular la "dirección de la vista" (desde la posición de la cámara) y seguir gradualmente esa "difusión de rayos" a través de "objetos 3D sólidos" en la escena, mientras se acumula el valor resultante de cada punto en el espacio 3D. Esto está relacionado y es similar al "trazado de rayos", excepto que el raycast generalmente no "rebota" en las superficies (donde el "trazado de rayos" indica que está trazando la trayectoria de la luz, incluidos los rebotes). La "difusión de rayos" implica que el rayo de luz sigue un camino recto (que puede incluir viajar a través de objetos semitransparentes). La proyección de rayos es un vector que puede originarse desde la cámara o desde el punto final de la escena ("de atrás hacia adelante" o "de adelante hacia atrás"). A veces, el valor de la luz final se deriva de una "función de transferencia" y otras veces se utiliza directamente.

Además, se pueden emplear simulaciones aproximadas de propiedades ópticas: se realiza un cálculo sencillo del rayo desde el objeto hasta el punto de vista. Se realiza otro cálculo del ángulo de incidencia de los rayos de luz procedentes de la(s) fuente(s) de luz, y a partir de estos, así como de las intensidades especificadas de las fuentes de luz, se calcula el valor del píxel. Otra simulación utiliza la iluminación trazada a partir de un algoritmo de radiosidad o una combinación de estos dos.

trazado de rayos

Spiral Sphere y Julia, Detail , 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 incorporado.

El trazado de rayos tiene como objetivo simular el flujo natural de la 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 aplicándole métodos de Monte Carlo . Algunos de los métodos más utilizados son el path tracing , el path tracing bidireccional o el transporte ligero Metropolis , pero también se utilizan métodos semi realistas, como el Whitted Style Ray Tracing, o híbridos. Si bien la mayoría de las implementaciones permiten que la luz se propague en línea recta, existen aplicaciones para simular efectos relativistas del espacio-tiempo. [9]

En una representación final con calidad de producción de una obra con trazado de rayos, generalmente se disparan múltiples rayos para cada píxel y se rastrean no sólo 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 ópticas como "el ángulo de incidencia es igual al ángulo de reflexión" y leyes más avanzadas que se ocupan de 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 establecido de rebotes, entonces se evalúa la iluminación de la superficie en ese punto final usando las técnicas descritas anteriormente, y los cambios a lo largo del camino a través de los diversos rebotes se evalúan para estimar un valor observado en el punto de vista. Todo esto se repite para cada muestra, para cada píxel.

En el trazado de rayos de distribución , en cada punto de intersección, se pueden generar múltiples rayos. Sin embargo, en el rastreo de trayectorias , sólo se dispara un rayo o ninguno en cada intersección, utilizando la naturaleza estadística de los experimentos de Monte Carlo .

Como parte del enfoque conocido como renderizado basado físicamente , el trazado de ruta se ha convertido en la técnica dominante para renderizar escenas realistas, incluidos efectos para películas. [10] Por ejemplo, el popular software 3D de código abierto Blender utiliza el trazado de rutas en su renderizador Cycles. [11] Las imágenes producidas usando el trazado de trayectoria para la iluminación global son generalmente más ruidosas que cuando se usa radiosidad (el principal algoritmo competidor), 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 irradiancia . [10] [5] : 975-976, 1045 

La relativa simplicidad del trazado de rutas y su naturaleza como método Monte Carlo (muestreo de cientos o miles de rutas por píxel) lo hacen atractivo para implementarlo en una GPU , especialmente en GPU recientes que admiten tecnología de aceleración de trazado de rayos, como RTX y OptiX de Nvidia . [12] Se han desarrollado muchas técnicas para eliminar el ruido del resultado del rastreo de rutas, reduciendo el número de rutas necesarias para lograr una calidad aceptable, a riesgo de perder algunos detalles o introducir artefactos de pequeña escala que son más objetables que el ruido; [13] [14] Las redes neuronales se utilizan ahora ampliamente para este propósito. [15] [16] [17]

Los avances en la tecnología GPU han hecho posible el trazado de rayos en tiempo real en los juegos, aunque actualmente casi siempre se utiliza en combinación con la rasterización. [2] : 2  Esto permite efectos visuales que son difíciles solo con la rasterización, incluida la reflexión de superficies curvas y objetos interreflectantes, [18] : 305  y sombras que son precisas en una amplia gama de distancias y orientaciones de superficies. [19] : 159-160  La compatibilidad con el trazado de rayos se incluye en versiones recientes de las API de gráficos utilizadas por los juegos, como DirectX , Metal y Vulkan . [20]

Representación neuronal

La representación neuronal es un método de representación que utiliza redes neuronales artificiales . [21] [22] 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. [21] 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 convierte en un modelo 3D. También ha habido avances recientes en la generación y renderizado de modelos 3D a partir de texto y pinturas simples por parte de Nvidia , Google y varias otras empresas.

Radiosidad

La radiosidad es un método que intenta simular la forma en que las superficies iluminadas directamente actúan como fuentes de luz indirectas que iluminan otras superficies. Esto produce sombras más realistas y parece capturar mejor el " ambiente " de una escena interior. Un ejemplo clásico es la forma en que las sombras "abrazan" las esquinas de las habitaciones.

La base óptica de la simulación es que parte de la luz difusa desde un punto determinado sobre una superficie determinada se refleja en un amplio espectro de direcciones e ilumina el área a su alrededor.

La técnica de simulación puede variar en complejidad. Muchas representaciones tienen una estimación muy aproximada de la radiosidad, simplemente iluminando muy ligeramente una escena completa con un factor conocido como ambiente. Sin embargo, cuando la estimación avanzada de radiosidad se combina con un algoritmo de trazado de rayos de alta calidad, las imágenes pueden mostrar un realismo convincente, especialmente en escenas de interiores.

En la simulación avanzada de radiosidad, los algoritmos recursivos de elementos finitos "rebotan" la luz entre las superficies del modelo, hasta que se alcanza algún límite de recursividad. De este modo, la coloración de una superficie influye en la coloración de una superficie vecina y viceversa. Los valores de iluminación resultantes en todo el modelo (a veces incluso en espacios vacíos) se almacenan y se utilizan como entradas adicionales al realizar cálculos en un modelo de proyección o trazado de rayos.

Debido a la naturaleza iterativa/recursiva de la técnica, los objetos complejos son particularmente lentos de emular. Antes de la estandarización del cálculo rápido de la radiosidad, algunos artistas digitales utilizaban una técnica denominada vagamente radiosidad falsa oscureciendo áreas de mapas de textura correspondientes a esquinas, juntas y huecos, y aplicándolas mediante autoiluminación o mapeo difuso para la representación de líneas de exploración. Incluso ahora, los cálculos avanzados de radiosidad pueden reservarse para calcular el ambiente de la habitación, a partir de la luz que se refleja en las paredes, el suelo y el techo, sin examinar la contribución que los objetos complejos hacen a la radiosidad, o los objetos complejos pueden sustituirse en el cálculo de la radiosidad. con objetos más simples de tamaño y textura similares.

Los cálculos de radiosidad son independientes del punto de vista, lo que aumenta los cálculos involucrados, pero los hace útiles para todos los puntos de vista. Si hay poca reorganización de los objetos de radiosidad en la escena, los mismos datos de radiosidad se pueden reutilizar para varios fotogramas, lo que hace que la radiosidad sea una forma eficaz de mejorar la planitud de la proyección de rayos, sin afectar seriamente el tiempo de renderizado general por fotograma. .

Debido a esto, la radiosidad es un componente principal de los principales métodos de renderizado en tiempo real y se ha utilizado de principio a fin para crear una gran cantidad de largometrajes recientes de dibujos animados animados en 3D.

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 mediante el uso de 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 pueda visualizarse debe constar de al menos dos píxeles, lo cual 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 de color o intensidad, que sean más pequeños que un píxel.

Si se utiliza un algoritmo de renderizado ingenuo sin ningún filtrado, las altas frecuencias en la función de imagen provocarán la aparición de alias desagradables en la imagen final. El alias normalmente se manifiesta como irregularidades o bordes irregulares en los objetos donde la cuadrícula de píxeles es visible. Para eliminar el alias, todos los algoritmos de renderizado (si quieren producir imágenes atractivas) deben usar algún tipo de filtro de paso bajo en la función de imagen para eliminar las altas frecuencias, un proceso llamado antialiasing .

Mejoramiento

Debido a la gran cantidad de cálculos, un trabajo en progreso generalmente solo se presenta en detalle apropiado para la parte del trabajo que se está desarrollando en un momento dado, por lo que en las etapas iniciales del modelado, se pueden usar estructuras alámbricas y ray casting, incluso cuando el resultado objetivo es el trazado de rayos con radiosidad. También es común renderizar sólo partes de la escena con gran detalle y eliminar objetos que no son importantes para lo que se está desarrollando actualmente.

Para tiempo real, es apropiado simplificar una o más aproximaciones comunes y ajustar los parámetros exactos del escenario en cuestión, que también se ajusta a los parámetros acordados para obtener el máximo rendimiento.

Núcleo académico

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 aceptadas fuera del renderizado. Un conjunto particular de técnicas relacionadas se ha ido estableciendo gradualmente en la comunidad del renderizado.

Los conceptos básicos son moderadamente sencillos, pero difíciles de calcular; y un único algoritmo o enfoque elegante ha sido difícil de alcanzar para los renderizadores de propósito más general. Para satisfacer las demandas de robustez, precisión y practicidad, una implementación será una combinación compleja de diferentes técnicas.

La investigación de renderizado se ocupa tanto de la adaptación de modelos científicos como de su aplicación eficiente.

La ecuación de renderizado

Este es el concepto académico/teórico clave en el renderizado. Sirve como la expresión formal más abstracta del aspecto no perceptivo de la representación. Todos los algoritmos más completos pueden verse como soluciones a formulaciones particulares de esta ecuación.

Significado: en una posición y dirección particular, 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 (Li ) desde todas las direcciones, multiplicada por la reflexión de la superficie y el ángulo entrante. Al conectar la luz exterior con la luz interior, 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 función de distribución de reflectancia bidireccional (BRDF) expresa un modelo simple de interacción de la luz con una superficie de la siguiente manera:

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

El renderizado se ocupa prácticamente exclusivamente del aspecto partícula de la física de la luz, lo que se conoce 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 de aspecto ondulatorio notables 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 es necesario, se obtienen mediante un ajuste del modelo de reflexión orientado a la apariencia.

Percepción visual

Aunque recibe menos atención, la comprensión de la percepción visual humana es valiosa para el renderizado. Esto se debe principalmente a que la visualización 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 soportar tanto y hay que descartar o comprimir algo. La percepción humana también tiene límites, por lo que no es necesario proporcionar 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 podrían usarse en la simulación de renderizado, ya que ciertas sutilezas no serán perceptibles. Este tema relacionado es el mapeo tonal .

Las matemáticas utilizadas en la renderización incluyen: álgebra lineal , cálculo , matemáticas numéricas , procesamiento de señales y métodos de Monte Carlo .

El renderizado de películas a menudo se realiza en una red de computadoras estrechamente conectadas conocida como granja de renderizado .

El actual [ ¿cuándo? ] Lo último en descripción de imágenes 3-D para la creación de películas es el lenguaje de descripción de escenas Mental Ray diseñado en Mental Images y RenderMan Shading Language diseñado en Pixar [23] (compárese con formatos de archivos 3D más simples como VRML o API como OpenGL y DirectX diseñado para aceleradores de hardware 3D).

Otros renderizadores (incluidos los propietarios) pueden usarse y a veces se usan, pero la mayoría de los demás renderizadores tienden a pasar por alto una o más de las características que a menudo se necesitan, como un buen filtrado de texturas, almacenamiento en caché de texturas, sombreadores programables, tipos de geometría de alta gama como cabello, subdivisión o superficies nurbs con teselación bajo demanda, almacenamiento en caché de geometría, trazado de rayos con almacenamiento en caché de geometría, mapeo de sombras de alta calidad , velocidad o implementaciones sin patentes. Otras características muy buscadas hoy en día pueden incluir renderizado fotorrealista interactivo  (IPR) y renderizado/sombreado por hardware.

Cronología de ideas importantes publicadas.

Representación de un satélite ESTCube-1

Ver también

Referencias

  1. ^ abcde Haines, Eric; Shirley, Peter (25 de febrero de 2019). "1. Terminología de trazado de rayos". Ray Tracing Gems: renderizado de alta calidad y en tiempo real con DXR y otras API. Berkeley, CA: Apress. ISBN 978-1-4842-4427-2.
  2. ^ abcd Akenine-Möller, Tomas; Haines, Eric; Hoffman, Naty; Pesce, Ángel; Iwanicki, Michał; Hillaire, Sébastien (6 de agosto de 2018). «Capítulo 26 online. Trazado de rayos en tiempo real» (PDF) . Representación en tiempo real (4ª ed.). Boca Ratón, FL: AK Peters/CRC Press. ISBN 978-1138627000.
  3. ^ 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. ISBN 0-12-286160-4.
  4. ^ Kajiya, James T. (agosto de 1986). "La ecuación de representación". Computación SIGGRAPH. Grafico . 20 (4): 143-150. doi : 10.1145/15886.15902 . Consultado el 27 de enero de 2024 .
  5. ^ abcd Glassner, Andrew S. (2011) [1995]. Principios de síntesis de imágenes digitales (PDF) . 1.0.1. Morgan Kaufmann Publishers, Inc. ISBN 1-55860-276-3.
  6. ^ 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. ISBN 0-12-286160-4.
  7. ^ "Manual de Unity: Sondas de luz: Introducción". docs.unity3d.com . Consultado el 27 de enero de 2024 .
  8. ^ "Manual de Blender: Renderizado: EEVEE: Sondas de luz: Introducción". docs.blender.org . La Fundación Blender . Consultado el 27 de enero de 2024 .
  9. ^ "Trazado de rayos relativista: simulación de la apariencia visual de objetos que se mueven rápidamente". 1995. CiteSeerX 10.1.1.56.830 .  {{cite journal}}: Citar diario requiere |journal=( ayuda )
  10. ^ ab Pharr, Matt ; Jacob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "1,6". Representación basada físicamente: de la teoría a la implementación (4ª ed.). Cambridge, Massachusetts: Prensa del MIT. ISBN 978-0262048026.
  11. ^ "Manual de Blender: Renderizado: Ciclos: Introducción". docs.blender.org . La Fundación Blender . Consultado el 27 de enero de 2024 .
  12. ^ Pharr, Matt ; Jacob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "15. Representación de frente de onda en GPU". Representación basada físicamente: de la teoría a la implementación (4ª ed.). Cambridge, Massachusetts: Prensa del MIT. ISBN 978-0262048026.
  13. ^ Pharr, Matt ; Jacob, Wenzel; Humphreys, Greg (28 de marzo de 2023). "4. Lecturas adicionales: Eliminación de ruido". Representación basada físicamente: de la teoría a la implementación (4ª ed.). Cambridge, Massachusetts: Prensa del MIT. ISBN 978-0262048026.
  14. ^ "Manual de Blender: Renderizado: Ciclos: Optimización de renderizados: Reducción de ruido". docs.blender.org . La Fundación Blender . Consultado el 27 de enero de 2024 .
  15. ^ "Manual de Blender: Renderizado: Ciclos: Configuración de renderizado: Muestreo". docs.blender.org . La Fundación Blender . Consultado el 27 de enero de 2024 .
  16. ^ "Intel® Open Image Denoise: biblioteca de eliminación de ruido de alto rendimiento para trazado de rayos". www.openimagedenoise.org . Corporación Intel . Consultado el 27 de enero de 2024 .
  17. ^ "Eliminador de ruido acelerado por IA NVIDIA OptiX ™". desarrollador.nvidia.com . Corporación NVIDIA . Consultado el 27 de enero de 2024 .
  18. ^ Liu, Eduardo; Llamas, Ignacio; Cañada, Juan; Kelly, Patrick (25 de febrero de 2019). "19: Representación cinematográfica en UE4 con eliminación de ruido y trazado de rayos en tiempo real". Ray Tracing Gems: renderizado de alta calidad y en tiempo real con DXR y otras API. Berkeley, CA: Apress. ISBN 978-1-4842-4427-2.
  19. ^ Boksansky, Jakub; Wimmer, Michael; Bittner, Jiri (25 de febrero de 2019). "13. Sombras con trazado de rayos: mantenimiento de velocidades de fotogramas en tiempo real". Ray Tracing Gems: renderizado de alta calidad y en tiempo real con DXR y otras API. Berkeley, CA: Apress. ISBN 978-1-4842-4427-2.
  20. ^ "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 .
  21. ^ 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.
  22. ^ Caballero, voluntad. "Un nuevo truco permite a la inteligencia artificial ver en 3D". Cableado . ISSN  1059-1028 . Consultado el 8 de febrero de 2022 .
  23. ^ Raghavacchary, Saty (30 de julio de 2006). "Una breve introducción a RenderMan". ACM SIGGRAPH 2006 Cursos sobre - SIGGRAPH '06 . ACM. pag. 2. doi :10.1145/1185657.1185817. ISBN 978-1595933645. S2CID  34496605 . Consultado el 7 de mayo de 2018 , a través de dl.acm.org.
  24. ^ Appel, A. (1968). "Algunas técnicas para sombrear representaciones mecánicas de sólidos" (PDF) . Actas de la conferencia informática conjunta de primavera . vol. 32. págs. 37–49. Archivado (PDF) desde el original el 13 de marzo de 2012.
  25. ^ Bouknight, WJ (1970). "Un procedimiento para la generación de presentaciones gráficas por computadora tridimensionales de medios tonos". Comunicaciones de la ACM . 13 (9): 527–536. doi : 10.1145/362736.362739 . S2CID  15941472.
  26. ^ Gouraud, H. (1971). «Sombreado continuo de superficies curvas» (PDF) . Transacciones IEEE en computadoras . 20 (6): 623–629. doi :10.1109/tc.1971.223313. S2CID  123827991. Archivado desde el original (PDF) el 2 de julio de 2010.
  27. ^ abcd "Historia | Escuela de Computación". Archivado desde el original el 3 de diciembre de 2013 . Consultado el 22 de noviembre de 2021 .
  28. ^ 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. 
  29. ^ Bui Tuong Phong, Iluminación para imágenes generadas por computadora Archivado el 20 de marzo de 2016 en Wayback Machine , Comunicaciones de ACM 18 (1975), no. 6, 311–317.
  30. ^ ab Putas. "El camino a casa 3d". vintage3d.org . Archivado desde el original el 15 de diciembre de 2017 . Consultado el 7 de mayo de 2018 .
  31. ^ ab Catmull, E. (1974). Un algoritmo de subdivisión para la visualización por computadora de superficies curvas (PDF) (tesis doctoral). Universidad de Utah. Archivado desde el original (PDF) el 14 de noviembre de 2014 . Consultado el 15 de julio de 2011 .
  32. ^ Blinn, JF ; Newell, ME (1976). "Textura y reflejo en imágenes generadas por computadora". Comunicaciones de la ACM . 19 (10): 542–546. CiteSeerX 10.1.1.87.8903 . doi :10.1145/360349.360353. S2CID  408793. 
  33. ^ Blinn, James F. (20 de julio de 1977). "Modelos de reflexión de la luz para imágenes sintetizadas por computadora". Gráficos por computadora ACM SIGGRAPH . 11 (2): 192–198. doi : 10.1145/965141.563893 – vía dl.acm.org.
  34. ^ "Bomber - Videojuego de Sega". www.arcade-museum.com . Archivado desde el original el 17 de octubre de 2017 . Consultado el 7 de mayo de 2018 .
  35. ^ Cuervo, FC (1977). "Algoritmos de sombras para gráficos por computadora" (PDF) . Gráficos por computadora (actas de SIGGRAPH 1977) . vol. 11. págs. 242–248. Archivado desde el original (PDF) el 13 de enero de 2012 . Consultado el 15 de julio de 2011 .
  36. ^ Williams, L. (1978). "Proyectar sombras curvas sobre superficies curvas". Gráficos por computadora (actas de SIGGRAPH 1978) . vol. 12. págs. 270–274. CiteSeerX 10.1.1.134.8225 . 
  37. ^ Blinn, JF (1978). Simulación de superficies arrugadas (PDF) . Gráficos por computadora (Actas de SIGGRAPH 1978). vol. 12. págs. 286–292. Archivado (PDF) desde el original el 21 de enero de 2012.
  38. ^ Wolf, Mark JP (15 de junio de 2012). Antes del colapso: historia temprana de los videojuegos. Prensa de la Universidad Estatal de Wayne. ISBN 978-0814337226. Archivado desde el original el 2 de mayo de 2019 . Consultado el 7 de mayo de 2018 a través de Google Books.
  39. ^ Fuchs, H .; Kedem, ZM; Naylor, BF (1980). "Sobre generación de superficie visible mediante estructuras de árboles a priori ". Gráficos por computadora (Actas de SIGGRAPH 1980). vol. 14. págs. 124-133. CiteSeerX 10.1.1.112.4406 . 
  40. ^ Whitted, T. (1980). "Un modelo de iluminación mejorado para pantallas sombreadas". Comunicaciones de la ACM . 23 (6): 343–349. CiteSeerX 10.1.1.114.7629 . doi :10.1145/358876.358882. S2CID  9524504. 
  41. ^ Purcaru, Bogdan Ion (13 de marzo de 2014). "Juegos versus hardware. La historia de los videojuegos para PC: los años 80". Purcaru Ion Bogdan. Archivado desde el original el 30 de abril de 2021 . Consultado el 7 de mayo de 2018 a través de Google Books.
  42. ^ "Sistema 16 - Hardware de objetos Sega VCO (Sega)". www.system16.com . Archivado desde el original el 5 de abril de 2016 . Consultado el 7 de mayo de 2018 .
  43. ^ Cocinero, RL ; Torrance, KE (1981). Un modelo de reflectancia para gráficos por computadora . Gráficos por computadora (Actas de SIGGRAPH 1981). vol. 15. págs. 307–316. CiteSeerX 10.1.1.88.7796 . 
  44. ^ Williams, L. (1983). Paramétricas piramidales . Gráficos por computadora (Actas de SIGGRAPH 1983). vol. 17. págs. 1-11. CiteSeerX 10.1.1.163.6298 . 
  45. ^ Glassner, AS (1984). "Subdivisión espacial para trazado de rayos rápido". Aplicaciones y gráficos por computadora IEEE . 4 (10): 15-22. doi :10.1109/mcg.1984.6429331. S2CID  16965964.
  46. ^ Portero, T.; Duff, T. (1984). Composición de imágenes digitales (PDF) . Gráficos por computadora (Actas de SIGGRAPH 1984). vol. 18. págs. 253–259. Archivado (PDF) desde el original el 16 de febrero de 2015.
  47. ^ Cocinero, RL ; Portero, T.; Carpintero, L. (1984). Trazado de rayos distribuido (PDF) . Gráficos por computadora (Actas de SIGGRAPH 1984). vol. 18. págs. 137-145.[ enlace muerto permanente ]
  48. ^ Goral, C.; Torrance, KE; Greenberg, DP ; Battaile, B. (1984). Modelado de la interacción de la luz entre superficies difusas . Gráficos por computadora (Actas de SIGGRAPH 1984). vol. 18. págs. 213–222. CiteSeerX 10.1.1.112.356 . 
  49. ^ "Copia archivada". Archivado desde el original el 4 de marzo de 2016 . Consultado el 8 de agosto de 2016 .{{cite web}}: Mantenimiento CS1: copia archivada como título ( enlace )
  50. ^ Cohen, MF ; Greenberg, DP (1985). El hemicubo: una solución de radiosidad para entornos complejos (PDF) . Gráficos por computadora (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 .
  51. ^ Arvo, J. (1986). Trazado de rayos hacia atrás . SIGGRAPH 1986 Notas del curso Desarrollos en Ray Tracing. CiteSeerX 10.1.1.31.581 . 
  52. ^ Kajiya, J. (1986). La ecuación de renderizado . Gráficos por computadora (Actas de SIGGRAPH 1986). vol. 20. págs. 143-150. CiteSeerX 10.1.1.63.1402 . 
  53. ^ Cocinero, RL ; Carpintero, L .; Catmull, E. (1987). La arquitectura de representación de imágenes de Reyes (PDF) . Gráficos por computadora (Actas de SIGGRAPH 1987). vol. 21. págs. 95-102. Archivado (PDF) desde el original el 15 de julio de 2011.
  54. ^ abc "MAME | SRC/Mame/Drivers/Namcos21.c". Archivado desde el original el 3 de octubre de 2014 . Consultado el 2 de octubre de 2014 .
  55. ^ Wu, Xiaolin (julio de 1991). "Una técnica de antialiasing eficaz". Gráficos por computadora ACM SIGGRAPH . 25 (4): 143-152. doi :10.1145/127719.122734. ISBN 978-0-89791-436-9.
  56. ^ 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.
  57. ^ Hanrahan, P .; Salzman, D .; Aupperle, L. (1991). "Un algoritmo rápido de radiosidad jerárquica ". Gráficos por computadora (Actas de SIGGRAPH 1991). vol. 25. págs. 197-206. CiteSeerX 10.1.1.93.5694 . 
  58. ^ "IGN presenta la historia de SEGA". ign.com . 21 de abril de 2009. Archivado desde el original el 16 de marzo de 2018 . Consultado el 7 de mayo de 2018 .
  59. ^ "Sistema 16 - Hardware Sega Modelo 2 (Sega)". www.system16.com . Archivado desde el original el 21 de diciembre de 2010 . Consultado el 7 de mayo de 2018 .
  60. ^ abcd "Sistema 16 - Hardware del simulador Namco Magic Edge Hornet (Namco)". www.system16.com . Archivado desde el original el 12 de septiembre de 2014 . Consultado el 7 de mayo de 2018 .
  61. ^ M. Oren y SK Nayar, "Generalización del modelo de reflectancia de Lambert Archivado el 15 de febrero de 2010 en la Wayback Machine ". SÍGRAFO. pp.239-246, julio de 1994
  62. ^ Tumblin, J.; Rushmeier, HE (1993). "Reproducción de tonos para imágenes realistas generadas por computadora" (PDF) . Aplicaciones y gráficos por computadora IEEE . 13 (6): 42–48. doi : 10.1109/38.252554. S2CID  6459836. Archivado (PDF) desde el original el 8 de diciembre de 2011.
  63. ^ Hanrahan, P .; Krueger, W. (1993). "Reflexión de superficies en capas debido a la dispersión del subsuelo ". Gráficos por computadora (Actas de SIGGRAPH 1993). vol. 27. págs. 165-174. CiteSeerX 10.1.1.57.9761 . 
  64. ^ Miller, Gavin (24 de julio de 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 . ACM. págs. 319–326. doi :10.1145/192161.192244. ISBN 978-0897916677. S2CID  15271113. Archivado desde el original el 22 de noviembre de 2021 . Consultado el 7 de mayo de 2018 , a través de dl.acm.org.
  65. ^ "Copia archivada" (PDF) . Archivado (PDF) desde el original el 11 de octubre de 2016 . Consultado el 8 de agosto de 2016 .{{cite web}}: Mantenimiento CS1: copia archivada como título ( enlace )
  66. ^ Jensen, HW ; Christensen, Nueva Jersey (1995). "Mapas de fotones en trazado de rayos montecarlo bidireccional de objetos complejos". Computadoras y gráficos . 19 (2): 215–224. CiteSeerX 10.1.1.97.2724 . doi :10.1016/0097-8493(94)00145-o. 
  67. ^ "Sistema 16 - Hardware Sega Modelo 3 Paso 1.0 (Sega)". www.system16.com . Archivado desde el original el 6 de octubre de 2014 . Consultado el 7 de mayo de 2018 .
  68. ^ Veach, E .; Guibas, L. (1997). Transporte ligero de Metrópolis . Gráficos por computadora (Actas de SIGGRAPH 1997). vol. 16. págs. 65–76. CiteSeerX 10.1.1.88.944 . 
  69. ^ Keller, A. (1997). Radiosidad instantánea . Gráficos por computadora (Actas de SIGGRAPH 1997). vol. 24. págs. 49–56. CiteSeerX 10.1.1.15.240 . 
  70. ^ "Revisión de hardware: especificaciones y características del Neon 250". Sharkyextreme.com . Archivado desde el original el 7 de agosto de 2007 . Consultado el 22 de noviembre de 2021 .
  71. ^ Lewis, JP; Cordner, Matt; Fong, Nickson (1 de julio de 2000). "Deformación del espacio de pose: un enfoque unificado para la interpolación de formas y la deformación impulsada por el esqueleto". Actas de la 27ª conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '00 . ACM Press/Addison-Wesley Publishing Co. págs. 165-172. doi :10.1145/344779.344862. ISBN 978-1581132083. S2CID  12672235 – vía dl.acm.org.
  72. ^ Sloan, P.; Kautz, J.; Snyder, J. (2002). Transferencia de radiación precalculada para renderizado en tiempo real en entornos de iluminación dinámicos y 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.

Otras lecturas

enlaces externos