Amostragem de importância dos mapas do ambiente


14

Qual é a melhor abordagem atualmente conhecida e, idealmente, também verificada pela produção para amostragem de mapas do ambiente (EM) em um rastreador de caminho unidirecional baseado em MIS e tipos semelhantes de renderizadores? Eu preferiria soluções razoavelmente complicadas e razoavelmente funcionais para aquelas que fornecem amostragem perfeita a um custo de implementação super complicada e difícil de entender.

O que eu sei até agora

Existem algumas maneiras fáceis de amostrar EMs. Pode-se amostrar o hemisfério necessário de maneira ponderada em cosseno, o que ignora as formas de função BSDF e EM. Como resultado, ele não funciona para EMs dinâmicos:

enter image description here

Para melhorar a amostragem para um nível utilizável, pode-se amostrar a luminância do EM em toda a esfera. É relativamente fácil de implementar e os resultados são bastante bons. No entanto, a estratégia de amostragem ainda ignora as informações de visibilidade hemisférica e o fator cosseno (e também o BSDF), resultando em alto ruído nas superfícies que não são diretamente iluminadas por áreas de alta intensidade do EM:

enter image description here

Papéis

Encontrei alguns trabalhos sobre o assunto, mas ainda não os li. Vale a pena ler e implementar alguma dessas coisas em um rastreador de caminho unidirecional para a frente ou há algo ainda melhor?

  • Amostragem de Importância Estruturada de Mapas Ambientais (2003) por Agarwal et al.

  • Steerable Importance Sampling (2007) por Kartic Subr e Jim Arvo. Eles alegam apresentar “... um algoritmo para amostragem eficiente de importância estratificada de mapas do ambiente que gera amostras na hemi-esfera positiva definida pela orientação local de superfícies arbitrárias, enquanto contabiliza a ponderação do cosseno. “O artigo“ Importância da amostragem de harmônicos esféricos ”comenta:” Eles criam uma representação triangulada do mapa do ambiente e armazenam a iluminação pré-multiplicada por cada uma das nove primeiras funções básicas de harmônicas esféricas em todos os vértices. Isso forma uma base orientável em que o cosseno preso pode ser girado com eficiência para qualquer orientação. ”

  • Amostragem prática da importância do produto para iluminação direta (2008) por Petrik Clarberg e Tomas Akenine-Möller. Um algoritmo para amostrar o produto da iluminação do mapa do ambiente e da refletância da superfície. Usa amostragem de importância baseada em wavelet.

  • Importância da amostragem de harmônicos esféricos (2009) por Jarosz, Carr e Jensenn. O resumo diz: "... apresentamos o primeiro método prático para funções de amostragem importantes representadas como harmônicas esféricas (SH) ..."

  • Amostragem de Mapa de Ambiente Baseado em Deslocamento Médio com Mapeamento de Tom (2015) por Feng et al. Isso é bastante novo e não encontrei nenhuma referência a ele nem ao próprio artigo.


Eu tenho uma pergunta. A segunda imagem é gerada apenas pela amostragem do EM? Ou é uma versão equivocada de amostragem de cosseno e amostragem EM? Eu realmente espero que seja a versão MISed, porque se assim for, então eu posso ter um remédio para o alto ruído na parte sombria.
tom

Não, ele usa apenas amostragem EM espermática, ignorando o BRDF (Lambert) e o fator cosseno. Foram utilizadas 64 amostras e não foi aplicada nenhuma filtragem do espaço da imagem, apenas calculando a média sobre a área de pixels. Quando o MIS é aplicado para combinar a amostragem EM com a amostragem de cosseno, o ruído na sombra diminui muito, mas aumenta ligeiramente na parte iluminada pelo sol.
Ivokabel

Respostas:


6

Esta não é uma resposta completa. Gostaria apenas de compartilhar o conhecimento obtido ao estudar dois dos documentos mencionados na pergunta: Amostragem por Importância Direcionável e Amostragem por Importância Prática do Produto para Iluminação Direta .

Amostragem de Importância Direcionável

Neste artigo, eles propõem um método para amostrar o produto do componente cosseno preso e da iluminação do mapa do ambiente:

LEM(ωi)(ωin)+

Eles usam o fato de que uma aproximação linear em partes da função do produto pode ser relativamente bem expressa e parcialmente pré-calculada usando as nove primeiras bases harmônicas esféricas. Eles constroem essa aproximação em cima de um EM triangulado adaptativamente e a utilizam como uma função importante para amostragem.

Eles pré-calculam e armazenam coeficientes de aproximação para cada vértice do triângulo e também coeficientes para o cálculo da integral de aproximação sobre o triângulo para cada triângulo. Esses coeficientes são chamados de pesos de vértice e triângulo. Em seguida, eles usam o fato de que é possível calcular facilmente coeficientes para uma integral sobre um conjunto de triângulos apenas somando os pesos individuais dos triângulos sem incorporar bases harmônicas esféricas adicionais. Isso permite que eles construam uma árvore binária equilibrada sobre os triângulos, onde cada nó contém coeficientes para calcular a aproximação integral sobre os triângulos da subárvore do nó.

O procedimento de amostragem consiste na seleção de um triângulo e na amostragem de sua área:

  • Um triângulo é escolhido descendo a árvore binária pré-construída com probabilidade proporcional às aproximações sub-integrais. Isso custa on-the-fly computações de sub-integrais, cada uma consistindo em um produto interno de coordenadas harmônicas esféricas de co-seno fixo com os coeficientes pré-computados. O(logN)
  • A superfície escolhida do triângulo é então amostrada no tempo maneira bi-linear por uma nova estratégia de amostragem estratificada proposta no artigo.O(1)

Para mim, isso parece uma técnica promissora , mas a questão clássica dos papéis é como ela se comportará na vida real. Por um lado, pode haver casos patológicos em que o EM é difícil de aproximar com função linear triangular, que pode levar a uma enorme quantidade de triângulos e / ou a baixa qualidade da amostra. Por outro lado, ele pode fornecer instantaneamente uma aproximação relativamente boa de toda a contribuição EM, o que pode ser útil na amostragem de várias fontes de luz.

Amostra de importância prática do produto para iluminação direta

Neste artigo, eles propõem um método para amostrar o produto da iluminação do mapa do ambiente e da refletância da superfície ponderada pelo cosseno:

LEM(ωi)fr(ωi,ωo,n)(ωin)+

O único pré-processamento nesse método é o cálculo de uma representação hierárquica do EM (baseado em mipmap ou wavelet). O resto é feito em tempo real durante a amostragem.

O procedimento de amostragem:

  • Construindo uma aproximação rápida de BRDF: Eles primeiro desenham várias amostras de importância de BRDF e avaliam . A partir desses valores, eles constroem uma aproximação constante por partes do BRDF baseada em quadtree, onde cada folha da árvore contém exatamente uma amostra.fr(ωi,ωo,n)(ωin)+
  • A computação de um produto da aproximação BRDF e EM: A multiplicação é feita nas folhas de quadtree BRDF e os valores médios são propagados para os pais.
  • Amostragem do produto: amostras uniformes são alimentadas através da árvore do produto usando simples deformação da amostra.

O procedimento deve gerar amostras relativamente boas ao custo de pré-computação pesada - elas mostram que são necessárias aproximadamente 100 a 200 amostras de BRDF para que a aproximação do BRDF alcance o melhor desempenho de amostragem. Isso pode torná-lo adequado para cálculos de iluminação puramente diretos, onde se gera muitas amostras por ponto de sombreamento, mas é provavelmente muito caro para algoritmos de iluminação global (por exemplo, rastreadores de caminho uni ou bidirecionais), onde você geralmente gera apenas algumas amostras por ponto de sombreamento.


4

Isenção de responsabilidade: não tenho idéia de qual é o estado da arte na amostragem de mapas ambientais. De fato, tenho muito pouco conhecimento sobre esse tópico. Portanto, essa não será uma resposta completa, mas vou formular o problema matematicamente e analisá-lo. Eu faço isso principalmente para mim, por isso deixo claro para mim mesmo, mas espero que o OP e outros possam achar útil.


I=S2f(ωi,ωo,n)L(ωi)(ωin)+dωi
f(ωi,ωo,n)L(ωi)(ωin)++(ωin)+=0(ωin)<0

Nωi1,,ωiNp(ωi)

I1Nk=1Nf(ωik,ωo,n)L(ωik)(ωikn)+p(ωik)

p


p

p(ωi)f(ωi,ωo,n)L(ωi)(ωin)+

Métodos sugeridos pelo OP:

p

p(ωi)(ωin)+
p
p(ωi)L(ωi)

Com base nos nomes dos artigos mencionados, posso adivinhar parcialmente o que eles fazem (infelizmente não tenho tempo e energia para lê-los agora). Mas antes de discutir o que eles provavelmente fazem, vamos falar um pouco sobre séries de potência: D


f(x)

f(x)=k=0akxk
akfn
f(x)k=0nakxk
n é suficientemente alto, o erro é realmente pequeno.

f(x,y)

f(x,y)=k=0bk(y)xk
bk(y)y
f(x,y)=k,l=0cklxkyl
ckl

f(ω)

f(ω)=k=0αkSk(ω)
αkSk(ω)f pode ser escrito como uma soma de algumas funções conhecidas.

f(ω,ω)

f(ω,ω)=k=0βk(ω)Sk(ω)
f(ω,ω)=k,l=0γklSk(ω)Sl(ω)

Então, como tudo isso é útil?

f(ωEu,ωo,n)=k,eu,m=0 0αkeumSk(ωEu)Seu(ωo)Sm(n)eu(ωEu)=n=0 0βnSn(ω)(ωEun)+=p,q=0 0γpqSp(ωEu)Sq(n)
Eu=k,eu,m,n,p,q=0 0αkeumβnγpqSeu(ωo)Sm(n)Sq(n)S2Sk(ωEu)Sn(ω)Sp(ωEu)dωEu

S2Sk(ωEu)Sn(ω)Sp(ωEu)dωEu

Tudo isso é legal, mas podemos não conhecer as expansões do BSDF ou do mapa ambiental ou as expansões convergem muito lentamente; portanto, teríamos que usar muitos termos na soma para obter uma resposta razoavelmente precisa.


L(ωi)n=0KβnSn(ωi)
p(ωi)n=0KβnSn(ωi)(ωn)+

K=0K


Outras extensões. Você pode expandir funções diferentes em argumentos diferentes e fazer coisas semelhantes às acima. Outra coisa é que você pode expandir em bases diferentes, ou seja, não use harmônicos esféricos, mas funções diferentes.

Portanto, esta é a minha opinião sobre o tópico, espero que você o tenha achado pelo menos um pouco útil e agora estou indo para o GoT e para a cama.


Haha, quando eu postei a resposta, a SE me perguntou se eu sou humano ou robô, o site não tinha certeza: eu espero que não seja por causa do tamanho da resposta, ficou um pouco fora de controle.
Tom

Você quer fazer meu cérebro derreter, não é? ;-) BTW: Eu já consegui ler dois dos trabalhos / apresentações, então espero estender a pergunta ou escrever uma resposta superficial no final desta semana. E agora, GoT FTW!
Ivokabel

0

Embora os métodos de amostragem do produto ofereçam uma distribuição melhor (perfeita) dos raios, eu diria que o uso do MIS (amostragem de importância múltipla) é um método verificado na produção. Como as informações de sombreamento são desconhecidas, a amostragem de produtos não se torna perfeita e é muito difícil de implementar. Filmar mais raios pode valer mais! Depende da sua situação e dos orçamentos, é claro!

Breve descrição do MIS: Em essência, você rastreia um raio BSDF (como faria para iluminação indireta) e um raio explícito na direção do EM. O MIS fornece pesos para que você possa combiná-los de maneira a remover muito barulho. O MIS é especialmente bom em escolher "técnica" (amostragem implícita ou explícita) com base na situação que surge. Isso acontece naturalmente sem que o usuário precise fazer escolhas difíceis com base na aspereza, etc.

O capítulo 9 de http://graphics.stanford.edu/papers/veach_thesis/ aborda isso em detalhes. Consulte também https://www.shadertoy.com/view/4sSXWt para obter uma demonstração do MIS em ação com as luzes da área.


Sim, o MIS é uma técnica importante verificada na produção, que ajuda muito e eu a emprego na minha solução (acho que eu deveria ter afirmado isso mais claramente na pergunta). No entanto, o desempenho geral de um estimador baseado em MIS depende da qualidade de suas estratégias de amostragem parcial. O que estou tentando fazer aqui é melhorar uma das subestratégias para melhorar o desempenho geral do estimador. Na minha experiência, geralmente é mais eficiente usar amostras com menos qualidade e mais caras do que as mais caras para gerar do que amostras com baixa qualidade e mais facilmente geradas.
Ivokabel
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.