3 pontos por GN⁺ 2024-04-16 | 1 comentários | Compartilhar no WhatsApp

Entendendo o ray tracing por meio do espectro

Uma explicação de base sobre por que o comprimento de onda é importante no ray tracing e qual é o impacto do ray tracing espectral na arte computacional.

Ray tracing

  • Iluminar uma cena modelando o caminho em que os raios se deslocam, ricocheteando repetidamente entre objetos virtuais entre a câmera virtual e as fontes de luz
  • Muitos atalhos são adotados por desempenho
    • Ex.: rastrear ao contrário o caminho dos raios, das fontes de luz até a câmera
    • Tratar os raios como partículas que carregam vetores RGB correspondentes à "cor" e ignorar suas propriedades ondulatórias
  • O atalho do RGB funciona bem por causa da forma como nossos olhos funcionam
    • Nossos olhos têm três tipos de células detectoras de cor sensíveis ao comprimento de onda (cones SML)

Vendo o espectro

  • As cores que vemos raramente são formadas por um único comprimento de onda; elas são compostas por SPD (spectral power distribution), um conjunto de muitos comprimentos de onda
  • Uma única cor pode corresponder a várias SPDs (metamerismo)
    • Ex.: o amarelo corresponde ao comprimento de onda de 580nm, mas também pode ser reproduzido por uma mistura de luz vermelha e verde
  • A conversão de SPD para cor é possível de forma puramente matemática (espaço de cores CIE 1931)
    • Um elo quantitativo que conecta física, fisiologia e experiência subjetiva

Quando o comprimento de onda importa

  • Quando as propriedades ondulatórias dos raios afetam diretamente o caminho que eles percorrem pela cena
    • Ex.: dispersão (prisma), interferência de filme fino (o padrão de arco-íris em bolhas de sabão)
  • A interferência de filme fino não divide o espectro em comprimentos de onda isolados; ela aumenta ou reduz a contribuição de partes do espectro, criando cores não espectrais como verde-azulado e marrom

Ray tracing espectral e arte computacional

  • Ray tracing que considera as propriedades ondulatórias dos raios
  • Em vez de cores RGB, gera uma SPD para cada pixel da cena e usa o comprimento de onda e a fase dos raios para prever melhor as cores
  • Desperta curiosidade sobre o que acontece quando algumas das leis que governam o transporte de luz são quebradas intencionalmente
    • Construir em código uma câmera em um universo um pouco diferente do nosso
  • Apresentação de obras criadas com um ray tracer espectral escrito em JavaScript e GLSL

Opinião do GN⁺

  • Explica bem os fenômenos físicos que precisam ser considerados para renderização realista em computação gráfica
    • Em especial, foi marcante a parte que relaciona isso à forma como nossos olhos percebem as cores
  • É bom ver casos aplicados diretamente à criação de obras de arte, pois isso ajuda a entender como o conteúdo teórico é usado na prática
    • É interessante como, ao modificar a forma de ray tracing, surgem imagens irreais, mas belas
  • Além de simulação óptica, a tecnologia de ray tracing espectral parece poder ser usada em várias áreas, como visualização de dados científicos, VR/AR e CG para cinema
  • Com o avanço das técnicas de renderização baseadas em deep learning, continuam surgindo tentativas de superar as limitações do ray tracing tradicional
    • Fica a expectativa sobre quais tecnologias de renderização inovadoras serão criadas no futuro

1 comentários

 
GN⁺ 2024-04-16
Comentários no Hacker News
  • O e-book gratuito "Ray Tracing Gems II" aborda ray tracing em GPU em tempo real usando APIs modernas e aceleração por hardware, e inclui um capítulo sobre renderização espectral (Chapter 42: Efficient spectral rendering on the GPU for predictive rendering)
  • São apresentados exemplos de ray tracers espectrais como Mitsuba, Maxwell e Manuka, da Wētā FX
    • Mitsuba: renderizador de pesquisa open source. Oferece vários recursos, como renderização diferenciável
    • Maxwell: oferece dois modos espectrais com diferentes níveis de precisão. O modo mais complexo é usado com frequência em óptica
    • Manuka: baseado em espectro e usado em vários filmes
  • Comentário do autor da postagem original:
    • A renderização espectral é um exemplo de que o ray tracing em si não é o ponto final da renderização. Há quem diga que a renderização foi resolvida com ray tracing em tempo real, mas isso está longe da realidade
    • A maioria dos sistemas de renderização espectral não lida com interferência de filme fino nem com outros efeitos baseados em ondas. Há uma quantidade surpreendente de detalhes no mundo real
  • Proposta de geração de imagens hiperespectrais (mais de 3 canais):
    • É possível enfatizar o espectro para uso em educação infantil sobre cores
    • Imagens e câmeras hiperespectrais são raras e tradicionalmente caras, mas poderiam ser substituídas por imagens sintéticas
    • Talvez fosse possível lidar de forma interativa com iluminação e materiais em um renderizador no navegador com resolução muito baixa
    • Seria possível renderizar do ponto de vista de pessoas com percepção de cor atípica, de humanos que conseguem ver UV após remoção de catarata, de mamíferos daltônicos ou de carpas tetracromáticas
  • Implementar ray tracing diretamente é surpreendentemente fácil. Recomendam-se livros gratuitos ou tutoriais de GPU baseados em Unity
    • Dá para ganhar intuição brincando com uma implementação básica (por exemplo, implementando raios como partículas atraídas ou repelidas por objetos, ou reutilizando o último ângulo de reflexão no material seguinte)
    • A maioria dos resultados não parecia boa, mas ainda assim ajudou a desenvolver intuição. Mover a câmera aos poucos também ajuda
  • Fica a curiosidade se alterações feitas em busca de beleza também poderiam ser úteis em outras visualizações
  • Tentativa de implementar refração em um ray tracer distribuído
    • Amostrar frequências aleatoriamente, calcular a cor e modular a cor do raio
    • Como a cor de refração pura tem brilho de 1/3, é preciso multiplicar o resultado por 3
  • Gostaria de saber mais sobre a arte compartilhada no fim do texto. A ideia de renderizar uma realidade em que a luz se comporta de forma diferente da nossa é fascinante
  • Quero entender o impacto no desempenho do ray tracing ao modelar distribuições espectrais em vez de pixels RGB