16
Um framework para renderizações foto-realistas de cenas com realidade aumentada Aldo René Zang and Luiz Velho Visgraf Laboratory, IMPA [email protected], [email protected] WWW home page: http://www.visgraf.impa.br Resumo Cenários com realidade aumentada são utilizados a diário em todo tipo de aplicações que vão desde cinema, televisão, publicidade até simulações científicas. O problema principal de construir uma cena au- mentada foto-realista é conseguir um resultado foto-realista através de uma única renderização direta, sem necessidade de pós-produção. Vi- sando este problema, estamos propondo um framework de renderização para cenas aumentadas onde a cena final pode ser calculada numa única renderização direta sem necessidade de pós-processamento. A principal novidade neste framework é a maneira de realizar a renderização de ob- jetos mistos, reais e sintéticos, simultaneamente. Abstract. Scenes with augmented reality are used daily in all kinds of applications ranging from film, television, advertising, up scientific si- mulations. The main problem of building an photo-realistic augmented scene is to achieve a photo realistic result through a single rendering, without need post-production. Aiming this problem, we propose a ren- dering framework for augmented scenes where the final scene can be calculated in a single direct rendering without need post processing. The main novelty in this framework is the way to perform rendering real and synthetic objects simultaneously. Keywords: Augmented reality, photorealism, photo-realistic rendering, hdri, ibl illumination, 3d modeling 1 Introdução Para a industria do cinema e outras que dependem de imagens foto-realistas, é indispensável contar com um arcabouço eficiente que permita renderizar cenários baseados em iluminação real e completar cenas reais capturadas com elementos sintéticos de maneira foto-realista, i.e., de forma que os objetos inseridos artifici- almente pareçam formar parte da cena real onde foram introduzidos. Atualmente muito tempo é gasto na combinação, ajuste e retoque digital das cenas reais e sintéticas, que são renderizadas por separado e combinadas numa imagem final. Como o ajuste manual nem sempre é fácil, o retoque e edição final torna-se indispensável na maioria dos casos. Isto é aceitável em imagens estáticas mas torna-se inviável em cenas dinâmicas, como um vídeo por exemplo.

Um framework para renderizações foto-realistas de cenas ... · de cenas com realidade aumentada AldoRenéZangandLuizVelho VisgrafLaboratory,IMPA ... muito tempo é gasto na combinação,

Embed Size (px)

Citation preview

Um framework para renderizações foto-realistasde cenas com realidade aumentada

Aldo René Zang and Luiz Velho

Visgraf Laboratory, [email protected], [email protected]

WWW home page: http://www.visgraf.impa.br

Resumo Cenários com realidade aumentada são utilizados a diário emtodo tipo de aplicações que vão desde cinema, televisão, publicidade atésimulações científicas. O problema principal de construir uma cena au-mentada foto-realista é conseguir um resultado foto-realista através deuma única renderização direta, sem necessidade de pós-produção. Vi-sando este problema, estamos propondo um framework de renderizaçãopara cenas aumentadas onde a cena final pode ser calculada numa únicarenderização direta sem necessidade de pós-processamento. A principalnovidade neste framework é a maneira de realizar a renderização de ob-jetos mistos, reais e sintéticos, simultaneamente.

Abstract. Scenes with augmented reality are used daily in all kindsof applications ranging from film, television, advertising, up scientific si-mulations. The main problem of building an photo-realistic augmentedscene is to achieve a photo realistic result through a single rendering,without need post-production. Aiming this problem, we propose a ren-dering framework for augmented scenes where the final scene can becalculated in a single direct rendering without need post processing. Themain novelty in this framework is the way to perform rendering real andsynthetic objects simultaneously.

Keywords: Augmented reality, photorealism, photo-realistic rendering,hdri, ibl illumination, 3d modeling

1 Introdução

Para a industria do cinema e outras que dependem de imagens foto-realistas, éindispensável contar com um arcabouço eficiente que permita renderizar cenáriosbaseados em iluminação real e completar cenas reais capturadas com elementossintéticos de maneira foto-realista, i.e., de forma que os objetos inseridos artifici-almente pareçam formar parte da cena real onde foram introduzidos. Atualmentemuito tempo é gasto na combinação, ajuste e retoque digital das cenas reais esintéticas, que são renderizadas por separado e combinadas numa imagem final.Como o ajuste manual nem sempre é fácil, o retoque e edição final torna-seindispensável na maioria dos casos. Isto é aceitável em imagens estáticas mastorna-se inviável em cenas dinâmicas, como um vídeo por exemplo.

Aldo René Zang, Luiz Velho

Nossa proposta para este problema é um framework para renderização foto-realista de objetos sintéticos imersos num cenário real. Como parte do trabalhodesenvolvemos um software open source, ARLuxrender, que permite renderizarcenas mistas incluindo objetos reais e sintéticos, i.e., cenas com realidade aumen-tada. Um dos méritos desta proposta é conseguir uma renderização foto-realistaa partir de uma quantidade mínima de informação tal como uma fotografia dacena real e o mapa de iluminação correspondente.

2 Trabalhos relacionados

A forma mais simples de iluminação baseada em imagens, obtida a partir deuma esfera espelhada, é conhecida como mapeamento de reflexão. Nesta técnica,a imagem recebe diretamente uma distorção e é aplicada à superfície do objetosintético. A aplicação da técnica utilizando fotografias de um cenário real foirealizada independentemente por Gene Miller [1] e Mike Chou [2]. Pouco tempodepois, a técnica já foi utilizada na indústria do entretenimento para simularas reflexões sobre objetos prateados, como a espaçonave no filme Flight of theNavigator, de Randal Kleiser em 1986 e o robô T1000 do filme Terminator 2dirigida por James Cameron em 1991.

Debevec e Malik [3] desenvolveram uma técnica para capturar a totalidadeda gama dinâmica da luz em uma cena. São tomadas fotografias da cena comdiferentes configurações de exposição da câmera. Depois, calculando a curva deresposta da câmera, as imagens de gama dinâmica limitada são reunidas numaúnica imagem de alta gama dinâmica que representa a radiância real para cadaponto da cena. Em 1998 Debevec apresentou uma abordagem para iluminarobjetos sintéticos com iluminação extraída do mundo real, técnica conhecidacomo iluminação baseada em imagens (IBL) [4]. A ideia básica na técnica deIBL é utilizar a iluminação real combinada a um sistema de iluminação globalpara simular a iluminação incidente sobre os objetos sintéticos.

3 Framework de renderização foto-realista de cenasaumentadas

Podemos descrever o processo de criação de uma cena com realidade aumentadanuma sequência de passos que devem ser seguidos para obter a renderização dacena final. Estes passos são:

(a) Posicionamento da câmera para capturar a imagem de fundo da cena real.(b) Posicionamento da câmera para capturar a iluminação.(c) Calibração das câmeras principal e de captura de iluminação.(d) Ensamblagem do mapa hdr e o fundo hdr com as imagens obtidas.(e) Modelagem dos objetos sintéticos e da cena real local que interage com eles.(f) Renderização da cena aumentada.

A seguir detalharemos brevemente estes passos para finalmente focar nossaatenção no processo de renderização.

Aldo René Zang, Luiz Velho

Captura dacena Real

Captura dailuminação

Calibração de câmeras

ModelagemARLuxblend

RenderizaçãoARLuxrender

Mapa de iluminação

Captura Processamento Render

Framework

{Figura 1. Framework de renderização para realidade aumentada.

3.1 Calibração de câmeras

Para obter os parâmetros das câmeras utilizadas para capturar a iluminação ea imagem de fundo da cena foi utilizado um software de calibração de câmerasbaseado no método Tsai de calibração [5], [6]. Este software permite calibrarsimultaneamente as duas câmeras utilizadas, figura (2).

Os dados da calibração são guardados num arquivo para ser utilizado durantea modelagem e renderização da cena aumentada. O arquivo contêm o lookat,campo de visão (fov) e a distância focal da câmera principal. Também é guardadaa matriz da transformação que determina a posição do mapa de iluminação.Todos os dados de posição estão no sistema de coordenadas utilizado.

Utilizamos a abordagem de duas câmeras pois nem sempre será possívelcapturar a iluminação utilizando a posição da câmera principal. Ao utilizar duasposições de câmera é preciso lembrar de manter fixo o sistema de coordenadasdo mundo para conseguir uma calibração correta, i.e., a posição do tabuleiro decalibração deve ser a mesma para ambas as câmeras.

Figura 2. Software de calibração baseado no método de Tsai. A imagem do lado es-querdo é utilizada para calibrar a câmera principal e a imagem do lado direito paracalibrar a câmera de captura da iluminação.

Aldo René Zang, Luiz Velho

3.2 Captura da iluminação do ambiente

Consideramos duas maneiras de construir um mapa de iluminação hdr :

– a partir de fotografias de uma esfera reflexiva ;– mediante vídeo hdr, utilizando uma câmera de vídeo panorâmico (Ladybug);

Apôs o estudo destas duas opções, concluímos que é conveniente utilizar umaesfera reflexiva quando a iluminação é estática, tanto para processar imagens ouvídeo. Em situações onde o ambiente de iluminação é dinâmico a melhor opçãoé utilizar uma câmera de vídeo panorâmico.

(a) câmera Ladybug. (b) Esfera para capturar ailuminação.

(c) Tabuleiro de calibração.

Figura 3. (c): Tabuleiro colocado para marcar o sistema de coordenadas e realizar acalibração de câmera. Observe que a esfera reflexiva encontra-se próxima da origem dosistema de coordenadas.

Em ambos os casos, tanto a esfera reflexiva quanto a câmera Ladybug de-vem ser colocadas próximos da origem do sistema de coordenadas utilizado, paraevitar distorções perceptíveis nas sombras e reflexões produzidas pelo mapa deiluminação sobre os objetos sintéticos, figura 3(c). Também é necessário que osobjetos inseridos na cena fiquem próximos da origem do sistema de coordena-das para evitar as distorções citadas anteriormente. Uma descrição detalhada doprocesso de captura do mapa de iluminação pode ser encontrada em [7].

3.3 Modelagem da cena

A modelagem da cena pode ser realizada em qualquer software de modelagemque possibilite exportar a cena para Luxrender, porém existem parâmetros espe-cíficos do ARLuxrender. Com a finalidade de oferecer facilidade e conforto parao artista, desenvolvemos uma extensão, ARLuxblend, do plugin Luxblend paraBlender, que permite setar todos os parâmetros durante o processo de modela-gem. Desta forma ao exportar a cena final não são necessárias mais intervençõespor parte do usuário.

Aldo René Zang, Luiz Velho

Entre os elementos adicionais que incluímos no ARLuxblend podemos citar:

– controles para carregar o lookat da câmera e a transformação do mapa deiluminação da cena;

– controles para criar e setar projetores de texturas;– controles para setar as propriedades das superfícies reais de suporte;– controles para carregar a imagem de fundo da cena real, a ser utilizada como

fundo;

(a) Modelagem em Blender (b) Painel de opções de malhas

Figura 4. A cena do Blender é exportada para o formato de cena do ARLuxrenderutilizando o plugin ARLuxblend.

3.4 Renderização

O aspecto inovador do framework que estamos propondo é forma em que a ren-derização da cena aumentada é realizada. A técnica tradicional, patenteada porDevebec [4], consiste em renderizar por separado os objetos sintéticos e depoisadicionar os mesmos à cena real fazendo uma combinação da renderização coma imagem da cena real através de uma técnica diferencial. Este procedimentoresolve o problema em casos simples onde a interação entre os objetos sintéti-cos e reais não é muito complexa. Nossa proposta não requer de varias etapasde renderização e combinação de resultados parciais, simplesmente passamos acena aumentada modelada e exportada com ARLuxblend e o renderizador AR-Luxrender que desenvolvemos encarrega-se de renderizar, sem necessidade depós-processamento.

Aldo René Zang, Luiz Velho

4 Renderização de cenas com realidade aumentada

Uma cena de realidade aumentada é composta essencialmente por dois tipos deobjetos: os que existem na cena real capturada, e os elementos sintéticos quedesejamos adicionar à cena real. Para obter uma renderização de uma cena au-mentada é necessário computar as interações entre os objetos sintéticos e osobjetos reais, tais como sombras e reflexões, e inclui-las na renderização au-mentada da cena real. Assim, um renderizador para cenas aumentadas deve sercapaz de utilizar toda a informação disponível para contabilizar as interaçõesfaltantes de maneira consistente com as que já são conhecidas através da cenareal capturada.

Nosso sistema de renderização para realidade aumentada é desenvolvido so-bre a base de alguns conceitos e estruturas que não formam parte de outrosrenderizadores. A seguir iremos descrever as ideias necessárias para construir osistema de renderização aumentada.

4.1 Primitivos: superfícies sintéticas e superfícies reais de suporte

Nas cenas de realidade aumentada introduzimos um novo nível de classificaçãopara os primitivos de superfície, separando-os em superfícies sintéticas, aquelasque correspondem a objetos sintéticos que o usuário deseja adicionar à cena real,e superfícies reais de suporte, que correspondem a objetos da cena real que sãomodelados na cena aumentada. Na hora de criar uma cena aumentada, não énecessário modelar todas as superfícies da cena real, senão somente aquelas queterão interação visível com os objetos sintéticos a serem inseridos pelo usuário.Estes elementos reais que interagem com os elementos sintéticos conformam adenominada cena local.

Objetos sintéticos

Objetos reais de suporte

(a)

won

n

wo

p

p

Eye

Lo(p, wo)

(b)

Figura 5. (a): Classificação de superfícies da cena aumentada. (b): Os primitivos bási-cos para classificação são os triângulos que formam as malhas dos objetos. No exemploo tampo da mesa é modelado com um plano que tem uma malha com 2 triângulos.

Aldo René Zang, Luiz Velho

Neste framework a classificação das superfícies em sintéticas e reais de suporteé realizada utilizando uma variável booleana para armazenar a informação.

– boolean support = true : trata-se de uma superfície real de suporte dacena real, modelada para capturar interações com os objetos sintéticos.

– boolean support = false : trata-se de uma superfície sintética adicionadapelo usuário.

4.2 Visibilidade: testes de oclusão

Para saber se uma determinada luz Li deposita energia num ponto p sobre umasuperfície, é preciso saber se existe um raio contínuo desde o ponto p à fontede luz. Os raios que são obstruídos por algum objeto não depositam energia edeterminam uma sombra sobre a superfície no ponto p.

O teste de visibilidade convencional, TestOcclusion(ray r), devolve um resul-tado false se algum objeto da cena é interceptado pelo raio r e true quando nãohá interseção.

Nas cenas de realidade aumentada não é suficiente o teste de visibilidadeconvencional. Imagine um ponto p de uma superfície real de suporte. Como todasas interações entre objetos reais estão contabilizadas na fotografia da cena real,não é necessário determinar sombras produzidas por outros objetos reais e sim asque são produzidas pelos objetos sintéticos. Sendo assim, estamos interessadosem saber se a primeira interseção, se existir, do raio r que parte do ponto pé com um objeto sintético. Na tabela 1 apresentamos os resultados do novoteste de visibilidade proposto. Numa interseção com um objeto real de suportepodemos escolher o valor do teste escolhendo adequadamente o valor da variávelnull_shp_isect. Os testes com ausência de interseção ou uma interseção com umobjeto sintético fornece um resultado igual ao teste convencional.

Tabela 1. Resultados do teste de visibilidade para realidade aumentada TestOcclu-sion(ray r, bool null_shp_isect ).

Desconsiderar interseção com objetos de suporte?Primeira interseção: SIM (null_shp_isect= true) NÃO (null_shp_isect= false)

objeto sintético false falseobjeto real de suporte true false

sem interseção true true

4.3 Espalhamento da luz: BSDF para superfícies reais de suporte

A equação de espalhamento (1), utilizada no cálculo da iluminação direta, dizque a radiância Lo(p, ωo) que emana de um ponto p na direção ωo é a somada radiância Le(p, ωo) emitida pela superfície no ponto p mais a integral da

Aldo René Zang, Luiz Velho

radiância Li(p, ωi) entrante sobre a esfera S2, multiplicado pela BSDF f paracada direção ωi e o cosseno do ângulo entre a normal np à superfície em p e adireção ωi na esfera S2.

Lo(p, ωo) = Le(p, ωo) +

∫S2f(p, ωo, ωi)Li(p, ωi) 〈ωi, np〉dωi, (1)

A equação (1) também vale para a fotografia utilizada como base para au-mentar a cena, pois a mesma pode ser considerada como o resultado de umarenderização, neste caso feita pela própria câmera fotográfica.

Neste trabalho não modelamos objetos reais emissivos, logo Le(p, ωo) = 0para todo ponto p pertencente a uma superfície real de suporte. Devido ao altocusto computacional da equação de espalhamento (1), a integral do lado direitoé aproximada utilizando estimativas de Monte Carlo. Portanto

Lo(p, ωo) =1

N

N∑j=1

f(p, ωo, ωj)Mapa(ωj) 〈ωj , np〉p(ωj)

, (2)

onde 〈ωj , np〉 > 0, e p(ωj) é a probabilidade de amostrar a direção ωj no mapade iluminação. O valor da probabilidade p(ωj) é dado por

p(ωj) =Luminancia(Mapa(ωj))∫

S2 Luminancia(Mapa(ωs))dωs.

Para superfícies reais de suporte calculamos a estimativa de Monte Carlo apro-ximando a equação (2) como um produto de dois termos. Fazemos isto porquea radiância de um ponto p pertencente a uma superfície real já é conhecidana imagem capturada como fundo. Somente estamos interessados em levar emconsideração a probabilidade de amostragem da iluminação para computar assombras. Seguindo este conceito formulamos a estimativa de Monte Carlo parauma superfície real como:

Lo(p, ωo) =1

N

N∑j=1

Bcolor(p, ωo) · 〈ωj , np〉p(ωj)

(3)

Agora, sendo p é um ponto numa superfície real de suporte, o valor Lo(p, ωo)também pode ser determinado diretamente com a fotografia da cena, a partir dadireção ωo como ilustrado na figura 5(b). Portanto reescrevendo a equação (3)para isolar o termo Bcolor(p, ωo) obtemos

Bcolor(p, ωo) = Lo(p, ωo) · 1

N

N∑j=1

p(ωj)

〈ωj , np〉. (4)

Quando a quantidade de amostras N cresce temos que

1

N

N∑j=1

p(ωj)

〈ωj , np〉−→

∫S2 Luminancia(Mapa(ωs))dωs∫

H2 Luminancia(Mapa(ωj)) 〈ωj , np〉dωj, (5)

Aldo René Zang, Luiz Velho

portanto podemos escrever (4) como

Bcolor(p, ωo) = Lo(p, ωo) · LightScale(np), (6)

onde

LightScale(np) =

∫S2 Luminancia(Mapa(ωs))dωs∫

H2 Luminancia(Mapa(ωj)) 〈ωj , np〉dωj. (7)

Qualquer objeto da cena é modelado por uma malha de triângulos, logo osprimitivos geométricos de superfícies são triângulos. Como é inviável calcular ovalor LightScale para cada raio r que intercepta um ponto p de uma super-fície real de suporte, optamos por um pré-processamento. Calculamos o valorLightScale(np) para cada triângulo da cena que pertence a uma superfície realde suporte, utilizando a normal, np, do triângulo. Cada valor LightScale calcu-lado é guardado numa variável no seu primitivo correspondente. Desta forma,durante a renderização para calcular um valor Bcolor(p, ωo) basta acessar afotografia de fundo da cena, carregada como textura, para obter Lo(p, ωo) eprocurar no primitivo do ponto p pelo valor LightScale que foi calculado nopré-processamento inicial.

4.4 Pré-processamento da iluminação para superfícies reais desuporte

Como o mapa de iluminação é representado por uma imagem podemos compu-tar a integral (7) somando sobre os pixeis da imagem do mapa. Isto é demoradoquando a quantidade de primitivos reais de suporte é elevado, portanto imple-mentamos uma alternativa que transforma o mapa num conjunto de luzes dire-cionais cuja radiância total é equivalente à radiância total do mapa. Assim emlugar de somar sobre o mapa aplicamos a soma integral sobre o grupo finito deluzes direcionais para ter uma estimativa rápida da iluminação. Para discretizaro mapa utilizamos o método de corte mediano descrito por Debevec [8]. Tam-bém é possível aplicar outros métodos como por exemplo o de Ostromoukhov [9],estudado por Zang em [10]. Normalmente um mapa é discretizado utilizando-se 1024 = 210 luzes, o que permite obter um incremento de performance de29 = 512 vezes para mapas de 1024× 512 pixeis. A equação (7) calculada sobrea representação discretizada do mapa de iluminação aproximado pelo conjuntoLd(i) de K luzes direcionais é

LightScale(n) =

∑Ki=1 Ld(i)∑K

i=1 Ld(i) 〈ωi, n〉, tal que 〈ωi, n〉 > 0. (8)

5 Traçado de raios para realidade aumentada

Para compreender o processo de traçado de raios que estamos propondo paracenas de realidade aumentada é necessário entender como funciona a equação detransporte de luz (LTE ), formulada por Kajiya [11], e que descreve os fenômenosde interação global entre as fontes luminosas e as superfícies da cena.

Aldo René Zang, Luiz Velho

5.1 A equação de transporte de luz como integral sobre caminhos

É possível descrever a partir da LTE a radiância incidente no ponto p0 desdeo ponto p1, onde p1 é o primeiro ponto sobre uma superfície ao longo do raiopartindo de p0 na direção p1 − p0:

L(p1 → p0) = Le(p1 → p0) +

∫A

Le(p2 → p1)f(p2 → p1 → p0)G(p2 ↔ p1)dA(p2)

+

∫A

∫A

Le(p3 → p2)f(p3 → p2 → p1)G(p3 ↔ p2)

f(p2 → p1 → p0)G(p2 ↔ p1)dA(p3)dA(p2) + · · ·

Figura 6. A integral de todos os pontos p2 e p3 em superfícies da cena da a contribuiçãototal de radiância, partindo de p1 na direção de p0, dada por dois segmentos de caminho.As componentes do integrando são: a radiância emitida luz Le, os termos geométricosentre os vértices G, e o espalhamento das BSDFs, f .

Cada termo do lado direito da equação representa um caminho de compri-mento crescente. Por exemplo, o terceiro termo é ilustrado na figura (6). Estecaminho tem 4 vértices, conetados por três segmentos. A contribuição total detodos os caminhos de longitude 4 é dado pelo terceiro termo. O somatório infinitoda equação pode ser escrito da seguinte maneira:

L(p1 → p0) =

∞∑i=1

P (p̄i), (9)

onde P (p̄i) é a radiância espalhada ao longo de todos os caminhos p̄i com i + 1vértices, p̄i = (p0, p1, · · · , pi) com p0 posicionado na câmera e pi na fonte de luz.Assim

P (p̄i) =

∫A

∫A

· · ·∫A︸ ︷︷ ︸

i−1

Le(pi → pi−1)T (p̄i)dA(p2) · · · dA(pi),

Aldo René Zang, Luiz Velho

donde

T (p̄i) =

i−1∏j=1

f(pj+1 → pj → pj−1)G(pj+1 ↔ pj).

descreve a porção de radiância da fonte de luz que chega até a câmera depois desofrer difusão em todos os vértices ao longo do caminho.

Dada a equação (9) e um comprimento fixo i, para calcular uma estimativade Monte Carlo da radiância que chega ao ponto p0 através dos caminhos decomprimento i, é preciso amostrar um conjunto de vértices com uma densidadede amostragem apropriada, e estimar P (p̄i) usando os vértices amostrados. Maisdetalhes sobre a equação de transporte podem ser encontrados em [12].

5.2 Integrador ARPath: Traçado de caminhos para realidadeaumentada

O algoritmo de traçado de caminhos calcula uma estimativa do somatório (9)construindo, para cada raio que parte da câmera, um caminho contínuo linearpor partes onde o primeiro vértice, p0, encontra-se na câmera, o último vértice,pi, está sobre uma fonte de luz e os vértices intermediários, pk, encontram-sesobre os objetos da cena, como na figura (6).

A implementação do algoritmo de traçado de caminhos que utilizamos re-solve a equação de iluminação realizando a construção incremental do caminho,começando pelo vértice p0 na câmera. Em cada vértice, a BSDF é amostradapara gerar uma nova direção. O próximo vértice pk+1 é encontrado traçando umraio desde pk na direção amostrada e encontrando a primeira intersecção comalgum objeto da cena. Para cada vértice pk com k = 1, · · · , i − 1 é calculada aradiância espalhada no ponto pk na direção pk−1 − pk. Este cálculo é efetuadoda maneira tradicional se pk pertence a uma superfície sintética e utilizandoa aproximação dada pela equação (3) se pk pertence a uma superfície real desuporte.

Um caminho p̄i = (p0, · · · , pi) pode ser classificado segundo seus vérticescomo:

– Caminho real: os vértices pk, k = 1, · · · , i− 1 estão sobre superfícies reaisde suporte.

– Caminho sintético: os vértices pk, k = 1, · · · , i−1 estão sobre a superfíciede objetos sintéticos.

– Caminho misto: alguns vértices são sintéticos e outros reais.

Caminhos reais não precisam ser calculados pois já foram computados nafotografia, no entanto como a cena local foi modelada, devemos renderiza-lanovamente e sua radiância deve coincidir com a fotografia original. Fazemos istoagrupando toda a informação de radiância de um caminho real no vértice p1na forma de iluminação direta, não sendo necessário mais cálculos nos vérticesseguintes.

Tanto os caminhos sintéticos quanto os mistos são calculados de maneirasimilar, contabilizando a contribuição da iluminação direta em cada vértice do

Aldo René Zang, Luiz Velho

caminho. A diferença está na estimativa de Monte Carlo utilizada em cada caso.A figura (7) ilustra os tipos de caminhos e o cálculo que é realizado nos vérticesem cada caso.

Na prática somente necessitamos saber se num momento dado da constru-ção os vértices do caminho são todos reais de suporte ou se existe pelo menosum vértice que pertence a uma superfície sintética. Utilizamos então uma variá-vel booleana path_type para especificar se o caminho atual contem um vérticesintético ou não. O valor da variável é atualizado a cada novo vértice que éadicionado ao caminho. Seguidamente apresentamos o algoritmo de traçado decaminhos utilizado:

Algorithm 1 ARPath IntegratorPasso 0.1 Iniciar a variável de contribuição de radiância do caminho: L = 0;Passo 0.2 Iniciar o índice do comprimento do caminho: idx = 0;Passo 0.3 Iniciar a variável path_type = false;Passo 1. Calcular a direção D0 do raio que parte do vértice p0 na câmera;Passo 2. Incrementar o comprimento do caminho, idx = idx+ 1.Passo 3. Encontrar o próximo vértice do caminho, pidx, calculando a interseção dadireção Didx−1 com a cena;Passo 4. Se o vértice pidx pertence a uma sup. real de suporte, path_type = true;Passo 5. Se o vértice pidx for emissivo adicionar sua radiância na contribuição L;Passo 6. Avaliar a BSDF no vértice pidx.Passo 7. Amostrar as fontes de iluminação e calcular a contribuição da iluminaçãodireta no vértice pidx. Adicionar o valor na contribuição L.Passo 8. Amostrar a BSDF para obter uma nova direção Didx para o caminho;Passo 9. Utilizar Roleta Russa para determinar se interrompe ou continua o processode construção do caminho.Passo 10. Se o processo de construção continua, volta para o Passo 2. Se o caminhofor interrompido vai para o Passo 11.Passo 11. Devolve o valor da radiância L.

p0

p1

p2

p3

p0

p1

p2

p3

p0

p1

p2

p3

p4

p5

caminho real caminho misto caminho sintético

Figura 7. Tipos de caminhos e cálculo da iluminação. Objetos vermelhos são superfí-cies reais de suporte. Objetos azuis são sintéticos. Os cones amarelos significam que ailuminação direta foi computada no vértice pi correspondente.

Aldo René Zang, Luiz Velho

A seguir apresentamos um pseudo-código que irá ilustrar mais detalhada-mente o cálculo realizado no Passo 7 do Algoritmo 1.ESTIMATE DIRECT LIGHT CONTRIBUTIONINPUT VARS: Point p , Normal n , Vector wo , BSDF bsdf , int rayDepth , bool

path_type ;Spectrum Ld = 0 ;i f (p ver tex i s r e a l support su r f a c e ) {

i f ( path_type i s true ) OR ( rayDepth == 0 ) {i f ( bsdf i s D i f f u s e ) {

//trace only a single shadow rayi f ( Occ lus ionTest ( r , true ) has no i n t e r s e c t i on sT ) //see table 1

Ld += bsdf−>Bcolor ∗ AbsDot (wi , n) ; //equation (3)} else {

// Trace 2 shadow rays and use MIS// Sample l ight source with multiple importance samplingi f ( rayDepth > 0) {

i f ( Occ lus ionTest ( r , fa l se ) has no i n t e r s e c t i o n s ) {Ld += bsdf−>Bcolor ∗ AbsDot (wi , n) ; //equation (3)Ld += bsdf−>f ∗ Li ∗ (AbsDot (wi , n ) / l i gh tPd f ) ; //eq .(2)

}} else {

i f ( Occ lus ionTest ( r , true ) has no i n t e r s e c t i o n s )Ld += bsdf−>Bcolor ∗ AbsDot (wi , n) ; //equation (3)

}// Sample BSDF with multiple importance sampling// Add light contribution from BSDF sampling// Calculated in the same way that for Luxrender

}}

} else {//Here the vertex i s over a s intet ic surface//Light contribution Ld i s calculated using Luxrender code

}return Ld ;

6 Resultados

O framework proposto foi testado na produção de cenas estáticas e tambémem animações com fundo e iluminação estáticos. Também produzimos algumascenas e filmes estereoscópicos utilizando este framework. A seguir apresentamosalguns exemplos de renderizações feitas com este framework. Mais imagens eanimações podem ser encontradas em http://www.impa.br/˜zang/arlux.

Não realizamos comparações de tempo de processamento pois as modificaçõesintroduzidas no código não incrementaram substancialmente o tempo para cenasaumentadas, comparando com o código do Luxrender. Na cena da figura (10) assuperfícies reais de suporte são modeladas com 50000 triângulos e o tempo depré-processamento foi de 3s. num tempo total de renderização de 1000s.

Na figura (6) apresentamos uma comparação entre cenas aumentadas e cenasreais semelhantes. É possível observar que as reflexões no livro e na esfera sãocoerentes com a cena real fotografada. Na figura 11(d) podemos observar comoparte da cena real é distorcida pelos copos sintéticos devido ao efeito de refraçãoda luz. Também é possível observar os reflexos produzidos pelos copos sintéticossobre a capa do livro que se encontra apoiado na mesa. Para capturar estesreflexos foi necessário modelar o livro, tal como pode ser observado na fig. (4).

Aldo René Zang, Luiz Velho

Figura 8. Cenas aumentadas. Os modelos killeroo e as esferas são sintéticos.

(a) Renderizaçãoaumentada.

(b) Fotografia com umaesfera.

(c) Fotografia sem aesfera.

(d) Reflexos.

Figura 9. Comparação entre cenas reais e cenas aumentadas. (a): A esfera foi adici-onada com renderização. (d): Inferior: a renderização do reflexo da fig. (a); Superior:fotografia do reflexo da esfera real (b).

(a) Modelagem. (b) Fotografia da cena real. (c) Renderização aumentada.

Figura 10. Exemplo de cena aumentada com superfícies reais de suporte curvas. Acabeça foi modelada na cena aumentada para incluir as sombras projetadas pelas duasesferas de metal.

Aldo René Zang, Luiz Velho

(a) Imagem da cena real (b) Renderização aumentada.

(c) Detalhes da figura (b). (d) Detalhes da figura (b).

Figura 11. (b): Renderização aumentada. As esferas, os copos e os dois parafusosforam introduzidos na cena.

7 Conclusão e trabalhos futuros

O framework proposto atende aos propósitos de foto-realismo considerados e geraresultados com alto grau de realismo. Como é de se esperar existem cenas proble-máticas onde o realismo fica comprometido. Estes problemas estão relacionadosao fato de estarmos reconstruindo uma cena 3d a partir de uma representaçãofotográfica 2d na qual não temos dados sobre a profundidade. Isto pode ser vistoquando na cena real existem inter-reflexões visíveis e queremos adicionar umobjeto sintético que bloqueia alguma de estas inter-reflexões. Estes problemaspodem ser evitados se a cena for estudada e composta adequadamente. O in-conveniente é que exige uma modelagem mais delicada e alguns conhecimentos

Aldo René Zang, Luiz Velho

adicionais por parte do artista. Estamos satisfeitos pelos resultados conseguidosconsiderando a quantidade de informação de entrada necessária para produziruma cena aumentada. Entre os trabalhos futuros pretendemos estender a técnicapara outro tipo de integradores mais eficientes em tempo de cômputo. Atual-mente o Luxrender está numa versão de desenvolvimento para GPU, e estamosestudando a maneira de incluir no ARLuxrender estas características de rende-rização em GPU. Estamos estudando também outras possibilidades de fazer opré-computo da iluminação para eliminar alguns dos problemas causados pelosefeitos das reflexões. Outro dato importante sobre o método proposto é que arenderização da cena final tem um tempo de cômputo equivalente a uma cenaem Luxrender, i.e., o método não compromete a eficiência. O novo esquema derenderização foi aprovado pela equipe de desenvolvimento do Luxrender para serincluído nas versões futuras do renderizador.

Referências

1. Miller, G. S., and C. R. Hoffmanm, Illumination and Reflection Maps: SimulatedObjects in Simulated and Real Environments, Curse Notes for Advanced ComputerGraphics Animation, SIGGRAPH, 1984.

2. L. Williams, Pyramidal parametrics, SIGGRAPH ’83: Proceedings of the 10th an-nual conference on Computer graphics and interactive techniques, ACM, 1983, vol17(3), pp. 1-11, ISBN:0-89791-109-1.

3. Debevec, P. E. and Malik J., Recovering high dynamic range radiance maps fromphotographs, SIGGRAPH, 1997, pp. 369-378.

4. Debevec, P. E., Rendering Synthetic Objects into Real Scenes: Bridging Traditio-nal and Image-based Graphics with Global Illumination and High Dynamic RangePhotography, SIGGRAPH, 1998, pp. 189-198.

5. Tsai, R. Y. An Efficient and Accurate Camera Calibration Technique for 3D Ma-chine Vision, Proceedings of IEEE Conference on Computer Vision and PatternRecognition, Miami Beach, FL, 1986, pp. 364–374.

6. Tsai, R. Y. A Versatile Camera Calibration Technique for High Accuracy 3D Ma-chine Vision Metrology Using Off-the-Shelf TV Cameras and Lenses, IEEE Journalof Robotics and Automation, Vol. RA–3, No. 4, August 1987, pp. 323–344.

7. Schulz, A., M. Cicconet, B. Madeira, A. Zang, and L. Velho. Techniques for CGMusic Video Production: the making of Dance to the Music / Play to the Motion.Technical Report TR-2010-04, Laboratorio VISGRAF - IMPA, March 2010.

8. Debevec, P. E., A median cut algorithm for light probe sampling, SIGGRAPHPoster, 2005.

9. Ostromoukhov, V. , C. Donohu, and P. Jodoin, Fast hierarchical importance sam-pling with blue noise properties, ACM Trans. Graph., 2004, vol. 23(3), pp. 488-495.

10. Zang, A. Esquema Híbrido para Amostragem de Mapas de Iluminação em rende-rizações foto-realistas, Master Thesis, IMPA, Rio de janeiro, 2009.

11. Kajiya, J. T., The rendering equation, SIGGRAPH, 1986, pp. 143-150.12. Pharr, M. and G. Humphreys, Physically Based Rendering: From theory to Imple-

mentation, Morgan Kaufmann Publishers Inc., 2004.