So what we implemented in assignment 3 was essentially for a pin-hole camera. But this can be easily extended with the same physically-based rendering frame work. This is really powerful, as long as you know the physics, you know how to code it.
Here is a reading that I found particularly helpful in understanding tracing a ray with camera lens.
https://computergraphics.stackexchange.com/questions/2042/ray-tracing-with-thin-lens-camera
So what we implemented in assignment 3 was essentially for a pin-hole camera. But this can be easily extended with the same physically-based rendering frame work. This is really powerful, as long as you know the physics, you know how to code it. Here is a reading that I found particularly helpful in understanding tracing a ray with camera lens. https://computergraphics.stackexchange.com/questions/2042/ray-tracing-with-thin-lens-camera