title: Prims vs Polys: what are the pros and cons of each?
body: <p>I've noticed that most 3d gaming/rendering environments represent solids as a mesh of (usually triangular) <strong>3d polygons</strong>. However some examples, such as <a href="http://secondlife.com" rel="nofollow noreferrer">Second Life</a>, or <a href="http://www.povray.org/" rel="nofollow noreferrer">PovRay</a> use solids built from a set of <strong>3d primitives</strong> (cube, sphere, cone, torus etc) on which various operations can be performed to create more complex shapes.</p>
  
  <p>So my question is: <strong>why choose one method over the other</strong> for representing 3d data?</p>
  
  <p>I can see there might be benefits for complex ray-tracing operations to be able to describe a surface as a single mathematical function (like PovRay does), but SL surely isn't attempting anything so ambitious with their rendering engine.</p>
  
  <p>Equally, I can imagine it might be more bandwidth-efficient to serve descriptions of generalised solids instead of arbitrary meshes, but is it really worth the downside that SL suffers from (ie modelling stuff is <em>really</em> hard, and usually the results are ugly) - was this just a bad decision made early in SL's development that they're now stuck with? Or is it an artefact of what's easiest to implement in OpenGL/DirectX?</p>
  
  <hr>
  
  <p>EDIT:
  Having read the answers so far, I'm now thinking that my two examples have very different reasons for using prims:</p>
  
  <ul>
  <li><p>For PovRay, prims may be a side-effect of describing solids as maths functions, which gives benefits for complex ray-tracing.</p></li>
  <li><p>Second Life seems mostly concerned with parametrizing their 3-d elements (both as prims, and as parametric human figures) for performance reasons... it makes perfect sense for an on-line game, I guess.</p></li>
  </ul>