O termo "traçado de raios distribuídos" foi originalmente cunhado por Robert Cook neste artigo de 1984. Sua observação foi a de que, para realizar a suavização de serrilhado em um traçador de raios, o renderizador precisa realizar upsampling espacial - isto é, coletar mais amostras (ou seja, disparar mais raios) do que o número de pixels na imagem e combinar seus resultados. . Uma maneira de fazer isso é disparar vários raios em um pixel e calcular a média de seus valores de cores, por exemplo. No entanto, se o renderizador já estiver rastreando vários raios por pixel de qualquer maneira para obter uma imagem sem serrilhado, esses raios também poderão ser "distribuídos" entre dimensões adicionais, além da posição do pixel, para mostrar efeitos que não puderam ser capturados por um único raio. . O importante é que isso ocorre sem nenhum custo adicional além da amostragem espacial, já que você já está rastreando esses raios adicionais. Por exemplo,
O traçado de raios de Monte Carlo é um termo ligeiramente ambíguo. Na maioria dos casos, refere-se a técnicas de renderização que resolvem a equação de renderização, introduzido por Jim Kajiya em 1986, usando a integração Monte Carlo. Praticamente todas as técnicas modernas de renderização que resolvem a equação de renderização, como rastreamento de caminho, rastreamento bidirecional, mapeamento progressivo de fótons e VCM, podem ser classificadas como técnicas de rastreamento de raios Monte Carlo. A idéia da integração de Monte Carlo é que podemos calcular a integral de qualquer função escolhendo aleatoriamente pontos no domínio de integração e calculando a média do valor da função nesses pontos. Em um nível alto, no traçado de raios de Monte Carlo, podemos usar essa técnica para integrar a quantidade de luz que chega à câmera dentro de um pixel para calcular o valor do pixel. Por exemplo, um rastreador de caminho faz isso escolhendo aleatoriamente um ponto dentro do pixel para disparar o primeiro raio e, em seguida, continua escolhendo aleatoriamente uma direção para continuar na superfície em que pousa, e assim por diante. Também poderíamos escolher aleatoriamente uma posição no eixo do tempo, se quisermos desfocar o movimento, ou escolher aleatoriamente um ponto na abertura, se quiséssemos fazer a profundidade de campo ou ...
Se isso soa muito semelhante ao traçado de raios distribuído, é porque é! Podemos pensar no traçado de raios distribuído como uma descrição muito informal de um algoritmo de Monte Carlo que mostra certos efeitos como sombras suaves. O artigo de Cook não possui a estrutura matemática para realmente raciocinar corretamente, mas você certamente poderia implementar o traçado de raios distribuído usando um renderizador simples de Monte Carlo. Vale ressaltar que o traçado de raios distribuídos carece de descrição dos efeitos da iluminação global, que são modelados naturalmente na equação de renderização (deve-se mencionar que o artigo de Kajiya foi publicado dois anos após o artigo de Cook).
Você pode pensar no traçado de raios de Monte Carlo como uma versão mais geral do traçado de raios distribuído. O traçado de raios de Monte Carlo contém uma estrutura matemática geral que permite lidar com praticamente qualquer efeito, incluindo os mencionados no papel de traçado de raios distribuído.
Atualmente, "rastreamento de raios distribuídos" não é realmente um termo usado para se referir ao algoritmo original. Você o ouvirá com mais frequência em conjunto com os "efeitos de distribuição", que são simplesmente efeitos como desfoque de movimento, profundidade de campo ou sombras suaves que não podem ser manipuladas com um traçador de raios de amostra única.