Entendendo as Adaptive Lights

Tomasz Wyszołmirskida Dabarti, é um beta tester do V-Ray para 3ds Max e vem testando uma nova opção chamada Adaptive Lights que deverá estar disponível no service pack 5 do V-Ray. Ele escreveu um post em seu blog mostrando quão mais rápida a opção Adaptive Lights pode ser.

(este artigo foi originalmente publicado no blog do Chaos Group Labs)

Mas o que é Adaptive Light? Enquanto raytracing continua sendo a forma mais interessante e realista de renderizar o comportamento de luzes, o algoritmo apresenta uma série de desafios. Um problema comum ocorre com cenas que possuam muitas luzes. Quando o V-Ray 3.0 foi lançado, introduzimos uma maneira simples de lidar com isso chamada Probabilistic Lights. No vindouro service pack 5 do V-Ray 3 introduziremos um método melhorado chamado Adaptive Lights.

Disclaimer: Adaptive Lights ainda está em desenvolvimento e os exemplos e resultados abaixo não necessariamente representam o produto final.

Para um melhor entendimento, vamos quebrar os diferentes métodos para avaliar fontes de luz em um determinado ponto da cena.

Full lighting:

É a forma como lidávamos com muitas fontes de luz até a versão 3. Neste método, para cada raio lançado, iríamos avaliar cada fonte de luz. Em cenas com 5 ou 10 luzes isso não é um problema, mas com centenas ou milhares de luzes o tempo de render aumentava drasticamente.

lights_full_01

Probabilistic Lights:

Neste método, para cada raio escolhido randomicamente, escolhemos um pequeno número fixo de luzes. O padrão é 16 luzes, mas em nossos exemplos adotaremos 5 para efeito ilustrativo. Isto reduz drasticamente o número de cálculos para cada ponto. Como o próximo raio escolhe outras 5 luzes, e geralmente lançamos milhões de raios, na média todas as luzes acabam sendo levadas em consideração. De forma geral, este método é mais rápido do que o método anterior, que leva em consideração todas as luzes em todos os raios lançados.  Entretanto, uma desvantagem é que isso pode introduzir mais noise na imagem e precisar de mais samples para limpar realmente. Adicionalmente, alguns pontos podem levar em conta luzes que não são visíveis ou não contribuem com a iluminação daquela área.

lights_probabilistic_01

Adaptive Lights:

Este método é baseado no método de probabilistic method mas é mais esperto sobre quais luzes seleciona para avaliação, utilizando o pass de Light Cache. O Light Cache é geralmente usado para Global Illumination, mas também fornece ao V-Ray uma boa ideia geral do que realmente está acontecendo na cena. No final, o resultado é que ao invés de escolher 5 luzes aleatórias, podemos escolher 5 luzes com grande probabilidade de afetar um determinado ponto. Isso ajuda o V-Ray a alcançar uma solução limpa muito mais rápido.

lights_adaptive_01

Sendo mais claro, o Probabilistic Lights era e pode ainda ser uma maneira mais inteligente de lidar com um grande número de luzes num render raytraced. Mas sendo um pouco mais inteligentes na seleção das luzes baseado no resultado do Light Cache, Adaptive Lights é geralmente melhor.

No exemplo a seguir, exploramos um grande espaço com muitas divisões. Colocamos 168 luzes na cena e comparamos as avaliações de luzes Full, Probabilistic, e Adaptive em 3 condições diferentes.

Luzes baixas

No primeiro teste, colocamos as luzes numa altura bastante baixa na cena. Como há paredes, a maioria das luzes só afetam áreas próximas.

office_low_01

Luzes a média altura

Agora levantamos as luzes a uma altura média, aumentando sua influência nas áreas vizinhas.

office_mid_01

Luzes altas

Por último, levantamos as luzes de forma que todas afetem uma grande parte da cena.

office_high_01

Todas as imagens são renderizadas com o mesmo noise threshold de forma a terem níveis de noise semelhantes. Estes são os resultados:

2016-11-17_15h37_19

Apesar de o teste ter sido pensado especificamente para demonstrar a vantagem do novo método Adaptivo, ele acaba também mostrando que existem condições onde o método Probabilístico pode realmente ser menos vantajoso devido ao nível de noise gerado na imagem. Ao mesmo tempo, o método Adaptivo consistentemente demonstra boa performance. Mesmo em condições onde o método Probabilístico vai bem, o Adaptivo ainda melhora os resultados e renderiza mais rápido.

Sugerimos fortemente que você visite o post de Tomasz Wyszołmirski  para ver seu extensivo teste de benchmark entre Full vs Probabilistic vs Adaptive.

1 comentário

Deixe uma resposta

%d blogueiros gostam disto: