110 likes | 198 Views
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.
E N D
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 • 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