I'm attempting to write a level viewer for Quake 3 levels (repo here). I've got some of the way towards it, but for every level I try to view with it I get lots of missing faces.

Missing faces in quake level (image from Dustbowl)

In the above image, I have disabled backface culling in order to show where faces are missing a little better.

My question is, has anyone else run into this problem? I know Quake/Quake 3 level rendering is a well-trodden path, so I'm luckier than most in this situation. I so far only render meshes and polygons, not models, but most of the missing faces seem to be where one would expect static faces.

I'm not really asking for a code review, as much of the implementation details I would not expect to be common (I transform the BSP tree into a proper tree structure and discard the index-based structure entirely), but if anyone has seen this before I'd love to know what the issue was.

  • \$\begingroup\$ You might need to reverse the windings according to the side of the face its normal falls on. \$\endgroup\$
    – jzx
    Jan 4, 2016 at 14:19
  • \$\begingroup\$ See: "disabled backface culling". I believe this is precalculated correctly though, I get sensible results if I turn it on. \$\endgroup\$
    – nonsince
    Jan 4, 2016 at 14:45
  • 1
    \$\begingroup\$ This might be because Quake 3 uses patches (curved bezier faces) way more extensively than I expected. Guess it's time to bite the bullet and implement bezier curves. \$\endgroup\$
    – nonsince
    Jan 4, 2016 at 14:46


Browse other questions tagged .