Iluminao Global Iluminao e Foto Realismo Lus Paulo
Iluminação Global Iluminação e Foto. Realismo Luís Paulo Peixoto dos Santos http: //www. di. uminho. pt/uce-cg/
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; ESPECÍFICAS : Iluminação e Fotorealismo 2008/09 2
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 2008/09 3
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 • 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 Iluminação e Fotorealismo 2008/09 4
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 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 Iluminação e Fotorealismo 2008/09 5
Partição do Integral DIRECTA ESPECULAR INDIRECTA DIFUSA INDIRECTA A composição destes resultados parciais resulta na imagem final. Iluminação e Fotorealismo 2008/09 6
Partição do Integral Iluminação e Fotorealismo 2008/09 7
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 2008/09 8
Greg Ward, "A Ray Tracing Solution for Diffuse Interreflection", Computer Graphics, 22(4), 1988 Greg Ward and Paul Heckbert, "Irradiance Gradients", 1992 CACHE DE IRRADI NCIA Iluminação e Fotorealismo 2008/09 9
Cache de Irradiância P 1 – Calcular irradiância amostrando a semi-esfera (Monte Carlo) P 2 – Calcular irradiância amostrando a semi-esfera (Monte Carlo) P 3 – Se dentro da área de interpolação de P 1 e/ou P 2 então Interpolar! p 1 p 3 p 2 Iluminação e Fotorealismo 2008/09 10
Cache de Irradiância: Cálculo • Irradiância – fluxo radiante incidente por unidade de área – Calcula-se a partir da radiância incidente como: • Usando amostragem estratificada pesada com o cosseno (importância): Iluminação e Fotorealismo 2008/09 11
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 chamamostras • 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 2008/09 12
Cache de Irradiância: Armazenamento • As amostras têm que ser guardadas no espaço 3 D 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 3 D para permitir procuras rápidas de várias amostras numa vizinhança espacial • Usam-se octrees ou kd-trees Iluminação e Fotorealismo 2008/09 13
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 2008/09 14
Cache de Irradiância: Vizinhança • 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 Iluminação e Fotorealismo 2008/09 15
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 2008/09 16
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 , sendo ρ o coeficiente de reflexão difusa • 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 difusa Nota: a geometria, materiais e iluminação, no entanto, têm que ser fixas Iluminação e Fotorealismo 2008/09 17
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 irrad. Iância) quanto maior mais raios serão disparados por amostra Iluminação e Fotorealismo 2008/09 18
Cache de Irradiância: Posicionamento das amostras • As amostras concentram-se nas zonas onde a distância do ponto pi às restantes superfícies é menor: cantos. Iluminação e Fotorealismo 2008/09 19
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 DIFUSA INDIRECTA • Estes gradientes podem ser usados para fazer interpolação de 2ª ordem obtendo uma diminuição significativa nestes defeitos Iluminação e Fotorealismo 2008/09 20
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) DIFUSA INDIRECTA • 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 2008/09 21
ILUMINAÇÃO GLOBAL INTERACTIVA Iluminação e Fotorealismo 2008/09 22
Fundamentos CÁLCULO DAS INTERREFLEXÕES DIFUSAS PRÉ-PROCESSAMENTO 1. Seguir um número reduzido de trajectos a partir das fontes de luz 2. 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 TIME 1. Incluir estas fontes de luz (VPL) explicitamente no integral para cada ponto Keller, A; “Instant Radiosity”; Proc. of SIGGRAPH’ 97, 1997 Wald, Kollig, Benthin, Keller, Slusallek; “Interactive Global Illumination using fast ray tracing”; 13 th Eurographics Workshop on Rendering, 2002 Iluminação e Fotorealismo 2008/09 23
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 2008/09 p 0 p 2 ωr θi’ θ i ωi p 1 24
Pré-Processamento: Contribuição de um trajecto p 2 p 4 p 0 p 6 p 1 p 3 p 5 • Qual a contribuição deste trajecto, P(p 6), para a radiância incidente em p 0? 1. Seleccionar estocasticamente um ponto na superfície da fonte de luz : Iluminação e Fotorealismo 2008/09 25
Pré-Processamento: Contribuição de um trajecto p 2 p 4 p 0 p 6 p 1 p 3 p 5 1. Seleccionar estocasticamente uma direcção de saída ω6 e determinar p 5 disparando um raio de p 6 na direcção ω6 (ω6=p 5 -p 6=p 6→p 5 ) 2. A radiância incidente em p 5 devido a p 6 é 3. A contribuição da VPL em p 5 para um ponto p qualquer da cena será a sua radiância incidente vezes a BRDF: Iluminação e Fotorealismo 2008/09 26
Pré-Processamento: Contribuição de um trajecto p 2 p 4 p 0 p 6 p 1 p 3 p 5 1. Seleccionar estocasticamente uma direcção de saída ω5 e determinar p 4 disparando um raio de p 5 na direcção ω5 2. A radiância incidente em p 4 devido a p 6 é Iluminação e Fotorealismo 2008/09 27
Pré-Processamento: Contribuição de um trajecto p 2 p 4 p 0 p 6 p 1 p 3 p 5 1. Seleccionar estocasticamente uma direcção de saída ω4 e determinar p 3 disparando um raio de p 4 na direcção ω4 2. A radiância incidente em p 3 devido a p 6 é 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: Iluminação e Fotorealismo 2008/09 28
Rendering: Amostragem da VPL p 2 p 4 p 0 p 6 p 1 p 3 p 5 • Determinar ponto p 1 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 p 1 e a VPLi corresponde à visibilidade entre p 1 e VPLi calculada disparando um shadow ray Iluminação e Fotorealismo 2008/09 29
Amostragem da VPL: exemplo p 2 p 4 p 0 p 6 p 1 p 3 p 5 • Consideremos p 2. • Propagação a partir de p 6 resulta em: • Recolha a partir de p 0 resulta em (apenas para VPL 2): Iluminação e Fotorealismo 2008/09 30
Termo Geométrico • Se a distância de p 1 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 Iluminação e Fotorealismo 2008/09 31
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 2008/09 32
Critério de paragem • A energia de VPLi-1 relativamente a VPLi é dada por • Uma vez que usamos roleta russa passa a ser Todas as VPL do mesmo trajecto têm a mesma energia Iluminação e Fotorealismo 2008/09 33
Pré-Processamento: Algoritmo Pre. Process() { 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 (Random. Float()>pcontinue) termina trajecto p’, Np’ = intersecta (raio(p’, ωo), cena) } } } Iluminação e Fotorealismo 2008/09 34
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(p, VPL[i])) L_aux /= N_VPLs Visivel = shadow_ray (p, VPL[i]. p) if (Visivel) L+= L_aux } } Iluminação e Fotorealismo 2008/09 35
Comparação Path tracing: 10 spp 43. 4 seg Iluminação e Fotorealismo 2008/09 IGI: 1 spp, 128 VPL 41. 1 seg 36
Conjuntos de VPLs • A utilização do mesmo conjunto de VPLs para todos os pixeis resulta numa elevada intercorrelação entre pixeis vizinhos: 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 Iluminação e Fotorealismo 2008/09 37
Conjuntos de VPLs IGI: 1 spp, 128 VPL, 1 set 41. 1 seg Iluminação e Fotorealismo 2008/09 IGI: 1 spp, 128 VPL, 4 set 41. 3 seg 38
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 2008/09 39
Sobre Amostragem IGI: 1 spp, 128 VPL, 1 set 41. 1 seg Iluminação e Fotorealismo 2008/09 IGI: 4 spp, 32 VPL, 4 set 62. 8 seg 40
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 2008/09 41
Pré-Processamento: Algoritmo (importância das fontes de luz) Pre. Process() { 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 (Random. Float()>pcontinue) termina trajecto } } } Iluminação e Fotorealismo 2008/09 42
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ões Um observador localizado numa divisão não beneficia da maioria destas VPLs Iluminação e Fotorealismo 2008/09 43
Selecção da fonte de luz: oclusão Múltiplas (9) cópias da Cornell Box Com iluminação indirecta Iluminação e Fotorealismo 2008/09 44
Selecção da fonte de luz: oclusão 1 única Cornell Box IGI: 8 spp, 16 VPL, 8 set 112 seg Iluminação e Fotorealismo 2008/09 9 Cornell Box IGI: 8 spp, 16 VPL, 8 set 172 seg 45
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 2008/09 46
- Slides: 46