O rastreamento de caminho é a técnica padrão na renderização fotorrealista não em tempo real, e você deve procurar especificamente o rastreamento de caminho bidirecional para obter efeitos como cáusticos, que você realmente não pode obter com o rastreamento de caminho básico. O rastreamento de caminho bidirecional também converge mais rapidamente para a verdade do solo, como mostrado na imagem abaixo:
O transporte leve Metropolis (MLT) também é uma técnica mais avançada de rastreamento de caminho que converge ainda mais rapidamente para a verdade do solo, modificando os caminhos "bons" existentes:
Você também pode usar amostragem de importância para convergência mais rápida, concentrando mais raios nas direções que importam mais. Ou seja, concentrando raios baseados em BRDF (mais para o pico de BRDF usando a função de densidade de probabilidade) ou para a fonte de luz, ou obtenha o melhor dos dois mundos e use a amostragem de importância múltipla.
É tudo sobre reduzir o ruído de maneira imparcial. Existem também técnicas de denoising para reduzir ainda mais o ruído nas imagens renderizadas.
Eu acho que é melhor implementar primeiro o traçador de caminho básico de Monte Carlo de força bruta para servir como referência imparcial antes de examinar as técnicas mais avançadas. É muito fácil cometer erros e introduzir desvios que passam despercebidos; portanto, é bom ter uma implementação simples para referência.
Você também pode obter resultados muito bons aplicando o rastreamento de caminho na mídia participante, mas isso fica lento muito rápido: D
Embora eu não soubesse sobre o rastreamento de caminhos de Monte Carlo quando escrevi isso, descrevi-o acidentalmente. Ironicamente, o rastreamento de caminhos de Monte Carlo é a resposta que eu estava procurando na época.
O rastreamento de caminho ingênuo de monte carlo funciona avaliando algo chamado equação de renderização para resolver numericamente o valor da cor de um pixel. Ele pega amostras aleatórias tremendo aleatoriamente dentro de um pixel (existem melhores estratégias de amostragem e filtragem: qual é o raciocínio fundamental para anti-aliasing usando várias amostras aleatórias dentro de um pixel? ) E também saltando em direções aleatórias quando um raio atinge uma superfície .
Pode levar muitas amostras para obter bons resultados e, com poucas amostras, sua imagem ficará barulhenta. São necessárias quatro vezes mais amostras para reduzir o ruído pela metade. O tempo de renderização pode ser da ordem de uma hora usando 8 núcleos modernos de CPU para uma cena simples.
Existem técnicas mais avançadas de rastreamento de caminho de monte carlo que permitem obter imagens melhores com mais rapidez, como amostragem importante ou suavização da imagem após a renderização.
O rastreamento de caminho de Monte Carlo pode criar imagens fotorrealistas e oferece muitos recursos avançados de renderização, apenas porque segue as leis da física e fornece resultados realistas.
Você pode ler mais sobre isso aqui: http://blog.demofox.org/2016/09/21/path-tracing-getting-started-with-diffuse-and-emissive/
Aqui está um exemplo de imagem, que levou cerca de uma hora para renderizar usando todos os 8 dos meus núcleos de CPU:
fonte