0
\$\begingroup\$

enter image description here

In 3D games, why would the viewing field be a frustum? Why not a pyramid?

You would still have to do culling to figure out what's in the field, and to me it seems a pyramid field is no harder to do culling math than a frustum field.

Is it just because of worries that a small object may wander directly in front of the camera, blocking the entire view? To me that seems more a problem of game design and good auto-camera control, rather than a choice of viewing field geometry. (Also, that worry can still exist with a frustum field, if the near plane is relatively close to camera.)

Btw, I'm under the impression that the vast majority of games use a frustum, correct me if I'm wrong.

\$\endgroup\$
5
  • 1
    \$\begingroup\$ Is it safe to assume you've read past Q&A about the near plane, covering the kinds of errors we get when trying to project vertices with a near plane too close to the camera, and the fundamental limitations of clipping math that demand we clip against a plane? \$\endgroup\$
    – DMGregory
    Jul 6 at 22:32
  • \$\begingroup\$ @DMGregory I saw both of them but did not fully read them until now. I did not get much out of them. However, one had a link to a "Love your Z-Buffer" article, and that was an insanely helpful article. I don't know if I can translate that to an answer in my own words, though, not quit yet, but something to do with precision at near ranges. \$\endgroup\$
    – DrZ214
    Jul 6 at 23:30
  • 2
    \$\begingroup\$ I don't know if the question is a duplicate, but the answer to gamedev.stackexchange.com/q/194408/46779 also applies here: it's a frustum because you can't linearly warp a pyramid into a cube. \$\endgroup\$
    – Mark
    Jul 6 at 23:55
  • \$\begingroup\$ @Mark But then, why do we have to insist on linear warps? What's the fundamental reason why the GPU can't perform some nonlinear operation on the depth value? I mean, it's convenient that everything is linear and therefore everything is a matrix, but why does it have to be? \$\endgroup\$
    – user253751
    Jul 7 at 8:45
  • \$\begingroup\$ @user253751, the warp to turn a pyramid into a cube involves division by zero. More generally, computing linear functions like addition and multiplication is much faster than computing nonlinear functions, and in many cases, nonlinear functions aren't computable. \$\endgroup\$
    – Mark
    Jul 7 at 19:42

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.