Ray Tracer Distribuído Pontifícia Universidade Católica do Rio de Janeiro – PUC-RJ Disciplina: Fundamentos de Computação Gráfica Prof. Marcelo Gattass Ray Tracer Distribuído Aluno: Leonardo de Oliveira Martins leomartins82@gmail.com Rio de Janeiro, 04/07/2007
Introdução A precisão dos algoritmos de ray tracing depende da resolução da tela (imagem) Por este motivo, os algoritmos de ray tracing estão sujeitos ao aparecimento de fenômenos em que detalhes de pequena dimensão podem não ser capturados na imagem ou surgir agrupados em estruturas que, na realidade, não existem (aliasing) A adoção de técnicas de antialiasing em ray tracing permite reduzir o impacte destes fenômenos
Introdução Ray Tracing Simples A cor de um pixel é determinada calculando a cor no ponto de intersecção do raio primário correspondente ao pixel com o objeto
Introdução Super Amostragem Usar vários raios primários cobrindo uniformemente a área correspondente ao pixel A cor do pixel será a média das cores determinadas por cada um dos raios Com mais de 1 raio primário por cada pixel podemos obter uma idéia mais precisa do que acontece na área correspondente ao pixel
Introdução Abordagem proposta Distribuir aleatoriamente os raios pela área, de tal maneira que a distribuição seja uniforme. Com, isso, minimizam-se os efeitos de aliasing devidos à amostragem regular. Esta técnica, denominada de “ray tracing aleatório”, “ray tracing estocástico” ou “ray tracing distribuído” permite calcular cores médias mais corretas, pois os raios encontram-se melhor distribuídos dentro da área correspondente a cada pixel
Introdução
Introdução Problemas Introduz ruído devido à distribuição aleatória No entanto, este ruído encontra-se mais ou menos uniformemente distribuído pela imagem visão humana é muito mais tolerante ao ruído aleatório do que a singularidades locais Número de raios lançados gera uma elevada carga computacional A depender do tamanho da área amostrada Cálculos desnecessários em determinadas regiões
Implementação Para a implementação do programa foram utilizados Linguagem C Ambiente de desenvolvimento Dev-C++ Bibilioteca gráfica OpenGL Interface gráfica -> IUP
Exemplos Ray Tracing Comum
Exemplos Ray Tracing Distribuído n = lado do quadrado de amostragem = 4
Referências HILL, F.S. Computer Graphics sUsing OpenGL. Prentice Hall, 2nd edition Internet: Introdução à Computação Gráfica – Aliasing e Ray Tracing Distribuído. Disponível em http://www.lcg.ufrj.br/Cursos/COS-751/raytracingdistr-pdf/download Raytracing. Disponível em http://disciplinas.ist.utl.pt/leic-cg/programa/livro/Raytracing.pdf Notas de Aula do curso