Category:LSL Face

From Second Life Wiki
Revision as of 22:50, 3 March 2007 by BamBam Sachertorte (talk | contribs) (added top/bottom face rule)
Jump to navigation Jump to search

A prim has one or more faces depending on its basic shape and its shape parameters. Each face of a prim can have its own texture properties, color, alpha, and attributes (shiny, full-bright, and bump-map). The texture properties that each face can have are: texture, texture map (standard or planar), scale, offset, and rotation. The properties of a prim face can be changed individually by using its face number or all of the prim faces can be modified at once using the ALL_SIDES face number.

Prims are formed by moving a circle, triangle, or square through a path in 3D space. For boxes, prisms, and cylinders the path is a line. For tori, rings, and tubes the path is a circle. For a sphere the path is rotation of a half-circle around a point. A circle (or half-circle) defines one face along its path, a triangle defines three faces along its path, and a square defines four faces along its path. The interior face of a hollow prim is always one face, even if the hollow shape is a triangle or a square.

Using the Face List Table

The following table lists all of the possible faces for the seven different prim types. A given prim will have some subset of this list depending on its shape parameters. The face number of a prim face is determined by its position in the face list after non-existent faces have been removed. The first face in the list that exists will be face zero, the next existing face will be face one, and so on. The positions of the faces listed in the table are in the local coordinate space of the prim, assuming no twist. If beginning twist or end twist is non-zero then some faces will rotate with respect to the prim's local coordinate space.

The following rules determine whether a face exists and has a face number:

  • The outside face always exists on circle derived prims (sphere, cylinder, and torus)
  • The top and bottom faces always exist on line path prims (cylinder, prism, and box)
  • Both path cut faces exist if path cut begin > 0 or path cut end < 1
  • Both path cut faces exist on circular path prims (torus, ring, and tube) if the circular path is broken: path cut, skewed, begin twist ≠ end twist, radius delta ≠ 0, revolutions > 1, or taper parameters ≠ 0
    • even if begin twist ≡ end twist mod 360
  • Both path cut faces exist on sphere prims if begin twist ≠ end twist (even if ≡ mod 360)
  • Both sphere dimple faces exists if either dimple begin > 0 or dimple end < 1
    • yes, the dimple begin face exists even if dimple begin = 0 and dimple end < 1
  • The hollow face only exists if hollow > 0
  • Both profile cut faces exist if profile cut begin > 0 or profile cut end < 1
  • If the path cut of a prism or box completely eliminates a face then that face doesn't exist
  • If the profile cut of a ring or tube completely eliminates a face then that face doesn't exist
  • A face 'still exists' even if it is shrunk all the way to a line or a point by the taper parameters
Sphere
  • path cut end
  • outside
  • hollow
  • path cut begin
  • dimple begin
  • dimple end
Cylinder
  • top (+z)
  • outside
  • hollow
  • bottom (-z)
  • path cut begin
  • path cut end
Torus
  • path cut end
  • outside
  • hollow
  • path cut begin
  • profile cut begin
  • profile cut end
Prism
  • top (+z)
  • +y
  • -x
  • -y
  • hollow
  • bottom (-z)
  • path cut begin
  • path cut end
Ring
  • path cut end
  • inside face
  • +x
  • outside face
  • hollow
  • path cut begin
  • profile cut begin
  • profile cut end
Box
  • top (+z)
  • -y
  • +x
  • +y
  • -x
  • hollow
  • bottom (-z)
  • path cut begin
  • path cut end
Tube
  • path cut end
  • outside face
  • -x
  • inside face
  • +x
  • hollow
  • path cut begin
  • profile cut begin
  • profile cut end

An example

If you have a box prim that has a path cut beginning of 0.30, a path cut ending of 1.00, and no hollow then your face list looks like this:

• top (+z) always exists
• -y doesn't exist because the path cut beginning is ≥ 0.25
• +x exists
• +y exists
• -x exists
• hollow doesn't exist because the hollow parameter is 0
• bottom (-z) always exists
• path cut begin exists because path cut beginning > 0
• path cut end exists because path cut beginning > 0

So the face numbering for this prim is:

0 top (+z)
1 +x
2 +y
3 -x
4 bottom (-z)
5 path cut begin
6 path cut end