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.
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.