A Primitive, or prim, is a single part object. Multi-part objects will have multiple parts ("prims"). video tutorial.
In Second Life, virtual physical objects such as cars, houses, jewelry, and even less obvious things like hair are made out of one or more prims. Objects made from prims are usually created in-world using the built in object editing tool. This tool is used for all sorts of 3D modeling in Second Life, playing the same role as 3D Max, Maya, or Blender, but customized for the Second Life way of doing things.
Each prim is represented by a set of parameters, including position, scale, rotation, shape, cut, hollow, etc. These parameters are sent from a server to the viewer running on the user's desktop, where the local GPU is used to render the visual appearance of everything. (Rendering on the server would probably create a much higher amount of network traffic.)
Prims can be linked together into link sets. They can also be attached to avatars, but this process is separate from (thought similar to) linking.
In the Viewer source code, primitives are implemented in LLPrimitive, with vertex generation performed in LLVolume and rendering in LLVOVolume.
There are eight primitive types:
- box: all kinds of rectangular shapes
- cylinder: round tables, floors, long pipes
- prism: a box with one very small face
- sphere: can be used for ellipsoids of all shapes
- torus: most complex, can be modified in many exotic ways
- tube: another form of hollow cylinder
- ring: another variant of torus
- sculpted: new as of 2007, used for highly variable organic shapes
Prims can be modified in various ways, such as size, twists, shearing, and cutting. Also, images (textures) can be applied to each surface of a prim to change its appearance. Box, cylinder, and prism can be made flexible. Flexible prims can not be physical and are automatically phantom.
There are seven primitive material types that determine things like mass and sound:
The color, texture, bumpiness, shininess, and transparency of prims can also be adjusted.