Ray Tracing versus renderização baseada em objeto?

19

Os cursos de introdução a gráficos geralmente têm um projeto que solicita a criação de um traçador de raios para renderizar uma cena. Muitos estudantes de gráficos que ingressam na pós-graduação dizem que desejam trabalhar no traçado de raios. E, no entanto, parece que o traçado de raios é um campo morto em locais como o SIGGRAPH etc.

O traçado de raios é realmente a melhor maneira de renderizar uma cena com precisão com toda a iluminação desejada, etc, e é apenas o desempenho lento (não interativo) dos traçadores de raios que os torna desinteressantes ou há algo mais?

Suresh
fonte
Talvez o traçado de raios seja um negócio feito.
18712 Dave Clarke
Eu acho que as necessidades de título questão de editar, Raytracing é um processador baseado em pixels, talvez ela deve ser reformulada como 'Raytracing vs renderização baseada em objeto' ou 'Raytracing vs Rasterization'
aaecheve
Vou modificar o título.
Suresh
@ DaveClarke: Não tem certeza do que isso significa?
Suresh
Não há mais pesquisa a fazer - devo evitar gírias.
18712 Dave Clarke

Respostas:

11

O Raytracing é um algoritmo muito bom e intuitivo, e é uma maneira mais realista fisicamente de descrever a iluminação de uma cena do que a rasterização, mas:

  • O Raytracing é lento, especialmente se você deseja implementar os efeitos mais realistas que o distinguem da rasterização (por exemplo, refração, reflexão, desfoque de movimento, sombras suaves), porque isso implica criar muito mais raios por pixel.
  • A maioria das pessoas não sabe dizer a diferença entre efeitos reais e falsos, o que eu acho que é o ponto principal. O objetivo de um algoritmo de renderização prático é criar uma representação fotorrealista de uma cena da maneira mais eficiente, e agora a Rasterização, embora use muitos hacks, realiza isso muito bem.
  • Existem muitas outras limitações práticas do Raytracing em comparação com um renderizador de rasterização: baixo mapeamento de suavização de serrilhado e deslocamento, instanciamento limitado etc.

Mesmo em aplicativos não interativos, como filmes, o Raytracing é muito pouco devido às suas limitações. A Pixar começou a usar o Raytracing em carros e apenas para alguns efeitos de reflexão específicos ( Ray Tracing para o filme 'Carros' ).

Aqui está um excelente artigo que descreve mais detalhadamente o estado atual do Raytracing e suas vantagens e desvantagens: State of Ray Tracing (em jogos) .

aaecheve
fonte
8

O traçado básico de raios tem um grande problema relacionado à luz ambiente. A maioria dos modelos de iluminação trata a luz ambiente como um fator constante presente no éter. Embora o traçado de raios seja excelente para calcular reflexões, ele sofre de instabilidade numérica e testes complicados de interseção de superfície. O rastreamento de raio pode não funcionar muito bem com a renderização acelerada por hardware, já que a recursão desempenha um papel importante na determinação da iluminação para qualquer pixel específico. O traçado básico de raios é computacionalmente muito caro.

A radiosidade lida melhor com a luz ambiente, na medida em que trata todos os objetos do ambiente como fontes de luz, produzindo um modelo de iluminação que é, de certa forma, mais realista do que o traçado de raios. Com uma solução de radiosidade, há um número fixo de polígonos em uma cena, e o cálculo é passível de aceleração de hardware.

Em última análise, o ray trancing não é a melhor maneira de renderizar uma cena, mas é um componente de uma boa estratégia de renderização. O custo computacional de alto custo e a fraca iluminação ambiente são os principais ataques contra o traçado de raios. Como um tópico de pesquisa, o trabalho está em andamento , mas parece estar focado na aceleração de hardware.

John Percival Hackworth
fonte
Observe que uma das maneiras mais comuns de executar a radiosidade (em particular, lidar com qualquer aspecto especular das funções de radiosidade e radiância geral) envolve o traçado de raios! De fato, traçado de raios e radiosidade são ambas aproximações à equação de renderização.
Steven Stadnicki 20/03/12
Verdade isso. Uma abordagem básica de radiosidade (como é isso para um oxímoro?) Precisa de algo como rastreamento de raios para especularidade e reflexão.
precisa
4

Eu não diria que o traçado de raios / traçado está morto ... se alguma coisa, houve um ressurgimento do interesse popular no campo devido ao paralelismo inerente aos muitos algoritmos associados nessa área combinados com a velocidade de Sistemas baseados em GPU que permitem o cálculo de milhões de raios por segundo. Além disso, há a flexibilidade no pipeline de renderização que linguagens mais genéricas, como CUDA e OpenCL, permitem que os desenvolvedores aproveitem a funcionalidade paralela da GPU sem precisar usar explicitamente o pipeline de gráficos OpenGL, como as técnicas iniciais da GPGPU. Alguns exemplos notáveis ​​da pesquisa principal de rastreamento de caminho incluem:

  • A pesquisa de Daniel Pohl e outros no grupo Intel Advanced Render
  • Motor Optix da Nvidia
  • O SIGGRAPH no ano passado incluiu alguns cursos sobre a síntese de imagens de Monte Carlo, bem como discussões sobre as mais recentes técnicas de estimativa de densidade de fótons.

Finalmente, você tem pesquisado bastante técnicas de otimização para o problema de iluminação global, incluindo iluminação global baseada em pontos, mapeamento de fótons e otimizações relacionadas, modelagem avançada de aparência (incluindo métodos orientados a dados), cache de irradiância, etc., etc.

Jason
fonte