Stochastic Supersampling e Distributed Ray Tracing Francisco Carvalho Felipe Leal Vítor Teixeira Costa Stochastic Supersampling Roteiro • • • • • Aliasing Stochastic Sampling Uniform Point Sampling Poisson Disk Sampling Regular Grid Jittering Aliasing • Aliasing está intrinsecamente ligada à natureza de amostragem discreta do ray tracing • Fenômenos contínuos X Amostragem discreta • Limite de Nyquist Aliasing • Supersampling: – Maneira mais simples de diminuir efeitos de aliasing – Vários raios disparados por pixel (3 x 3), regularmente distribuidos – Não resolve o problema de aliasing, apenas ameniza os seus efeitos – Bom começo para melhores técnicas Aliasing • Adaptive Supersampling: – Pequena amostra inicial – Se os raios tiverem aproximadamente a mesma cor, o pixel será a média das cores – Senão, subdivide-se o pixel em regiões ainda menores – Mesmo assim, ainda há problemas – Ainda usa um grid regular e fixo de amostras Aliasing • Adaptive Supersampling: Stochastic Sampling • Técnica de “Monte Carlo”, onde a imagem é amostrada em locais espaçados não uniformemente • Diferente de Supersampling e Adaptive Supersampling, embora possa ser combinado com um dos dois • Aliasing é substituído por ruído de mesma intensidade Stochastic Sampling • Provê novas capacidades para algoritmos discreto como o ray tracing • Equações físicas envolvem integrais sobre o tempo, area da lente, ângulo de reflexão, etc • Monte Carlo integration • Motion blur, depth of field, penumbra, gloss e translucency Uniform Point Sampling • Em amostras regularmente espaçadas, freqüências acima do limite de Nyquist aparecem como alias, ou seja, aparecem como baixa freqüência • Conseqüência da regularidade do grid de amostragem Uniform Point Sampling Uniform Point Sampling Poisson Disk Sampling • Olho humano • Na fovea, aliasing é evitado porque a lente atua como um filtro passa-baixa • Fora da fovea, aliasing é evitado por causa da distribuição não-uniforme das células • Rhesus monkey Poisson Disk Sampling • Amostras são posicionadas randomicamente com a restrição de que nenhum par de amostras estão mais próximas que uma certa distância. Poisson Disk Sampling Poisson Disk Sampling • Implementação é direta e simples, embora seja muito cara • Lookup table de locais randomicos • Filtros descrevem como cada amostra afeta o pixel vizinho • Lookup table extremamente grande. • Método alternativo: Regular Grid Jittering Regular Grid Jittering • Adição de ruído aos locais de amostragem • Aproximação do disco de Poisson • Sua transformada é similar à transformada da distribuição do disco de Poisson Regular Grid Jittering • “Jittering” possui os seguintes efeitos: – Altas frequências são atenuadas – A energia perdida pela atenuação aparece como ruído uniforme. A intensidade do ruído é igual a intensidade da parte atenuada do sinal – A composição básica do spectro não muda Regular Grid Jittering Regular Grid Jittering • Se existir um número exato de ciclos, nenhuma energia da onda produz aliasing, tudo vira ruído • Se a freqüência não é múltipla de λ, há atenuação de aliasing e adição de ruído • Atenuação é maior para frequências maiores Regular Grid Jittering Regular Grid Jittering • Extensão para duas dimensões • Pixel é um grid regular, contendo um ou mais subpixels, cada um com um ponto de amostragem • Cada ponto de amostragem é colocado no meio do subpixel, então ruído é adicionado ao x e y do ponto independentemente Conclusão • Com a escolha correta da distribuição não-uniforme de amostras as altas freqüências aparecem como ruído • Simples e eficiente aproximação do disco de Poisson. • Aliasing é resolvido • É facilmente extendido para Distributed Ray Tracing Distributed Ray Tracing Preambulo • Modelagem quase natural • Sombreamento, Reflexão, Refração • Direção dos raios é precisa ... ... → Limitações! • Sharp Shadows, Sharp Reflections, Sharp Refraction. • Como modelar certos fenômenos visuais? Roteiro • Idéia Geral: – Distribuir a direção dos raios de acordo com o que eles estão amostrando! • Novas possibilidades: – Fuzzy Reflections / Refractions – Penumbras – Depth of Field – Motion Blur Geral • Uma nova abordagem para síntese • Geralmente associada a oversampling • Distribuir em vez de acrescentar – Várias amostras no tempo x Mesma amostra distribuída ao longo do tempo Reflexões e Refrações • Analiticamente, a intensidade da luz refletida num ponto é dada por uma integral da função de iluminação e da função de reflexão: • Complexo e custoso • Simplificações são assumidas Reflexões e Refrações • As principais: – As fontes de luz são perfeitamente pontuais e L é uma função δ – R (T) é uma função δ – Todas as direções que não sejam fontes de luz podem ser representadas por uma luz ambiental e a integral de R pode ser substituída por uma refletância média Reflexões embaçadas • Fuzzy reflection, gloss, blurred reflection • Obtida amostrando-se o raio refletido de acordo com a função de distribuição especular (função de reflexão) analítica – Highlights serão obtidos quando raios refletirem fontes de luz perfeitamente Translucidez • Fuzzy refraction, translucency, blurred transparency • Obtida amostrando-se o raio refratado de acordo com a função de refração analítica Penumbra • Ocorre quando uma fonte de luz está parcialmente oculta • A intensidade da reflexão é proporcional ao ângulo sólido visível da fonte de luz • Complexidade de determinação deste angulo Penumbra • Obtida distribuindo-se os raios da superfície para toda a fonte luminosa • Pondera-se a distribuição dos raios na área da projeção da fonte de luz • Pesos proporcionais à intensidade luminosa em diferentes partes da fonte • O resultado... Foco • Depth of field, focus • Obtido amostrando-se sobre a área da lente da câmera Foco • Outras abordagens já foram experimentadas – Pós-processamento de uma convolução com um filtro do tamanho do Circulo de Confusão – Maior parte do tempo gasta com pósprocessamento – Não-escalável – Abordagem essencialmente incorreta Foco • De início, lança-se um raio pelo centro da lente (modelo usual ou pinhole) e se encontra a intersecção com o plano focal • Em seguida, seleciona-se um ponto qualquer na lente e lança-se um raio até o plano focal • Este raio estará dentro do cone que gerará o círculo de confusão esperado Foco • O Círculo de confusão para uma dada distância da lente tem diâmetro C dado por: • Para uma dada distância D, os raios que lançamos ficam dentro de um cone de raio r, aonde Foco • Este raio visto através da lente terá tamanho igual a C/2, confirmando a hipótese • Como no olho humano, pontos dentro do cone afetam a imagem, e pontos fora deste cone não o fazem • Tudo o que é necessário é a distância focal da lente (F) e o aperture number (n) Motion Blur • “Rastros” no movimento • Obtido amostrando-se ao longo do tempo • Outras tentativas foram feitas, mas todas tem problemas Motion Blur • Proposta: – Amostrar normalmente e em seguida aplicar um filtro de blur • Problema: – Além do acréscimo de custo, objetos escondidos na amostragem estática podem aparecer por parte do tempo e não serão exibidos Motion Blur • Proposta: – Conhecer o objeto em movimento e o resto da cena separadamente • Problemas: – Caso do biplane – Nem sempre as cenas podem ser separadas em seus elementos facilmente – Esta abordagem não permite mudanças na visibilidade de um objeto (rotações!) Motion Blur • Um complicador aparece quando se trata de shading variável • Se calculássemos uma iluminação por unidade de tempo: – Texturas () – Highlights () (caso do pião) – Sombras () (caso da estroboscopia) Motion Blur • • • • Escolhe-se um momento para o raio Atualiza-se as posições dos objetos Lança-se o raio normalmente A distribuição dos raios pode ser uniforme ou proporcional ao valor do filtro temporal para cada dado instante Composição do Algoritmo • Motion Blur – Escolhe-se o tempo para o raio – Atualiza-se as posições dos objetos • Foco – Lança-se um raio do ponto de vista para um ponto na tela – Lança-se outro raio de algum ponto da lente para o ponto focal obtido, determinando o objeto atingido • Penumbra – Para cada fonte de luz, escolher um alvo na fonte e disparar um raio • Reflexões – Escolher uma direção de reflexão e lançar um raio nela • Refrações – Escolher uma direção de refração e lançar um raio nela Conclusão • Um novo paradigma para problemas antigos • Não são soluções pontuais para problemas pontuais • Os problemas “não poderiam ter sido resolvidos separadamente” por serem fenômenos interrelacionados • A chave para a solução é a capacidade de se fazer anti-aliasing em técnicas de point sampling como Ray Tracing.