title: OpenGL text rendering methods and trade-offs
body: <p><strong>Background</strong></p>
  
  <p>I work on the game <a href="http://bitfighter.org/">Bitfighter</a>.  We're still compatible with OpenGL 1.1 and compile for OSX, Windows, and Linux.</p>
  
  <p>We use vector graphics for <em>everything</em>, including text rendering and manipulation.  We use a slightly-modified variation of 'FontStrokeRoman' from GLUT, which is just a bunch of static lines.  We like this as it seems to perform very well, easy to rotate/scale/manipulate.  We also allow for in-game chat so text is drawn on the fly.</p>
  
  <p><strong>Problem</strong></p>
  
  <p>We want to use more/different fonts.</p>
  
  <p>We've found several other fonts we like, but they are all TTF-type fonts that are built as polygons (with curves, etc.) instead of strokes or spines.  This brings up a few problems:</p>
  
  <ul>
  <li>We'd have to use textures (which we've avoided so far in the game)</li>
  <li>They're not easily resizable/rotatable/etc.</li>
  <li>Performance is significantly less (theoretically?)</li>
  </ul>
  
  <p>We've experimented with converting the TTF fonts to polygon point arrays and then triangulating the fill.  This however has been difficult to render nicely - pixel hinting/anti-aliasing seems difficult to do in this case.</p>
  
  <p>We've even experimented with skeletonize-ing the polygon fonts using libraries like 'campskeleton', so we can output a vector-stroke font (with not much success that looks good).</p>
  
  <p><strong>What should we do?</strong></p>
  
  <p>I know this question is somewhat general.  We want to keep performance and text manipulation abilities but be able to use better fonts.  I am open to any suggestion in any direction.</p>
  
  <p>Some solutions could be answers to the following:</p>
  
  <ul>
  <li>How do we properly anti-alias polygon-based text and still keep performance?</li>
  <li>Do textures <em>really</em> perform worse than static point arrays?  Maybe I have a faulty assumption</li>
  <li>Can textured fonts be resized/rotated in a fast manner?</li>
  <li>Something entirely different?</li>
  </ul>