Como criar um modelo de lente / câmera decente para o rastreamento de caminhos?

13

Eu escrevi um pequeno traçador de caminhos depois de aprender e experimentar no smallpt .

A única coisa que eu não escrevi (e não entendi) é como os raios iniciais são calculados e disparados pela câmera. Eu acertei o princípio, mas estou procurando alguns recursos que descrevam como:

  • Calcular a direção inicial dos raios
  • Modelar uma lente real (em oposição à câmera pinhole), supostamente permitindo efeitos como profundidade de campo?

Matemática e física de última geração não são necessárias, mas podem ser bem explicadas.

as internets são feitas de catz
fonte

Respostas:

13

O próximo passo a partir de um modelo de câmera pinhole é um modelo de lente fina , onde modelamos a lente como sendo um disco infinitamente fino. Essa ainda é uma idealização que está muito longe de modelar uma câmera real, mas fornecerá efeitos básicos de profundidade de campo.

Modelo de lente fina

A imagem acima, de panohelp.com , mostra a ideia básica. Para cada ponto da imagem, existem vários raios chegando ao ponto da imagem, em todos os pontos da superfície da lente 2D. Portanto, para gerar uma imagem como essa usando Monte Carlo, é necessário escolher, para cada raio, um ponto de amostra 2D no plano da imagem e um ponto de amostra 2D independente na superfície da lente.

Os parâmetros voltados para o usuário a serem definidos serão o raio da lente (como um raio físico nas unidades de cena), que controla a profundidade da faixa de foco (lente maior = faixa de foco menor) e a distância em que você deseja que os objetos estejam foco.

Para gerar raios oculares na cena, você pode calcular a posição e a direção dos raios que saem da superfície da lente; neste modelo, não há necessidade de simular explicitamente o plano da imagem e a refração através da lente. Basicamente, pense na lente como centralizada na posição da câmera e orientada para enfrentar a direção da câmera.

Com base na localização da imagem, construa um raio da posição da câmera (centro da lente) para a cena, exatamente como faria no modelo de pinhole; então encontre sua interseção com o plano focal. É para onde todos os raios desse local da imagem devem convergir. Agora você pode deslocar o ponto inicial do raio para um ponto escolhido aleatoriamente na lente e definir sua direção para o ponto de convergência.

Você pode generalizar isso um pouco, permitindo que o plano focal seja algo que não seja um plano ou que a lente seja algo que não seja um disco circular e siga o mesmo processo. Isso pode produzir alguns efeitos interessantes, se não bastante físicos. Também é possível ir além desse modelo simples com uma simulação mais realista dos elementos de lente de uma câmera - mas isso está além da minha experiência.

Nathan Reed
fonte
4

Veja Kolb, et al., Um modelo de câmera realista para computação gráfica , SIGGRAPH 95.

No entanto, lembre-se de que os modelos de câmeras que imitam as câmeras do mundo real não são necessariamente o que você deseja para a fase de renderização. Em um cenário de efeitos visuais / pós-produção, quanto mais desfoque / vinheta / distorção o modelo da câmera introduz, pior é para o compositor / temporizador de cores. Geralmente é melhor fazê-lo como um pós-passe.

Pseudônimo
fonte