Close

Experimental:Normalize POP

Summary

The Normalize POP can re-scale all your XYZ position values to be in the 0-1 range, and it can do that to any attribute.

It can output to any existing or new attribute.

It is much more powerful than that: It can convert any position into polar or cylindrical coordinates, i.e. latitude, longitude and radius expressed in 0-1 ranges.

It can put any of these normalized values into any component of a float2, float3 or float4 attribute.

After normalizing the values between 0 and 1, it can also Bias the numbers to be closer to 0 or to 1, it can apply a Lookup function to the normalized value (like applying an ease-in ease-out), then apply an Exponent (boosts or lowers but keeps 0 and 1 values the same), and then Re-range the 0-1 values to any other range.

Normalizing into polar or cylindrical form: When normalizing a polar radius for example, it finds the point that is farthest from 0, 0, 0 and then computes the distance of each point in comparison to the farthest point. So that normalizes the radius.

When normalizing a point into a longitude around the Y-axis, it gives a value from 0 to 1, where a value of 0 or 1 is on the “back side” along the -Z axis, and a longitude value of .5 is on the “front side” along the +Z axis.

Similarly for latitude around the Y axis, a value of 0 is at the south pole (in the western civilization way of thinking), a value of 1 is at the north pole, and a value of .5 means the point is around the equator.

A similar kind of thing is done for cylindrical normalization around the Y axis.

See also the Projection POP and the Texture Map POP.

About feeding components to Normalize and other POPs - If you put P(1) P(0) P(2) (or P.yxz), it will first swap the first 2 components (x and y) and pass that to the next stage where if you have Box X, it will be processing the original y coordinate (P(1)) of the input.

PythonIcon.pngnormalizePOP_Class


Parameters - Normalize Page

Attribute Class attrclass - -
  • Point point -
  • Vertex vertex -
  • Primitive primitive -

Input Attribute Scope inputattrscope -

Parameter Size parsize - -
  • 1 1 -
  • 2 2 -
  • 3 3 -
  • 4 4 -

Aspect Correct aspectcorrect -

Replace Errors replace -

Error Value errval -

Mode mode - -
  • Mode mode0 -
  • Mode mode1 -
  • Mode mode2 -

Bias bias - -
  • Bias bias0 -
  • Bias bias1 -
  • Bias bias2 -

Lookup Curve lookupcurve - -
  • Lookup Curve lookupcurve0 -
  • Lookup Curve lookupcurve1 -
  • Lookup Curve lookupcurve2 -

Exponent exp - -
  • Exponent exp0 -
  • Exponent exp1 -
  • Exponent exp2 -

Map to Low tolow - -
  • Map to Low tolow0 -
  • Map to Low tolow1 -
  • Map to Low tolow2 -

Map to High tohigh - -
  • Map to High tohigh0 -
  • Map to High tohigh1 -
  • Map to High tohigh2 -

Output Attribute Scope outputattrscope - -
  • P P -
  • N N -
  • Color Color -
  • Color.i012 Color.i012 -
  • Tex Tex -
  • PointScale PointScale -
  • LineWidth LineWidth -


Override Automatic Attribute overrideautoattr -

New Attribute Type newattrtype - -
  • float float -
  • double double -
  • int int -
  • uint uint -
  • dir dir -
  • dbl dir ddir -

New Attribute Number of Components attrnumcomps - -
  • 1 1 -
  • 2 2 -
  • 3 3 -
  • 4 4 -

New Attribute Default Value newattrdefaultval - -
  • New Attribute Default Value newattrdefaultval1 -
  • New Attribute Default Value newattrdefaultval2 -
  • New Attribute Default Value newattrdefaultval3 -
  • New Attribute Default Value newattrdefaultval4 -


Parameters - Common Page

Bypass bypass -

Delete Input Attributes delinputattrs -


Operator Inputs

  • Input 0: -


Info CHOP Channels

Extra Information for the Normalize POP can be accessed via an Info CHOP.

Common POP Info Channels

Common Operator Info Channels

  • total_cooks - Number of times the operator has cooked since the process started.
  • cook_time - Duration of the last cook in milliseconds.
  • cook_frame - Frame number when this operator was last cooked relative to the component timeline.
  • cook_abs_frame - Frame number when this operator was last cooked relative to the absolute time.
  • cook_start_time - Time in milliseconds at which the operator started cooking in the frame it was cooked.
  • cook_end_time - Time in milliseconds at which the operator finished cooking in the frame it was cooked.
  • cooked_this_frame - 1 if operator was cooked this frame.
  • warnings - Number of warnings in this operator if any.
  • errors - Number of errors in this operator if any.


TouchDesigner Build: