I noticed that most 3D gaming / rendering environments are solids in the form of a grid (usually triangular) of 3D polygons . However, some examples, such as Second Life , or PovRay use solids created from a set of 3D primitives (cube, sphere, cone, torus, etc.), on which various operations can be performed to create more complex shapes.
So my question is: why choose one method over another to represent three-dimensional data?
I see that for complex ray tracing operations there may be advantages in describing the surface as a single mathematical function (for example, PovRay), but SL certainly does not try to work with such an ambitious rendering mechanism.
Equally, I can imagine that it can be more efficient with bandwidth to serve as descriptions of generalized solids instead of arbitrary meshes, but is it really worth what the SL suffers with (i.e. modeling is really hard, and usually the results are ugly ) - Was it just a bad decision made at an early stage in SL development that they are now stuck with? Or is it an artifact of what is easiest to implement in OpenGL / DirectX?
EDIT: After reading the answers so far, I now think that my two examples have different reasons for using primitives:
For PovRay, primitives can be a side effect of describing solids as functions of mathematics, which provides benefits for complex ray tracing.
The second life, apparently, is mainly connected with the parameterization of its 3 elements (both as primitives and as parametric human figures) for performance reasons ... for me this is an ideal option for an online game.
source
share