\( \newcommand{\vecIII}[3]{\left[\begin{array}{c} #1\\#2\\#3 \end{array}\right]} \newcommand{\vecIV}[4]{\left[\begin{array}{c} #1\\#2\\#3\\#4 \end{array}\right]} \newcommand{\Choose}[2]{ { { #1 }\choose{ #2 } } } \newcommand{\vecII}[2]{\left[\begin{array}{c} #1\\#2 \end{array}\right]} \newcommand{\vecIII}[3]{\left[\begin{array}{c} #1\\#2\\#3 \end{array}\right]} \newcommand{\vecIV}[4]{\left[\begin{array}{c} #1\\#2\\#3\\#4 \end{array}\right]} \newcommand{\matIIxII}[4]{\left[ \begin{array}{cc} #1 & #2 \\ #3 & #4 \end{array}\right]} \newcommand{\matIIIxIII}[9]{\left[ \begin{array}{ccc} #1 & #2 & #3 \\ #4 & #5 & #6 \\ #7 & #8 & #9 \end{array}\right]} \)

Quiz

  1. why can't we just set the frustrum to be of arbitrarily long length? It doesn't seem like the synthetic camera should need a "back plate"

    What a great question! TBH, I had to remind myself. This SO post explains why does OpenGL have a far plane?

    Later in the course, we'll talk about the Z buffer, which is used to determine the color of each pixel. Suppose you have a green tree in front of a red, brick house. The pixels should be green, right? Because the tree is closer.

    But that requires a representation of distance from the camera, or Z.

    That representation has a finite number of bits, and number of bits necessary is based on far. If far is infinite, then you can't distinguish distances with reasonable number of bits, and you'd see a weird mixture of red and green pixels for our tree-in-front-of-a-house.