3 puntos por GN⁺ 2024-04-16 | 1 comentarios | Compartir por WhatsApp

Entender el ray tracing a través del espectro

Una explicación de contexto sobre por qué la longitud de onda es importante en el ray tracing y el impacto del ray tracing espectral en el arte por computadora.

Ray tracing

  • Iluminar una escena modelando la trayectoria en la que los rayos rebotan repetidamente entre objetos virtuales mientras viajan entre una cámara virtual y las fuentes de luz
  • Se toman muchos atajos por rendimiento
    • Ejemplo: rastrear en sentido inverso la trayectoria de los rayos desde la fuente de luz hacia la cámara
    • Tratar los rayos como partículas que transportan un vector RGB correspondiente al "color" e ignorar sus propiedades ondulatorias
  • El atajo de RGB funciona bien por la forma en que operan nuestros ojos
    • Nuestros ojos tienen tres tipos de células detectoras de color sensibles a distintas longitudes de onda (conos SML)

Ver el espectro

  • El color que vemos rara vez está compuesto por una sola longitud de onda; normalmente está formado por una SPD (spectral power distribution), es decir, un conjunto de muchas longitudes de onda
  • Un solo color puede corresponder a varias SPD (metamerismo)
    • Ejemplo: el amarillo corresponde a una longitud de onda de 580nm, pero también puede reproducirse mezclando luz roja y verde
  • La conversión de SPD a color es posible de forma puramente matemática (espacio de color CIE 1931)
    • Un vínculo cuantitativo que conecta física, fisiología y experiencia subjetiva

Casos en los que la longitud de onda importa

  • Cuando las propiedades ondulatorias de los rayos afectan directamente la trayectoria que siguen a través de la escena
    • Ejemplo: dispersión (prisma), interferencia de película delgada (los patrones arcoíris de las burbujas de jabón)
  • La interferencia de película delgada no divide el espectro en longitudes de onda individuales, sino que aumenta o reduce la contribución de partes del espectro para crear colores no espectrales como verde azulado y marrón

Ray tracing espectral y arte por computadora

  • Ray tracing que toma en cuenta las propiedades ondulatorias de los rayos
  • En lugar de colores RGB, genera una SPD para cada píxel de la escena y usa la longitud de onda y la fase de los rayos para predecir mejor el color
  • Despierta curiosidad sobre qué ocurre cuando se rompen intencionalmente algunas de las leyes que gobiernan el movimiento de la luz
    • Construir con código una cámara en un universo un poco distinto al nuestro
  • Presenta obras creadas con un ray tracer espectral escrito en JavaScript y GLSL

La opinión de GN⁺

  • Explica bien los fenómenos físicos que deben considerarse para lograr renderizado realista en gráficos por computadora
    • En particular, resulta impactante la parte que lo conecta con la forma en que nuestros ojos perciben el color
  • Es bueno que muestre casos usados directamente en la creación de obras artísticas, porque permite ver cómo la teoría se aplica en la práctica
    • Resulta interesante que, al modificar la forma de hacer ray tracing, se puedan crear imágenes irreales pero hermosas
  • Además de la simulación óptica, parece que la tecnología de ray tracing espectral podría aplicarse en varios campos, como visualización de datos científicos, VR/AR y CG para cine
  • A medida que avanza la tecnología de renderizado basada en deep learning, siguen apareciendo intentos de superar las limitaciones del ray tracing tradicional
    • Dan ganas de ver qué tecnologías de renderizado innovadoras surgirán en el futuro

1 comentarios

 
GN⁺ 2024-04-16
Opinión de Hacker News
  • El ebook gratuito "Ray Tracing Gems II" trata sobre ray tracing de GPU en tiempo real usando APIs modernas y aceleración por hardware, e incluye un capítulo sobre renderizado espectral (Chapter 42: Efficient spectral rendering on the GPU for predictive rendering)
  • Se presentan ejemplos de trazadores de rayos espectrales como Mitsuba, Maxwell y Manuka de Wētā FX
    • Mitsuba: renderizador de investigación de código abierto. Ofrece varias funciones, como renderizado diferenciable
    • Maxwell: ofrece dos modos espectrales con distintos niveles de precisión. El método más complejo se usa con frecuencia en óptica
    • Manuka: está basado en espectro y se ha usado en varias películas
  • Comentario del autor de la publicación original:
    • El renderizado espectral es un ejemplo de que el ray tracing en sí no es el punto final del renderizado. Hay quienes opinan que el renderizado ya quedó resuelto con el ray tracing en tiempo real, pero eso está lejos de la realidad
    • La mayoría de los sistemas de renderizado espectral no manejan interferencia de película delgada ni otros efectos basados en ondas. En la realidad existen una cantidad sorprendente de detalles
  • Propuesta de generar imágenes hiperespectrales (más de 3 canales):
    • Podría usarse para educación infantil sobre color al enfatizar el espectro
    • Las imágenes y cámaras hiperespectrales son raras y tradicionalmente han sido caras, pero podrían sustituirse con imágenes sintéticas
    • Tal vez un renderizador dentro del navegador, de muy baja resolución, podría permitir manipular de forma interactiva la iluminación y los materiales
    • Se podría renderizar desde la perspectiva de personas con percepción anómala del color, humanos que pueden ver hasta UV después de una cirugía de cataratas, mamíferos daltónicos o carpas tetracrómatas
  • Intentar implementar ray tracing uno mismo es sorprendentemente fácil. Se recomiendan libros gratuitos o tutoriales de GPU basados en Unity
    • Jugar con una implementación básica ayuda a desarrollar intuición (por ejemplo, implementar rayos como partículas atraídas o repelidas por objetos, o recordar el último ángulo de reflexión para usarlo en el siguiente material)
    • La mayoría de los resultados no se veían bien, pero aun así sirvieron para ganar intuición. Mover la cámara poco a poco también ayuda
  • Me pregunto si las modificaciones hechas por estética podrían ser útiles en otras visualizaciones
  • Alguien está intentando implementar refracción en un trazador de rayos distribuido
    • Muestrear frecuencias al azar, calcular el color y modular con ello el color del rayo
    • Como el color de refracción puro tiene un brillo de 1/3, hay que multiplicar el resultado por 3
  • Quisiera saber más sobre la obra compartida al final del texto. Resulta atractiva la idea de renderizar una realidad en la que la luz actúa de una manera distinta a la nuestra
  • Quiero entender cómo afecta al rendimiento del ray tracing modelar distribuciones espectrales en lugar de píxeles RGB