http:// iluminação e fotorealismo iluminação global biased monte carlo methods luís paulo...

Post on 17-Apr-2015

103 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

http://www.di.uminho.pt/uce-cg/index.php

Iluminação e FotoRealismo

Iluminação GlobalBiased Monte Carlo Methods

Luís Paulo Peixoto dos Santos

Competências

GERAIS :• Relacionar os vários métodos de iluminação global com o modelo geral sustentado

pela equação de rendering, inferindo quais os fenómenos de iluminação modelados;• Projectar, implementar e avaliar soluções para novos problemas de iluminação por

recombinação de soluções conhecidas;• Reconhecer as limitações funcionais e/ou de desempenho associadas a cada algoritmo

de iluminação global;

Iluminação e Fotorealismo 2007/082

ESPECÍFICAS :

Conteúdo

• Introdução

– Métodos com e sem Bias

– Partição do integral

• A Cache de Irradiância

• Iluminação Global Interactiva

Iluminação e Fotorealismo 2007/083

Biased vs. Unbiased

• Os métodos de Monte Carlo sem bias:– garantem a convergência para soluções correctas com o aumento do nº de amostras– garantem que a solução obtida é correcta

Mas– Exigem um nº de amostras elevado, logo elevado tempo de computação

Iluminação e Fotorealismo 2007/084

• Os métodos de Monte Carlo com bias:– Convergem mais rapidamente (menos amostras) para uma solução visualmente agradável

Mas– Não há garantias de que esta solução seja correcta– Não há garantias de que a solução melhore aumentando o nº de amostras

IIN

lim

IINlim

Partição do Integral

• O integral de transporte de luz pode ser particionado em vários integrais, cada correspondendo a vários subdomínios disjuntos, sendo cada integral resolvido separadamente, eventualmente recorrendo a abordagens muito diferentes

Iluminação e Fotorealismo 2007/085

i

dpLpfpL iiirrrr cos)(),,()(

cos)(),,(

cos)(),,(

cos)(),,()(

_

_

dindirectai

sindirectai

directai

dpLpf

dpLpf

dpLpfpL

iiidirr

iiisirr

iidirrrr

Exemplo:

// L directa

// L indirecta especular

// L indirecta difusa

• O único requisito é que os subdomínios sejam disjuntos, isto é, que nenhuma direcção ωi seja considerada em 2 ou mais integrais

Partição do Integral

Iluminação e Fotorealismo 2007/086

A composição destes resultados parciais resulta na imagem final.

DIRECTA ESPECULAR INDIRECTA DIFUSA INDIRECTA

Partição do Integral

Iluminação e Fotorealismo 2007/087

Partição do Integral

• Iluminação directa– Eventualmente, calculada por integração de Monte Carlo– Apresenta descontinuidades (altas frequências)

• Iluminação especular indirecta– Calculada deterministicamente (cuidado: glossiness)– Apresenta descontinuidades (altas frequências)

• Iluminação difusa indirecta– Não direccional: Integração de Monte Carlo requer

amostragem de um grande número de direcções– Varia suavemente ao longo das superfícies (baixa frequência)

Iluminação e Fotorealismo 2007/088

CACHE DE IRRADIÂNCIA

Greg Ward, "A Ray Tracing Solution for Diffuse Interreflection", Computer Graphics, 22(4), 1988

Greg Ward and Paul Heckbert, "Irradiance Gradients", 1992

Iluminação e Fotorealismo 2007/089

Cache de Irradiância

P1 – Calcular irradiância amostrando a semi-esfera (Monte Carlo)

P2 – Calcular irradiância amostrando a semi-esfera (Monte Carlo)

P3 – Se dentro da área de interpolação de P1 e/ou P2 então

Interpolar!

Iluminação e Fotorealismo 2007/0810

p1 p2p3

Cache de Irradiância: Cálculo

• Irradiância – fluxo radiante incidente por unidade de área– Calcula-se a partir da radiância incidente como:

Iluminação e Fotorealismo 2007/0811

sN

i i

ii

siii p

pL

NdpLpE

1 )(

cos)(1cos)()(

• Usando amostragem estratificada pesada com o cosseno (importância):

1

0

1

0,

211

)(*

)(

*2,sin),(

cos)(

M

j

N

kkj

ii

pLNM

pE

N

k

M

j

p

Cache de Irradiância: Cálculo

• A irradiância num ponto p da cena pode ser calculada:

– Extensivamente: se não houver nenhum valor de irradiância calculado previamente para outro ponto numa vizinhança válida de p

– Por Interpolação: se forem encontrados valores de irradiância calculados previamente para outros pontos numa vizinhança válida de p

• Aos valores de irradiância calculados extensivamente chamamos amostras

• As amostras têm que ser armazenadas nalguma estrutura de dados para uso posterior

• A esta estrutura de dados chamamos cache de irradiância

Iluminação e Fotorealismo 2007/0812

Cache de Irradiância: Armazenamento

• As amostras têm que ser guardadas no espaço 3D para poderem ser reutilizadas• Não são armazenadas com a geometria (superfície onde foram calculadas) para

permitir reutilização com outras superfícies vizinhas• Devem ser guardadas numa estrutura que ordene o espaço 3D para permitir procuras

rápidas de várias amostras numa vizinhança espacial• Usam-se octrees ou kd-trees

Iluminação e Fotorealismo 2007/0813

Cache de Irradiância: Vizinhança

• Cada amostra de irradiância armazenada na cache corresponde ao valor da irradiância calculada num ponto pi do espaço. A esta amostra chamamos E(pi)

• Para calcular a irradiância E(p) num ponto p procura-se primeiro na cache quais as amostras E(pi) que podem ser usadas

• A decisão de se um ponto pi pode ser usado para estimar a irradiância em p baseia-se na estimativa do erro incorrido por usar E(pi) em vez de calcular E(p)

• Esta estimativa do erro é um limite máximo e é representada por

• O erro máximo aceitável, a, é um parâmetro usualmente fornecido pelo utilizador

• O ponto pi só é usado para estimar E(p) se

Iluminação e Fotorealismo 2007/0814

),( ipp

app i ),(

Cache de Irradiância: Vizinhança

Iluminação e Fotorealismo 2007/0815

ipp

i

ii NN

R

pppp

1),(

• A estimativa de erro depende de:

• - distância euclidiana entre p e pi

• - distância média das superfícies a pi; calculada como média harmónica durante o processo de amostragem da semiesfera.

• - cosseno entre as normais das superfícies em p e pi

ipp

iR

ipp NN

Cache de Irradiância: Interpolação

• O valor de E(p) é dado pela média pesada dos E(pi) determinados como estando dentro de uma vizinhança válida;

• Os pesos a usar nesta média pesada são o inverso da estimativa de erro:

Iluminação e Fotorealismo 2007/0816

),(1),(

),(

)(),()(

ii

i

ii

pppp

pp

pEpppE

Cache de Irradiância: Rendering

• Conhecido o valor da irradiância E(p), o valor da radiância reflectida de forma difusa na direcção do observador é dada por

Iluminação e Fotorealismo 2007/0817

)(*)(_ pEpL rdindirect

• Este método aplica-se apenas a superfícies difusas, pois E(p) não contem qualquer informação sobre a direcção de incidência da radiância.

• Os valores de podem ser partilhados entre frames onde a posição do observador muda, pois respeitam apenas a informação difusaNota: a geometria, materiais e iluminação, no entanto, têm que ser fixas

, sendo ρ o coeficiente de reflexão difusa

Cache de Irradiância: Parâmetros

• O algoritmo da cache de irradiância usualmente aceita os seguintes parâmetros;

– maxdepth – até que profundidade deve continuar a recursividade– maxerror – qual o erro máximo aceitável no processo de interpolação

quanto menor mais amostras serão calculadas– nsamples – quantas amostras usar para amostrar a componente difusa indirecta

da semiesfera (nº de raios a disparar por cálculo extenso da irradIância)quanto maior mais raios serão disparados por amostra

Iluminação e Fotorealismo 2007/0818

Cache de Irradiância: Posicionamento das amostras

Iluminação e Fotorealismo 2007/0819

• As amostras concentram-se nas zonas onde a distância do ponto pi às restantes superfícies é menor: cantos.

Cache de Irradiância: Defeitos visíveis

• O resultado do processo de interpolação é claramente visível

• O processo de interpolação aqui descrito é linear; não tem em consideração variações com translações ou rotações

• Durante o processo de amostragem da semiesfera é possível estimar como varia a irradiância com as translações e rotações:cálculo dos gradientes

• Estes gradientes podem ser usados para fazer interpolação de 2ª ordem obtendo uma diminuição significativa nestes defeitos

Iluminação e Fotorealismo 2007/0820

DIFUSA INDIRECTA

Cache de Irradiância: Defeitos visíveis

• A imagem é percorrida de forma ordenada, linha a linha

• Inicialmente a cache está vazia

• Como resultado as amostras são calculadas de forma ordenada também, resultando em muitas extrapolações: utilização de apenas uma amostra para estimar E(p)

• Uma primeira passagem pelo plano da imagem, processando apenas alguns dos pixeis (subamostragem), permitiria inicializar a cache, reduzindo o número de extrapolações

Iluminação e Fotorealismo 2007/0821

DIFUSA INDIRECTA

ILUMINAÇÃO GLOBAL INTERACTIVA

Iluminação e Fotorealismo 2007/0822

Fundamentos

CÁLCULO DAS INTERREFLEXÕES DIFUSAS

PRÉ-PROCESSAMENTO1. Seguir um número reduzido de trajectos a partir das fontes

de luz2. Construir fontes de luz virtuais (VPL – Virtual Point Light

sources) nos pontos de intersecção// representam a distribuição da radiância indirecta na cena

RENDERING TIME1. Incluir estas fontes de luz (VPL) explicitamente no integral

para cada ponto

Iluminação e Fotorealismo 2007/0823

Keller, A; “Instant Radiosity”; Proc. of SIGGRAPH’97, 1997

Wald, Kollig, Benthin, Keller, Slusallek; “Interactive Global Illumination using fast ray tracing”; 13th Eurographics Workshop on Rendering, 2002

Integração sobre áreas

• Radiância reflectida definida sobre ângulos sólidos:

• Relação entre ângulo sólido e área

• Equação de Rendering definida sobre áreas:

Iluminação e Fotorealismo 2007/0824

iiiirrrr dpLpfpL cos)(),,()(

22

'cos

r

dA

r

dAd i

Ap

iirr dA

rppLpppfppL

2

22101201

'coscos)()()(

p0 p2

p1

ωrωiθi

θi’

Ap

rr

ii

dAppGppLpppfppL

rppG

2

)()()()(

'coscos)(

212101201

221

Pré-Processamento: Contribuição de um trajecto

• Qual a contribuição deste trajecto, P(p6), para a radiância incidente em p0?

1. Seleccionar estocasticamente um ponto na superfície da fonte de luz :

Iluminação e Fotorealismo 2007/0825

p0

p1

p2

p3

p4

p5

p6

...)( 6 pP

)(

)()(

6

66 pp

pLpL

A

e

Pré-Processamento: Contribuição de um trajecto

Iluminação e Fotorealismo 2007/0826

p0

p1 p3p5

p6

1. Seleccionar estocasticamente uma direcção de saída ω6 e determinar p5 disparando um raio de p6 na direcção ω6 (ω6=p5-p6=p6→p5 )

2. A radiância incidente em p5 devido a p6 é

3. A contribuição da VPL em p5 para um ponto p qualquer da cena será a sua radiância incidente vezes a BRDF:)(

cos

)(

)()(

56

5

6

5665 ppppp

ppLppL

A

e

)(

cos)(

)(

)()(

56

556

6

565 ppp

pppf

pp

ppLppL r

A

e

p2 p4

Pré-Processamento: Contribuição de um trajecto

Iluminação e Fotorealismo 2007/0827

p0

p1 p3p5

p6

1. Seleccionar estocasticamente uma direcção de saída ω5 e determinar p4 disparando um raio de p5 na direcção ω5

2. A radiância incidente em p4 devido a p6 é

)(

cos

)(

cos)(

)(

)()(

45

4

56

5456

6

5664 pppppp

pppf

pp

ppLppL r

A

e

p2 p4

Pré-Processamento: Contribuição de um trajecto

Iluminação e Fotorealismo 2007/0828

p0

p1 p3p5

p6

1. Seleccionar estocasticamente uma direcção de saída ω4 e determinar p3 disparando um raio de p4 na direcção ω4

2. A radiância incidente em p3 devido a p6 é

Generalizando a radiância incidente em pi-l devido a um ponto pi na superfície de uma fonte de luz e a um trajecto de comprimento l é dada por:

)(

cos

)(

cos)(

)(

cos)(

)(

)()(

34

3

45

4345

56

5456

6

5663 pppppp

pppf

ppp

pppf

pp

ppLppL rr

A

e

p2 p4

)(

cos

)(

cos)(

)(

)()(

1

1

1 1

111

lili

lil

j jiji

jijijijir

iA

iieili pppppp

pppf

pp

ppLppL

Rendering: Amostragem da VPL

• Determinar ponto p1 de intersecção de raio primário• Somar a contribuição de TODAS as VPL:

onde: é a radiância incidente em pi associado à VPL i (dada pela expressão do acetato anterior)

é a BRDF em pi

corresponde ao termo geométrico entre p1 e a VPLi

corresponde à visibilidade entre p1 e VPLi calculada disparando um shadow ray

Iluminação e Fotorealismo 2007/0829

p0

p1 p3p5

p6

p2 p4

VPL

r

N

iiiiiiir

VPLVPL VPLLpppfppGVPLpVpppf

NppL

111110101 )()()(),()(

1)(

)( iVPLL

),( 1 iVPLpV

)( 1 ippG

)( 11 pppf iir

Amostragem da VPL: exemplo

• Consideremos p2.

• Propagação a partir de p6 resulta em:

• Recolha a partir de p0 resulta em (apenas para VPL2):

Iluminação e Fotorealismo 2007/0830

p0

p1 p3p5

p6

p2 p4

)(

cos

)(

cos)(*

*)(

cos)(*

)(

cos)(*

)(

)()(

23

2

34

3234

45

4345

56

5456

6

562

pppppp

pppf

ppp

pppf

ppp

pppf

pp

ppLVPLL

r

rr

A

e

)()()(),()(1

)( 21232121012012VPLLpppfppGVPLpVpppf

NppL rr

VPLVPL

Termo Geométrico

Iluminação e Fotorealismo 2007/0831

2

1

11

'coscos)(

ppppG

i

ii

• Se a distância de p1 a pi é pequena (≈0) então o termo geométrico toma um valor muito grande

• Para evitar esta situação G toma o valor zero se a distância for menor que um determinado limite:

• A truncagem de G introduz bias no algoritmo

di

di

i

i

i

pp

ppppppG

min se ,0

min se ,'coscos

)(

1

12

1

1

1

Critério de paragem

• A decisão de quando terminar um trajecto construído a partir da fonte de luz é tomada recorrendo a roleta russa

• A probabilidade de continuar o trajecto deve ser igual à atenuação que a energia do fotão sofre naquela intersecção:

• Se então o trajecto termina• Senão o trajecto continua

• A contribuição deste trajecto (energia da próxima VPL) é dividida pela probabilidade de continuar, pcontinue

Iluminação e Fotorealismo 2007/0832

)(

'cos)(

1

11

ii

iiiircontinue ppp

pppfp

continuep

Critério de paragem

• A energia de VPLi-1 relativamente a VPLi é dada por

• Uma vez que usamos roleta russa passa a ser

Iluminação e Fotorealismo 2007/0833

)()(

cos)()(

1

111 i

ii

iiiiri VPLL

ppp

pppfVPLL

continuei

ii

iiiiri p

VPLLppp

pppfVPLL

1)(

)(

cos)()(

1

111

)(

cos)(

1

11

ii

iiiircontinue ppp

pppfp

)(

)()()( 1

source

sourceeii pp

pLVPLLVPLL

Todas as VPL do mesmo trajecto têm a mesma energia

Pré-Processamento: Algoritmo

PreProcess() { Para i=1 até N_Paths { Seleccionar aleatoriamente a fonte de luz L Seleccionar ponto na fonte de luz p com probabilidade pdf contrib = L.Le / pdf

Seleccionar direcção ωo com probabilidade pdf contrib *= cos θ / pdf

p’, Np’ = intersecta (raio(p, ωo), cena) Enquanto intersecção com sucesso {

ωi = ωo

Criar VPL (p’, contrib, ωi, Np’) N_VPLs++

Seleccionar direcção ωo com probabilidade pdf

pcontinue = BRDF (p’, ωi, ωo)* cos θ / pdf if (RandomFloat()>pcontinue) termina trajecto

p’, Np’ = intersecta (raio(p’, ωo), cena) }} }

Iluminação e Fotorealismo 2007/0834

Rendering: Algoritmo

Render() { // ponto p da cena e raio com direcção dir

L = <Calcular iluminação directa>

L += <Novos raios para iluminação especular>

Para i=1 até N_VPLs {

se (distância (p, VPL[i].p) <= min_d) continue;

L_aux = VPL[i] * G(p, VPL[i].p)

L_aux *= BRDF (VPL[i].p, VPL[i].dir, dir(p, VPL[i]))

L_aux *= BRDF (p, dir, dir(p, VPL[i]))

L_aux /= N_VPLs

Visivel = shadow_ray (p, VPL[i].p)

if (Visivel) L+= L_aux

}

}

Iluminação e Fotorealismo 2007/0835

Comparação

Iluminação e Fotorealismo 2007/0836

Path tracing: 10 spp43.4 seg

IGI: 1 spp, 128 VPL41.1 seg

Conjuntos de VPLs

• A utilização do mesmo conjunto de VPLs para todos os pixeis resulta numa elevada intercorrelação entre pixeis vizinhos:

Iluminação e Fotorealismo 2007/0837

SOLUÇÃO:

Gerar vários conjuntos diferentes de VPLs e, para cada raio primário, seleccionar estocasticamente o conjunto a utilizar.

Não acarreta custos extra, excepto a geração dos conjuntos de VPLs

Conjuntos de VPLs

Iluminação e Fotorealismo 2007/0838

IGI: 1 spp, 128 VPL, 4 set41.3 seg

IGI: 1 spp, 128 VPL, 1 set41.1 seg

Sobre Amostragem

• A variância pode ser reduzida disparando vários raios primários por pixel

• O número de diferentes conjuntos de VPLs deve ser igual ao número de amostras por pixel

• Cada conjunto de VPLs pode agora ter o seu número de trajectos dividido pelo número de amostras por pixel

• O tempo associado à iluminação difusa não aumenta

• As distribuições de números aleatórios usadas para gerar os trajectos e seleccionar o conjunto a usar devem ser cuidadosamente escolhidas para garantir que não há correlações entre estes

Iluminação e Fotorealismo 2007/0839

Sobre Amostragem

Iluminação e Fotorealismo 2007/0840

IGI: 1 spp, 128 VPL, 1 set41.1 seg

IGI: 4 spp, 32 VPL, 4 set62.8 seg

Selecção da fonte de luz

• A amostragem das fontes de luz, na fase de pré-processamento, pode ser feita baseada na sua importância, por exemplo, usando uma distribuição de probabilidade baseada na potência relativa das fontes de luz

• Neste caso, algumas fontes de luz terão, em média, mais VPLs do que outras

• Para compensar a potência das VPLs deve ser atenuada pela probabilidade de selecção da fonte de luz

Iluminação e Fotorealismo 2007/0841

Pré-Processamento: Algoritmo (importância das fontes de luz)

PreProcess() { Criar distribuição para fontes de luz baseada em alguma característica Para i=1 até N_Paths { Seleccionar aleatoriamente a fonte de luz L com probabilidade

Lightpdf Seleccionar ponto na fonte de luz p com probabilidade pdf contrib = L.Le / pdf * Lightpdf

Seleccionar direcção ωo com probabilidade pdf contrib *= cos θ / pdf Enquanto intersecção com p’ {

ωi = ωo

Criar VPL (p’, contrib, ωi, Np’) N_VPLs++

Seleccionar direcção ωo com probabilidade pdf

pcontinue = BRDF (p’, ωi, ωo)* cos θ / pdf if (RandomFloat()>pcontinue) termina trajecto }} }

Iluminação e Fotorealismo 2007/0842

Selecção da fonte de luz: oclusão

• Numa cena com um elevado grau de oclusão muitas fontes de luz não contribuem para a iluminação das superfícies visíveis.

• VPLs propagadas a partir destas fontes de luz não contribuem para a região visível da imagem, mas a sua visibilidade é ainda assim avaliada pelos shadow rays para iluminar cada ponto

• Muito tempo de computação é desperdiçado numa operação que não contribui para melhorar o resultado final

EXEMPLO:Um prédio com muitas divisões e muitas fontes de luz terá VPLs distribuídas por

todas (maioria) as suas divisõesUm observador localizado numa divisão não beneficia da maioria destas VPLs

Iluminação e Fotorealismo 2007/0843

Selecção da fonte de luz: oclusão

Iluminação e Fotorealismo 2007/0844

Múltiplas (9) cópias da Cornell BoxCom iluminação indirecta

Selecção da fonte de luz: oclusão

Iluminação e Fotorealismo 2007/0845

1 única Cornell BoxIGI: 8 spp, 16 VPL, 8 set

112 seg

9 Cornell BoxIGI: 8 spp, 16 VPL, 8 set

172 seg

Selecção da fonte de luz: oclusão

• Determinar a importância das fontes de luz para o ponto de vista actual• Propagar VPLs a partir das fontes de luz usando esta distribuição de importância

HIPÓTESE:

Fazer uma primeira passagem com baixa resolução a partir do observador apenas para calcular a importância relativa das fontes de luz, construindo uma pdf

Usar path tracing para esta passagem. Construir a distribuição de importância das fontes de luz baseada no número de shadow rays que as amostram com sucesso

Para que a integração seja unbiased relativamente às fontes de luz, nenhuma fonte de luz que contribua para a iluminação deve ter probabilidade 0.

[Wald, Benthin, Slusallek; “Interactive Global Illumination in Complex and Highly Occluded Environments”; EG Symposium on Rendering, 2003]

Iluminação e Fotorealismo 2007/0846

top related