Espalhamento Volumétrico Completo de Monte-Carlo

9

Gostaria de adicionar a dispersão volumétrica de Monte Carlo completa ao meu rastreador de caminho, mas estou tendo dificuldades para pesquisar como fazê-lo. Deixe-me explicar o que eu gostaria de fazer: Espalhamento Volumétrico de Monte Carlo um raio entra em um material e aplicamos o BTDF; depois de alguma distância, ocorre um evento de espalhamento volumétrico, após o qual (no caso isotrópico), o raio se espalha em qualquer direção no esfera. Isso se repete até que o raio saia do material com outro BTDF.

Minhas perguntas são as seguintes:

  1. Como escolho a distância entre eventos de dispersão? A intuição me diz que deve haver algum tipo de dispersão pdf, o que dá a probabilidade de dispersão após uma certa distância?
    • Isso seria correto?
    • O pdf seria uma função linear para materiais isotrópicos?
    • Essa função tem um nome ou algo que eu possa pesquisar no Google?
  2. Beer-Lambert ainda se aplicaria entre eventos de dispersão?
    • Eu acho que não. Já que Beer-Lambert é uma simplificação dos cálculos reais de espalhamento.
    • Por outro lado, talvez Beer-Lambert seja um cálculo em escala micro e o rastreamento de caminho em escala macro.
  3. Qual é o equivalente volumétrico a um BSDF? Parece que eu posso usar uma função de fase como Henyey-Greenstein para determinar a nova direção, mas o que eu uso para atenuação?
  4. Por fim, quais são as melhores frases do Google para espalhamento volumétrico de Monte-Carlo?
    • A busca por espalhamento volumétrico, ou SSS, acaba fornecendo artigos, métodos e postagens no blog sobre as simplificações da simulação completa de Monte-Carlo (dipolo, espalhamento, espalhamento, difusão, etc.)
RichieSams
fonte

Respostas:

7

Antes de tudo, uma boa referência para o traçado de Monte Carlo nos meios de comunicação participantes são as notas do curso de Steve Marschner.

σσ=σs+σuma

σ

Então, para responder suas perguntas diretamente:

  1. e-σxx

    x=-(emξ)/σe-σx

    σuma/σ1 1-σuma/σ

  2. Não, se você seguir o procedimento de amostragem de importância descrito acima, o Beer-Lambert já estará incorporado implicitamente na amostragem; portanto, não será necessário aplicá-lo aos pesos do caminho.

  3. σs,σuma

    Você também pode fazer algo assim para BSDFs; você pode fatorar o albedo geral e ter a dependência direcional sempre normalizada. É principalmente uma questão de convenção, AFAICT.

  4. Tente "mídia participante" (ou seja, um "meio" volumétrico - "mídia" plural - que "participe" do transporte leve) e "rastreamento de caminho volumétrico".

Nathan Reed
fonte
Como você amostraria distâncias para coeficientes de espalhamento / absorção não monocromáticos? Escolha aleatoriamente um canal e divida por 1/3 (no caso de RGB ou XYZ)?
precisa saber é o seguinte
11
@RichieSams A recomendação que vi para esse caso é atribuir a cada raio um único comprimento de onda ou canal de cor. Então você basicamente calcula a dispersão para cada canal separadamente. Por exemplo, na dispersão atmosférica, a luz azul se espalha muito mais fortemente que o vermelho e, portanto, precisa de muito mais eventos de dispersão, e os fótons azuis seguirão caminhos muito mais complicados do que os vermelhos. Portanto, faz algum sentido simulá-los separadamente - bem como a dispersão devido à refração. Eu realmente nunca tentei isso sozinho.
Nathan Reed
Ahh, isso faz sentido. Porém, o desempenho sofrerá ... Não é de admirar que todos desejem estimar a mídia participante de Monte-Carlo. Obrigado por todas as informações!
precisa saber é o seguinte