Coordenada 3D do ponto 2D, dada a câmera e o plano de visualização

Desejo gerar raios da câmera através do plano de visualização. Para fazer isso, preciso da posição da minha câmera ("olho"), dos vetores para cima, para a direita e para os direção (onde direção é o vetor da câmera na direção do objeto que a câmera está olhando) e P, o ponto no plano de visualização. Depois de os ter, o raio gerado é:

ray = camera_eye + t*(P-camera_eye);

onde t é a distância ao longo do raio (assuma t = 1 por enquanto).

Minha pergunta é: como obtenho as coordenadas 3D do ponto P, uma vez que ele está localizado na posição (i, j) no plano de visualização? Suponha que os cantos superior esquerdo e inferior direito do plano de visualização sejam indicados.

NOTA: O plano de visualização não é realmente um plano no sentido de que não se estende infinitamente em todas as direções. Em vez disso, pode-se pensar nesse plano como uma imagem largura x altura. Na direção x, o intervalo é 0 -> largura e na direção y, o intervalo é 0 -> altura. Desejo encontrar a coordenada 3D do (i, j) ésimo elemento, 0

questionAnswers(3)

yourAnswerToTheQuestion