# Difference between revisions of "Point SOP"

## Summary

The Point SOP allows you to get right down into the geometry and manipulate the position, color, texture coordinates, and normals of the points in the Source, and other attributes. The Point SOP also lets you create custom point attributes. It is the complement to the Primitive SOP. Using a second input allows for combining of two SOPs using their respective expressions (see: PointSOP Class). If the second input has less points than the first input, the points in the second input will be cycled.

For example, you can create point coloring, or flip the normals of incoming geometry. Using expressions in Position X, Y and Z, you can move any given input point to a new place as defined by the expression with any standard attributes.

## Parameters - Page

Group `group` -

## Parameters - Standard Page

Position `t` - - Expressions to translate the XYZ coordinates of a given point can be entered here. The attributes to modify here are: `me.inputPoint.x`, `me.inputPoint.y` and `me.inputPoint.z`.

Simply entering `me.inputPoint.x` into the Position X field means that the X coordinate of each point that comes in is passed straight through with no modification.

Changing this entry to `me.inputPoint.x+5` means that the X coordinate of each point that comes in will be displaced by 5 units. This formula can be expanded to produce many useful effects. Transformations can also be effected in the Y and Z fields.

• X `tx` -
• Y `ty` -
• Z `tz` -

Weight `doweight` - If you select Add from the pop-up menu, enter formulas here to control the values of the point weights here. The attribute to modify is: `me.inputPoint.w`. Values for the weight of the point can range from 0.0001 to infinity.

Weight `weight` -

Color `doclr` -

Color `diff` - -

• Red `diffr` -
• Green `diffg` -
• Blue `diffb` -

Alpha `alpha` -

Normal `donml` - If you select Add from the pop-up menu, enter formulas to change a given point normal here. Point normals are directional vectors used by other SOPs, such as Turbulence, Facet and Copy. See List of Attributes article for detailed information. The attributes to modify are: `me.inputNormal[0]`, `me.inputNormal[1]` and `me.inputNormal[2]`.

### Flipping Normals

You can flip the point normals of incoming geometry by entering:

```(-me.inputNormal[0] -me.inputNormal[1] -me.inputNormal[2])
```

in the fields with this parameter set to Add Normals. This works, because it takes the existing normals

```(me.inputNormal[0] me.inputNormal[1] me.inputNormal[2])
```

and inverts them (the preceding - ).

Normals `n` - -

• X `nx` -
• Y `ny` -
• Z `nz` -

Texture `douvw` - If you select Add from the pop-up menu, enter formulas here to control the values of the texture coordinates here. The attributes to modify are: `me.inputTexture[0]`, `me.inputTexture[1]` and `me.inputTexture[2]`

### Custom Attributes

There are 4 parameters for custom attributes below, `custom1` through `custom4`.

Texture `map` - -

• `mapu` -
• `mapv` -
• `mapw` -

Custom Attrib `custom1` - Creates a custom attribute with this name.

Custom Attrib Type `custom1type` - The type of attribute created can be selected from this menu.

Value `custom1val` - - The value(s) to assign to the attribute.

• `custom1val1` -
• `custom1val2` -
• `custom1val3` -
• `custom1val4` -

Custom Attrib `custom2` -

Custom Attrib Type `custom2type` -

Value `custom2val` - -

• `custom2val1` -
• `custom2val2` -
• `custom2val3` -
• `custom2val4` -

Custom Attrib `custom3` -

Custom Attrib Type `custom3type` -

Value `custom3val` - -

• `custom3val1` -
• `custom3val2` -
• `custom3val3` -
• `custom3val4` -

Custom Attrib `custom4` -

Custom Attrib Type `custom4type` -

Value `custom4val` - -

• `custom4val1` -
• `custom4val2` -
• `custom4val3` -
• `custom4val4` -

## Parameters - Particle Page

Point Mass/Drag `domass` - Retains, adds, or removes mass and drag attributes for points.

Mass `mass` -

Drag `drag` -

Tension `dotension` - Tension affects the elasticity of the edges the point is connected to.

Tension `tension` -

Spring K `dospringk` - The Spring Constant is a well known physical property affecting each point.

Spring K `springk` -

Velocity `dovel` - Retains, adds, or removes the velocity of points. Defines the magnitude of the particle's velocity in the X, Y and Z directions.

Velocity `v` - -

• X `vx` -
• Y `vy` -
• Z `vz` -

Up Vector `doup` - Creates/Removes the "up" attribute for points. This attribute defines an up vector which is used to fully define the space around a point (for particle instancing or copying geometry).

These are the values for the up vector. The up vector is used in conjunction with the copy template's normals to control the orientation of the copies in the Copy SOP . The variables to modify are: `\$UPX`, `\$UPY`, `\$UPZ` - which are the values of the up vector attribute for the first source; and `\$UPX2`, `\$UPY2`, `\$UPZ2` - which are the values of the up vector attribute for the second source.

Up Vector `up` - -

• X `upx` -
• Y `upy` -
• Z `upz` -

Scale `dopscale` - Creates, removes, or ignores particle scale attributes defined in the Particle SOP. Particle Scale acts as a multiplier for the size of particles. The value of this attribute is multiplied by the size specified in the Particle SOP's render attributes to scale each particle. This attribute is used by the Point Sprite MAT when rendering point sprites.

Scale `pscale` -

## Parameters - Force Page

Radius `doradius` - Used to modify the distance roll-off effect. The roll-off is: `r /(r+d^2)` Where `r` is radius, and `d` is distance from attractor point. If no radius is set, no attenuation is performed.

Radius `radiusf` -

F Scale `doscale` - Multiplier for total force associated with this attractor point.

Both Radius and Force Scale will default to 1 if not created as point attributes.

Radial / Normal / Edge / Directional Force - These four parameters introduce a type of force when created and each has a corresponding multiplier associated with it.

F Scale `scalef` -

Radial F `doradialf` - Force directed towards the attractor point. Positive multipliers are towards while negative are away.

Radial F `radialf` -

Normal F `donormalf` - Force directed along the point normal direction.

Normal F `normalf` -

Edge F `doedgef` - Only works on primitive face types. The force is directed in the direction of the edge leading from that point. If multiple vertices reference the same point, then the direction is the edge direction of the last primitive referencing the point.

If the face open, then the end point has an edge direction equal to that of the preceding point in that primitive.

Note: When edge forces are added using the Point SOP, the force directions are computed in the Point SOP itself. Thus, any following transformations do not effect these. If you wish for the edge directions to be transformed as well, all transformations must be done before the Point SOP. Only the edge forces function like this.

Edge F `edgef` -

Dir. F `dodirf` - An arbitrary directional force, still affected by the distance roll-off function.

Dir. F `dirf` - -

• X `dirfx` -
• Y `dirfy` -
• Z `dirfz` -

## Operator Inputs

• Input 0 -
• Input 1 -

TouchDesigner Build:

Add • Alembic • Align • Arm • Attribute Create • Attribute • Basis • Blend • Bone Group • Boolean • Box • Bridge • Cache • Cap • Capture Region • Capture • Carve • CHOP to • Circle • Clay • Clip • Convert • Copy • CPlusPlus • Creep • Curveclay • Curvesect • DAT to • Deform • Delete • Divide • Extrude • Facet • File In • Fillet • Fit • Font • Force • Fractal • Grid • Group • Hole • Import Select • In • Introduction To SOPs id • Inverse Curve • Iso Surface • Join • Joint • Kinect • Lattice • Limit • Line • Line Thick • LOD • LSystem • Magnet • Material • Merge • Metaball • Model • Noise • Null • Object Merge • Oculus Rift • OpenVR • Out • Particle • Point • Polyloft • Polypatch • Polyreduce • Polyspline • Polystitch • Primitive • Profile • Project • Rails • Experimental:Raster • Ray • Rectangle • Refine • Resample • Revolve • Script • Select • Sequence Blend • Skin • Sort • Sphere • Spring • Sprite • Stitch • Subdivide • Superquad • Surfsect • Sweep • Switch • Text • Texture • Torus • Trace • Trail • Transform • Trim • Tristrip • Tube • Twist • Vertex • Wireframe • ZED

Each SOP has a list of Points. Each point has an XYZ 3D position value plus other optional attributes. Each polygon Primitive is defined by a vertex list, which is list of point numbers.

An Operator Family that reads, creates and modifies 3D polygons, curves, NURBS surfaces, spheres, meatballs and other 3D surface data.

Information associated with SOP geometry. Points and primitives (polygons, NURBS, etc.) can have any number of attributes - position (P) is standard, and optional are normals (N), texture coordinates (uv), color (Cd), etc.