Articulo de referencia

Iluminación por píxel

En gráficos por computadora , la iluminación por píxel se refiere a cualquier técnica para iluminar una imagen o escena que calcula la iluminación para cada píxel en una imagen ...

En gráficos por computadora , la iluminación por píxel se refiere a cualquier técnica para iluminar una imagen o escena que calcula la iluminación para cada píxel en una imagen renderizada. Esto contrasta con otros métodos populares de iluminación, como la iluminación por vértice , que calcula la iluminación en cada vértice de un modelo 3D y luego interpola los valores resultantes sobre las caras del modelo para calcular los valores de color finales por píxel.

La iluminación por píxel se usa comúnmente con técnicas como mezcla , mezcla alfa , alfa a cobertura , suavizado de bordes , filtrado de texturas , recorte , determinación de superficies ocultas , Z-buffering , stencil buffering , sombreado , mipmapping , mapeo normal , mapeo de relieve , mapeo de desplazamiento , mapeo de paralaje , mapeo de sombras , mapeo especular , volúmenes de sombras , renderizado de alto rango dinámico , oclusión ambiental ( oclusión ambiental en espacio de pantalla , oclusión direccional en espacio de pantalla , oclusión ambiental con trazado de rayos ), trazado de rayos , iluminación global y teselación . Cada una de estas técnicas proporciona datos adicionales sobre la superficie iluminada o la escena y las fuentes de luz que contribuyen al aspecto final de la superficie.

La mayoría de los motores de videojuegos modernos implementan la iluminación mediante técnicas por píxel en lugar de iluminación por vértice para lograr mayor detalle y realismo. El motor id Tech 4 , utilizado para desarrollar juegos como Brink y Doom 3 , fue uno de los primeros en implementar un sistema de sombreado completamente por píxel. Todas las versiones de CryENGINE , Frostbite Engine y Unreal Engine , entre otros, también implementan técnicas de sombreado por píxel.

El sombreado diferido es un desarrollo reciente en la iluminación por píxel, notable por su uso en el motor Frostbite y Battlefield 3. Las técnicas de sombreado diferido son capaces de renderizar un número potencialmente grande de luces pequeñas de forma económica (otros enfoques de iluminación por píxel requieren cálculos de pantalla completa para cada luz en una escena, independientemente de su tamaño). [ 1 ]

Historia

Si bien solo recientemente las computadoras personales y el hardware de video se han vuelto lo suficientemente potentes como para realizar un sombreado completo por píxel en aplicaciones en tiempo real como los videojuegos, muchos de los conceptos básicos utilizados en los modelos de iluminación por píxel existen desde hace décadas.

Frank Crow publicó un artículo en 1977 que describía la teoría de los volúmenes de sombra. [ 2 ] Esta técnica utiliza el búfer de plantilla para especificar áreas de la pantalla que corresponden a superficies que se encuentran dentro de un "volumen de sombra", o una forma que representa un volumen de espacio eclipsado por algún objeto respecto a una fuente de luz. Estas áreas sombreadas suelen sombrearse después de que la escena se renderiza en los búferes, almacenándolas con el búfer de plantilla.

Jim Blinn introdujo por primera vez la idea del mapeo de normales en un artículo de SIGGRAPH de 1978. [ 3 ] Blinn señaló que la idea anterior de mapeo de texturas sin iluminación propuesta por Edwin Catmull no era realista para simular superficies rugosas. En lugar de mapear una textura sobre un objeto para simular la rugosidad, Blinn propuso un método para calcular el grado de iluminación que un punto de una superficie debería recibir basándose en una "perturbación" establecida de las normales a través de la superficie.

Renderizado por hardware

Las aplicaciones en tiempo real, como los videojuegos , suelen implementar la iluminación píxel a píxel mediante sombreadores de píxeles , lo que permite que el hardware de la GPU procese el efecto. La escena que se va a renderizar se rasteriza primero en varios búferes que almacenan diferentes tipos de datos para su renderizado, como profundidad, dirección normal y color difuso. A continuación, estos datos se pasan a un sombreador y se utilizan para calcular el aspecto final de la escena, píxel a píxel.

El sombreado diferido es una técnica de sombreado por píxel que recientemente se ha vuelto viable para los videojuegos. [ 4 ] Con el sombreado diferido, se utiliza un "búfer g" para almacenar todos los términos necesarios para sombrear una escena final a nivel de píxel. El formato de estos datos varía según la aplicación y el efecto deseado, y puede incluir datos normales, posicionales, especulares , difusos , mapas emisivos y albedo , entre otros. Mediante el uso de múltiples objetivos de renderizado, todos estos datos se pueden renderizar en el búfer g con una sola pasada, y un sombreador puede calcular el color final de cada píxel basándose en los datos del búfer g en una "pasada diferida" final. Dado que el sombreado diferido asume solo un fragmento visible por muestra de píxel, los objetos transparentes generalmente se manejan en una pasada directa separada. [ 5 ]

Forward+ (también conocido como sombreado directo en mosaico) es una evolución que agrega una etapa de eliminación de luces mediante sombreadores de cómputo a la canalización de renderizado directo. Al eliminar las luces en mosaicos del espacio de la pantalla, puede admitir miles de luces manteniendo la compatibilidad con la transparencia y el antialiasing multisample (MSAA). [ 6 ] El sombreado agrupado es un refinamiento adicional que subdivide el frustum de visión en grupos 3D para manejar las discontinuidades de profundidad de manera más eficiente. [ 7 ]

Renderizado por software

La iluminación por píxel también se realiza mediante software en muchas aplicaciones de renderizado comerciales de alta gama que normalmente no renderizan a velocidades de fotogramas interactivas. Esto se conoce como renderizado offline o renderizado por software . El software de renderizado mental ray de Nvidia , integrado en suites como Softimage de Autodesk , es un ejemplo bien conocido.

Véase también

Notas

  1. "Renderizado directo frente a renderizado diferido" .
  2. Crow, Franklin C: "Algoritmos de sombra para gráficos por computadora", Computer Graphics (Actas de SIGGRAPH '77) , vol. 11, n.° 2, 242-248.
  3. Blinn, James F. "Simulación de superficies arrugadas", Computer Graphics (Actas de SIGGRAPH '78 , vol. 12, n.º 3, 286-292.
  4. Hargreaves, Shawn y Mark Harris: "6800 leguas de viaje submarino: sombreado diferido". Recursos para desarrolladores de NVidia.
  5. "Sombreado diferido para transparencia independiente del orden" . Asociación Eurographics.
  6. Harada, Takahiro; McKee, Jay; Yang, Jason C. (2012). "Forward+: Llevando la iluminación diferida al siguiente nivel" (PDF) . Eurographics.
  7. ^ Olsson, Ola; Billeter, Markus; Assarsson, Ulf (2012). "Sombreado adelantado y diferido agrupado" (PDF) . Gráficos de alto rendimiento.