RRAY'S SURFACE PROPERTY ICE NODES

Note: After installation (drag an drop xsicompound files into an ICE tree), these compound nodes will be located in the ICE Preset Manager under Task(Tab) -> Deformation -> Surface Properties

These compounds provide access to surface properties of polygon mesh objects:
	* tension
	* curvature
	* mesh density


	
1 -- tension (as per-point scalar data for polygon meshes) 

measures surface tension. Tension can be used as source data for various rendering and deforming effects like blending of a wrinkle texture map or a squash-and-stretch effect (shown in example Tension-squash-and-stretch.scn).

consists of two compounds: "tension from" computes and stores the average edge lengths of each point's connected edges. "tension to" computes the average edge lengths again (placed at a higher point in the stack, i.e. executed later) and compares them to the results stored earlier by "from".

The difference is processed so it best represents the local surface tension at each point. Every deform in the stack between "from" and "to" gets registered by the "to" node and is output as the scalar tension value for the points.

The UI has an fcurve that lets you further control the output of "tension to". X is the computed tension (negative X is compression). Y is output. If you don't want tension values to go above 1 or below -1 use the default f curve which clips off tension values above and below these values. 

For measuring only stretching, move the first key to (0,0) and leave the second at (1,1). For compression-only move the first key to (-1,1) and the second key to (0,0).

For accessing tension values from the render tree, you'll have to go through a weight map (ICE attributes can't be accessed for polygon meshes currently). This is demonstrated in Tension-rendering.scn

Note: When rendering, tension values look much better (are smoothed) when the mesh is subdivided (+)!



2. curvature (per-point scalar data for polygon meshes) 

measures the curvature amount at each mesh point (computes the average angle between point normal and the connected edges: If it is 90 degrees, the surface is flat). Can be used for rendering (cavity shading), deformation effects, or any other ICE related effect.

UI includes options to output only convex curvature, concave curvature, or both. The other control is called "feature size depenency". If off, this makes a large sphere have the same curvature as a small sphere for example. You'll probably have to try what fits best to your needs.

Note: For rendering, curvature values look much better (are smoothed) when the mesh is subdivided (+)!



3. mesh density (per-point scalar data for polygon meshes) 

computes mesh density (average edge lengths of connected edges). Can be used for rendering, deformation effects, or any other ICE related effect.

Note: For rendering, curvature values look much better (are smoothed) when the mesh is subdivided (+)!