In section 16.1.1 of Physically Based Rendering the authors describe how we can check, if a given ray $r$ corresponds to one starting from the film area.

They implement this check such that it works for cameras with finite and pinhole apertures. They assume that $r$ has origin $p$ and direction $\omega$. Maybe I didn't get it, but are they assuming that $p$ is a point on the lens? That seems to be the case from Figure 16.1.

Now they want to find the point on the film that $r$ corresponds to. Let $w$ denote the camera viewing direction $(0,0,1)$ in world coordinates. Then they compute the cosine of the angle $\theta$ between $\omega$ and $w$, $$\cos(\theta)=\langle\omega,w\rangle.$$ Assuming we're dealing with a pinhole aperture, why do we find the point on the film by intersecting the ray with a plane arbitrary set at $z=1$? And why is this intersection at $p+t\omega$, where $t=1/\cos(\theta)$? Shouldn't the intersection be at $t=\frac{\langle w-p,w\rangle}{\langle\omega,w\rangle}$?

And anyway, doesn't $p$ need to be equal to the eye point of the camera?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.