Difference between revisions of "Prims"

From Second Life Wiki
Jump to navigation Jump to search
(New page: Primitives in Second Life are constructed by starting with a basic two dimensional shape, modifying it, and extruding it in to the third dimension along a path while applying modifications...)
 
 
(11 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Primitives in Second Life are constructed by starting with a basic two dimensional shape, modifying it, and extruding it in to the third dimension along a path while applying modifications to the extrusion. The most basic example is a cube which starts out as a 2D square and extrudes along a linear path with no modifications to make a cube. A cylinder starts out as as circle and extrudes along the same linear path. If the circle was extruded along a circular path you would create a ring, and if a half-circle is extruded along another type of circular path you create a sphere.
{{Otheruses4‎|primitives|[[LSL]] related information|:Category:LSL Prim}}
 
 
==Introduction==
This page is mostly about how primitives are implemented in the server and viewer code.  It might help users of the in-world build tool understand the use of the many options.  An excellent detailed summary can be found here. [http://www.realityprime.com/articles/how-sl-primitives-really-work]
 
Primitives in Second Life are constructed by starting with a basic two dimensional shape, modifying it, and extruding it in to the third dimension along a path while applying modifications to the extrusion. The most basic example is a cube which starts out as a 2D square and extrudes along a linear path with no modifications to make a cube. A cylinder starts out as as circle and extrudes along the same linear path. If the circle was extruded along a circular path you would create a torus, and if a half-circle is extruded along another type of circular path you create a sphere.


==2D Shape (Profile)==
==2D Shape (Profile)==


* ProfileCurve
* ProfileCurve
** Two combined enums: the lower 4 bits define the outer profile shape, and the high 4 bits define the type of hole if ProfileHollow is non-zero
<pre>
Profile Shape:
Circle = 0x00
Square = 0x01
Isometric Triangle = 0x02
Equilateral Triangle = 0x03
Right Triangle = 0x04
Half Circle = 0x05
</pre>
<pre>
Hole Shape:
Same = 0x00
Circle = 0x10
Square = 0x20
Triangle = 0x30
</pre>


===2D Shape (Profile) Modifications===
===2D Shape (Profile) Modifications===


* ProfileBegin
* ProfileBegin
** Where the cut (if any) in the profile begins
* ProfileEnd
* ProfileEnd
** Where the cut (if any) in the profile ends
* ProfileHollow
* ProfileHollow
** How much of the profile is hollowed out, as a percent of the original bounding box. If non-zero this creates a hole using the shape defined in the higher bits of ProfileCurve


==Extrusion (Path)==
==Extrusion (Path)==


* PathCurve
* PathCurve
** Enum for the extrusion path. For whatever reason only the upper bits are used in this field:
<pre>
Line = 0x10
Circle = 0x20
Circle2 = 0x30
Test = 0x40 // ???
Flexible = 0x80
</pre>


===Extrusion (Path) Modifications===
===Extrusion (Path) Modifications===

Latest revision as of 00:43, 2 October 2009

This article is about primitives. For LSL related information, see Category:LSL Prim.


Introduction

This page is mostly about how primitives are implemented in the server and viewer code. It might help users of the in-world build tool understand the use of the many options. An excellent detailed summary can be found here. [1]

Primitives in Second Life are constructed by starting with a basic two dimensional shape, modifying it, and extruding it in to the third dimension along a path while applying modifications to the extrusion. The most basic example is a cube which starts out as a 2D square and extrudes along a linear path with no modifications to make a cube. A cylinder starts out as as circle and extrudes along the same linear path. If the circle was extruded along a circular path you would create a torus, and if a half-circle is extruded along another type of circular path you create a sphere.

2D Shape (Profile)

  • ProfileCurve
    • Two combined enums: the lower 4 bits define the outer profile shape, and the high 4 bits define the type of hole if ProfileHollow is non-zero
Profile Shape:
Circle = 0x00
Square = 0x01
Isometric Triangle = 0x02
Equilateral Triangle = 0x03
Right Triangle = 0x04
Half Circle = 0x05
Hole Shape:
Same = 0x00
Circle = 0x10
Square = 0x20
Triangle = 0x30

2D Shape (Profile) Modifications

  • ProfileBegin
    • Where the cut (if any) in the profile begins
  • ProfileEnd
    • Where the cut (if any) in the profile ends
  • ProfileHollow
    • How much of the profile is hollowed out, as a percent of the original bounding box. If non-zero this creates a hole using the shape defined in the higher bits of ProfileCurve

Extrusion (Path)

  • PathCurve
    • Enum for the extrusion path. For whatever reason only the upper bits are used in this field:
Line = 0x10
Circle = 0x20
Circle2 = 0x30
Test = 0x40 // ???
Flexible = 0x80

Extrusion (Path) Modifications

  • PathBegin
  • PathEnd
  • PathScaleX
  • PathScaleY
  • PathShearX
  • PathShearY
  • PathTwistBegin
  • PathTwist
  • PathRadiusOffset
  • PathTaperX
  • PathTaperY
  • PathRevolutions
  • PathSkew