Search:

emPolygonizer4 (version 4.160)   Online Documentation
last modifications to this page: April 28th 2013

 


Chapter 1: Introduction

This plug-in for Softimage|XSI is a custom operator for creating polygon meshes.
It polygonizes so-called scalar fields (or isofields), a method that is also called "Metaballs" or "Marching Cubes".

The operator accepts nulls, curves, polygon meshes and point clouds as inputs... or all at the same time. In fact as many inputs as you wish ! Furthermore it is possible to directly mesh the internal fluid grids of emFluid4 and to mesh the Lagoa cloth topology (including tearing).

emPolygonizer4 also allows you to create UVs. These can be used for effects such as lava.

On the emPolygonizer4 web page you can:

  • download the demo version of this plugin.
  • download demo and tutorial scenes.
  • purchase the full version of this plugin.

Content:

On my Vimeo page are many video tutorials in which I show and explain different aspects and techniques concerning emPolygonizer4 and its usage. You might also try to search for "emPolygonizer" on Vimeo to find some videos made by other people.

Note: If you feel that something is not well explained (or not explained at all) then please write me a short e-mail. I will then update the documentation and/or make a demo scene as quickly as possible.

 


Chapter 2: Installation

Important:

  • If you have a version 4.0 or higher already installed (or eventually a beta version of emPolygonizer4) then you must uninstall it first.
    To do that go into Softimage|XSI's "Plugin Manager", right-click on the plugin and choose "Uninstall Addon".

  • emPolygonizer4 can co-exist and be used simultaneously with any of the former emPolygonizer versions (emPolygonizer v.1.xx, emPolygonizer2 v.2.xx, emPolygonizer3 v.3.xx or the Polygonizer that comes with Softimage 2011.5 and above).

This plugin comes as a so called "Addon", here's how to install it:

  1. Open the "Plugin Manager". It is located under the "File" menu: "File ->Plugin Manager":
  2. As mentioned above: please remove / uninstall any previous version 4.xx of this plugin. This is really important, because if Softimage|XSI finds two times the same plugin then one (maybe even both) might not work.
  3.  

  4. To install the plugin into the user directory simply right-click onto the folder "User Root" and choose "Install .xsiaddon...":
  5. A browser dialogue will be displayed: go to where you copied the .xsiaddon file, select it and click on "OK". The Addon is automatically installed.
  6.  

  7. Close Softimage|XSI. The plugin is now installed and ready to be used.
    For more information concerning Addons and how to install / uninstall them please check the chapter "Working with Addons" in the XSI Guides.

 


Chapter 3: Demo Version Restrictions

If you are using the full version of this plug-in then you can skip this chapter. If not, please read the following list of restrictions of the demo version:

  • There is a built-in memory limit of about 20 Megabytes, thus limiting the level of detail and the number of polygons for the output meshes.

  • The operator only works between frame 1 and frame 100.

  • The text "DEMO VERSION" is contained in the custom operator's property page.

  • Nearly all parameters of the tab "Advanced" of the operator's property page are unavailable.
Note: while testing the demo version you will probably encounter error messages like for example "not enough memory" or "reached memory limit". These are NOT bugs, it's simply the demo version restriction!

 


Chapter 4: Quickly creating an emPolygonizer4 polygon mesh

Creating an emPolygonizer4 polygon mesh only takes a few clicks:
  1. Select the objects you want to use as inputs.

  2. Choose "Model -> Poly.Mesh -> emPolygonizer4".
    The property page of the freshly created emPolygonizer4 mesh pops up.

  3. Tweak the "Level of Detail".

In the tab "Tools" you can use the "Add" and "Remove" buttons to connect/disconnect input objects.

 


Chapter 5: The Custom Operator's Property Page

This chapter covers all the tabs and parameters of the custom operator's property page.

emPolygonizer4 has three algorithms for building meshes:

  1. "Marching Cubes / Marching Tetrahedrons".
  2. "Simple as Primitives"
  3. "Bounding Boxes of input Objects"

The parameters and tabs of the property page change depending on which algorithm is currently active, so this chapter is divided into three parts, one for each algorithm.

Last but not least you will find a brief description of the "hidden" parameters (= rarely used parameters) at the end of this chapter. They can be made visible in the "Advanced" tab.

 


Chapter 5 (part 1): The Property Page when using "Marching Cubes / Marching Tetrahedrons"

A polygonized Lagoa point cloud:

Rendered with Arnold and SItoA from SolidAngle

 


The tab "Main"

This tab contains the operator's main parameters.


  • Active
    Enables/disables the operator.
    If this is unchecked you can force the operator to update the mesh by clicking on the "Refresh" button.

  • Progress Bar
    Enables/disables the progress bar during the creation of the mesh.
    When working with complex setups the progress bar gives you the possibility to monitor the progress and to cancel the operation.
    Note (Windows only): you can also cancel the operation by pressing simultaneously the left and right CONTROL keys. This works with or without the progress bar.

  • Refresh Button
    Forces the operator to refresh the mesh. Typically used when the parameter "Active" is disabled.

  • Algorithm ID (the three big icons)
    The algorithm that shall be used when building the mesh:
    • "Bounding Boxes from input Objects" (left icon)
    • "Simple as Primitives" (middle icon)
    • "Marching Cubes / Marching Tetrahedrons" (right icon)

  • Marching Tetrahedrons
    Enables "Marching Tetrahedrons". This is an alternative meshing algorithm which uses tetrahedrons rather than cubes.
    Note: the resulting meshes have more polygons than with "Marching Cubes".

  • Isolevel
    Defines the isolevel barrier at which geometry is generated.
    Higher values produce "tighter" meshes, but smaller parts might disappear.

    General rule: the higher this value the more iso must be present to create a surface.


  • Level of Detail
    Defines how much detail is generated.
    Higher values result in more detail, but require more memory and more calculations.

    Note: higher values will always result in more and smaller polygons, however this is not always a good thing. For example when meshing point clouds that shall look like liquid it generally is better to have the polygons small enough to get all the needed detail but also big enough to not see the individual blob spheres.
    => start with small LOD values and then slowly move to higher values until the mesh looks good.


  • Mul.Iso / Mul.Radius / Mul.Falloff
    Multipliers for the iso, radius and falloff values of all input objects.
    Note: If you want to modify the iso/radius/falloff value for a single input object you need to go into its custom property set.

  • Enable Motion Plotting
    Enables/disables motion plotting.
    When active the motion of the input object is considered when filling the isofield. For example a fast moving null would result in a stretched sphere.
    There is more detailed information here: the tab "Motion".

  • Speed
    Speed multiplier.
    Use higher values to enhance the effect of motion plotting.

  • Offset
    Frame offset.

  • Compensate
    The amount of compensation when an object is stretched (=the longer it gets the thinner it becomes, thus preserving its volume).
    There is more detailed information here: the tab "Motion".

  • Enable Liquid Filaments
    Enables/disables liquid filaments.
    There is more detailed information here: the tab "Liquid".

  • Detail
    A multiplier for the level of detail of the liquid filaments.

  • Distance
    A multiplier for the distance (or length) of the liquid filaments.

  • Iso
    A multiplier for the liquid filament's iso.

  • Smooth Mesh

    • Enable Smoothing
      Enables/disables the smoothing of the final mesh.
      This is a very important thing for the whole look of the mesh.

    • Iterations
      Amount of iterations when smoothing.

    • Shrink (Convex/Neutral/Concave)
      When the mesh is smoothed it tends to shrink, which is something you want to have but not for all parts of the mesh. These parameters let you specify the amount of shrinking for the convex, neutral and concave parts of the mesh.

    • Convex/Neutral/Concave Angle
      The angles (between the normal vectors) that define when a point is considered to be convex, neutral or concave.

    The following images show a non-smoothed mesh (left) and a smoothed mesh (right).

 


The tab "Tools"

This tab provides a set of tools to pick, connect, disconnect, select and inspect objects (nulls, curves, polygon meshes and point clouds).


  • Active / Progress Bar / Refresh Button
    Same as in the tab "Main".

  • Add / Remove Input Objects
    Use these buttons to (dis)connect objects to/from the operator.
    The behavior of both buttons depends on the current selection:
    • If nothing is selected then a picking session is started. Click on the objects you want to connect/disconnect.
    • If one or more objects are selected then they are immediately connected/disconnected to the operator.

  • Objects / Properties (Select connected)
    Selects all objects or properties that are connected to the operator.

  • Create and connect a Null
    This will create a null and connect it to the operator.
    Surplus the null has a special display for a better visual feedback.

  • Re-Pick Custom Property
    This let's you re-pick the custom property of a connected input object.
    Note: a connected object can have more than one emPolygonizer4 custom property, but only one is used by the operator.

  • Inspect connected Objects
    These buttons can be used to display the property page of the custom property sets of connected objects.

  • Re-connect the Polygon Meshes' Cluster Properties
    This is somewhat special:
    Cluster properties and weight maps can be used to drive certain parameters (see polygon mesh custom property).
    In rare cases (for example after connecting a polygon mesh that already has an emPolygonizer4 custom property set, or if clusters or cluster properties were renamed) it can happen that the cluster properties are not connected to the operator.
    Clicking on this button will re-connect all cluster properties to the operator.

 


The tab "Data"

It is possible to create so-called "user data" for the mesh,
for example motion vectors in order to render deformation motion blur.


  • Active / Progress Bar / Refresh Button
    Same as in the tab "Main".

  • Vertex Colors
    Vertex colors are great: they make your mesh look good in the viewport and good at render time. Surplus they can be accessed in the Render Tree which gives you many additional possibilities when it comes to shading.
    The vertex colors are available as ICE data called "emP4_Color".

  • Motion Vectors
    These are required if you want to render motion blur.
    The motion vectors are available as ICE data called "PointUserMotions".
    The button " ? " will display some important information when working with motion blur.
    • Scale Sim.
      The scale of the motion vectors when the mesh is created (simulated).

    • Scale Cache
      The scale of the motion vectors when reading a cache file.
      Note: when caching files you should set the "Scale Sim." to 1.

  • Normal Vectors
    The normal vectors are built from the internal isofield values.
    The button " ? " will display some important information when working with user normals. Note: in many cases normal vectors are NOT recommended, for example when using liquid filaments or when caching non-smoothed meshes.
    The normal vectors are available as ICE data called "NodeUserNormal".

 


The tab "UVWs"

Use this tab to enable the creation of texture coordinates (UVWs).

Unlike vertex colors the UVWs need to be simulated. This means that there is a start frame and an initialization phase.
To get proper and predictable UVWs one needs to simulate and cache the mesh (using the RealFlow ".bin" or the new ".mzd" file format).

It is possible to connect nulls, polygon meshes and implicit cubes to control in which way UVWs are initialized (see below).

The UVWs are available as ICE data called "emP4_UVWs".


  • Active / Progress Bar / Refresh Button
    Same as in the tab "Main".

  • UVWs
    Texture coordinates (UVWs) are used to map textures (2D or 3D) onto the meshes.
    The button " ? " will display some information when working with UVWs.

    Note: it is recommended to enable motion vectors when working with UVWs!

    Initialization

    • Global Start Frame
      The global start frame at which the UVWs are initialized.

    • Mode
      The initialization mode for the UVWs.

    • The buttons Add/Remove/Select
      Use these buttons to connect a null or a polygon mesh to the UVW operator. The null (or polygon mesh) is used by the operator as a kind of spatial texture projection to initialize the UVWs.

    Initialization Volumes

    Certain scenarios require that certain parts of the mesh get initialized with "fresh UVWs" at each frame rather than just once. It is possible to connect bounding volumes (implicit cubes) to the UVW operator. These bounding volumes define the regions that need to be updated at each frame. The bounding volumes also have a custom operator to control the strength of the initialization (see below).

    • Use Volumes
      Enables/disables the use of bounding volumes.

    • Strength
      The global strength of the initialization of the bounding volumes.

    • The buttons Add/Remove/Select
      Use these buttons to connect bounding volumes (implicit cubes) to the UVW operator.

    The bounding volumes that are connected to the UVW operator have a custom property called "emPolygonizer4_UVWInitVolume".

    • Active
      Enables/disables the bounding volume.

    • Strength
      The strength of the initialization of the bounding volume.

    • Falloff Type
      The more a point is inside the volume the more it gets initialized and this parameter controls the falloff type.

emPolygonizer4 always and only generates 3D texture coordinates, hence UVWs instead of UVs. The UVWs can be used for 2D textures (e.g. bitmaps) or 3D textures (e.g. procedural marble). Below an example using a bitmap (left) and a procedural marble (right).

 


The tab "Caching"

This tab contains all the parameters for the geometry caching.
Caching the geometry is a very important part when working with emPolygonizer4.

Note that the emp2 cache files can also be read by the built-in Polygonizer (Softimage 2011 SAP and above).


  • Active / Progress Bar / Refresh Button
    Same as in the tab "Main".

  • Action
    The caching modes:
    • No Caching
      Disables all geometry caching (neither write nor read)
      => the geometry is always created through simulation.
      This is the default.
    • Simulate and Write
      Always simulate (=create) the mesh and write it to disk (existing files are overwritten).
    • Read only
      always read cached data and never simulate. If no cached data was found then an error occurs.
    • Read or Simulate
      read cached data if available, else simulate (without writing data to disk).
    • Read or Simulate and Write
      read cached data if available, else simulate and write the data to disk.
      This is sort of a "Skip rendered Frames" mode.

  • Mute Polymsh.Set()
    Mutes the creation of geometry within Softimage.
    This feature will decrease the simulation and caching time, especially when creating and caching heavy meshes.
    Note: this feature is only available when using the caching mode "Simulate and Write".

  • Smooth when reading Cache.
    If enabled then geometry is smoothed after being read.
    The button " ? " will display some further information concerning this parameter.

  • Smooth when writing Cache.
    If enabled then geometry is smoothed before being cached.
    Important: if you are caching some geometry for an application other than emPolygonizer4 (e.g. the built-in Polygonizer or a RealFlow Reader in Max/Maya) then you should enable this !

  • Range / Extrapolation
    It is possible to define a range in which the caching operates.

    • Use Range
      Enables/disables the use of the frame range.
      If the frame range is enabled then ..
      • .. the actions "Read or Simulate" and "Read or Simulate and Write" behave exactly like the action "Read only", in other words: nothing is simulated nor written to disk !
      • .. the action "Simulate and Write" will always simulate the mesh but only write the geometry to disk if the simulation frame is within the frame.

    • Start Frame
      The start frame of the frame range.

    • End Frame
      The end frame of the frame range.

    • Copy From Timeline
      Sets the start and end frame equal the timeline's start and end frame.

    • Extrapolation
      Defines what to do when the frame is outside the frame range.


  • File Input/Output
    Defines the path, file name and file format of the cache files.

    The supported file formats:

    1. "Proprietary, binary (.mzd)"
      this binary proprietary file format is the default for caching geometry.
      Its file size is the smallest, making it the best choice for distributed rendering, and it supports vertex colors, motion vectors, user normals and UVWs.

    2. "Proprietary, binary (.emp2)"
      this binary proprietary file format supports vertex colors, motion vectors and user normals.
      These files are compatible with older emPolygonizer versions as well as the built-in Polygonizer of Softimage 2011.5 and above.

    3. "Wavefront (.obj)"
      the Wavefront obj file format is a well-known ASCII file format which is supported by most of the existing 3D packages, making it a good choice if you want to re-use the cached geometry in another 3D software or maybe even edit the files with a text editor.
      The disadvantages of the obj file format are the relatively large file sizes (longer read and write times, especially in a network) as well as the fact that vertex colors and motion vectors are not supported.

    4. "Proprietary, ascii (.emp2)"
      this proprietary file format is a basic ASCII format, similar to the Wavefront format.
      It has all the disadvantages of the Wavefront format (i.e. file size) and is definitely not supported by any other 3D package.
      Its two main advantages are the fact that it is an ASCII format (and therefore editable) and that this format supports vertex colors, motion vector colors, etc.
      These files are compatible with older emPolygonizer versions as well as thebuilt-in Polygonizer of Softimage 2011.5 and above.

    5. "RealFlow (.bin)"
      the binary geometry format from RealFlow that can easily be imported into Maya or 3ds Max.
      It supports motion vectors and UVWs.

  • Frame Offset
    If the current caching mode is "read only" then a frame offset can be specified here.

 

Mesh Fixing

When using the caching mode "read only" one can enable some features that will correct and fix certain "uncleanliness", like for example non-manifold edges or holes in the mesh.


  • Fix double Edges
    Fixes double edges.

  • Fix non-manifold Edges
    Fixes non-manifold edges (= edges that are used by more than two polygons).

  • Close Holes
    Closes holes in the mesh.

  • Hole's max. size (-1: OFF)
    Holes that are bigger than this value are not closed.

  • Hole's max. Vertices
    Holes with more vertices than this values are not closed.

Note (Arnold users): it is recommended to enable "Fix double Edges" and "Fix non-manifold Edges", especially when using subdivision.

 


The tab "Advanced"


  • Active / Progress Bar / Refresh Button
    Same as in the tab "Main".

  • Use Memory Limit
    Enables/disables the use of the memory limit.
    It is recommended to use the memory limit.

  • Memory Limit (MB)
    The memory limit in megabytes.

  • Number of Threads
    The amount of threads to use for the multithreading or zero for automatic.

  • Strength
    Strength of the isofield blur. When generating vertex colors, user normals or motion vectors it is highly recommended to set this value greater than 0.

  • Iterations
    Amount of blur iterations.

  • Accurate
    If enabled then an accurate octree blur is performed else a normal octree blur.
    The accurate blur requires a little more memory but produces better results. The calculation times are about the same.

  • Blur in X/Y/Z
    Enable/disable the blur along the X/Y/Z axis.

  • Recycle Isofield (0=OFF)
    No documentation available.

  • Epsilon
    No documentation available.

  • Global Switches for Input Objects / Components

    • Filter by Implicit volumes

      • Filter by Volumes
        Enables/disables filtering by volume.
        If this is enabled then only the elements contained in the connected volumes (= implicit cubes) are used for meshing.

      • Invert
        Inverts the volume.

      • The Buttons "Add / Remove"
        Use these buttons to connect/disconnect implicit cubes.

      • The Button "Select All"
        Selects all connected implicit cubes.


    • Switches

      • Use Switches
        Enable this to use the switches.
        When enabled a whole bunch of switches shows up with which you can disable certain objects types or certain components.
        The parameters are self-explanatory and there's a little '?' button with some additional information.


  • Preferences

    • On Error
      Defines what happens when an error occurs.

    • Show rarely needed Parameters
      Shows the hidden parameters.

    • Show Refresh Button in all Tabs
      Shows the trio "Active, Progress Bar and Refresh" in the top of every tab.

    • Use Text rather than Icons and Bitmaps
      Enables/disables the icons in the PPG.

    • Enable Abortion through L+R Ctrl Keys
      Allows the abortion of the meshing by pressing the left and right CONTROL key simultaneously.

      Note: unfortunately this is only available for Windows, not for Linux.
      If a Linux coder reads this and knows how to get the states of the CONTROL keys please let me know !


    • Verbose in History Log
      Outputs some verbose in the history log.

    • Always Evaluate Operator on Time Change
      Forces the operator to update at each frame change.


 


Chapter 5 (part 2): The Property Page when using "Simple as Primitives"

The algorithm "Simple as Primitives" is a by-product of the algorithm "Marching Cubes". It is an easy and fast way to create some interesting meshes. The algorithm consists of simply copying some input geometry onto the points and surfaces of the input objects.

Below an example with a deformed torus as an input object, once with randomized tetrahedrons (left) and once with randomized custom polygon meshes (right).

 


The tab "Main"

This tab contains the operator's main parameters.


  • Active / Progress Bar / Refresh Button
    Same as in the tab "Main".

  • Algorithm ID (the three big icons)
    The algorithm that shall be used when building the mesh:
    • "Bounding Boxes from input Objects" (left icon)
    • "Simple as Primitives" (middle icon)
    • "Polygonizer / Marching Cubes" (right icon)

  • PrimitiveID
    Specifies the geometry that is to be used:

    • Point
    • Tetrahedron
    • Cube
    • Dodecahedron
    • Custom Polygon Mesh(es)

    When using Custom Polygon Mesh(es) then some additional parameters and functions appear below.


  • Size
    A multiplicand for the size.

  • Align Rotation
    Enable/disable the alignment.

  • Random Seed
    Random seed for the randomness.

  • Randomness (Size)
    Amount of randomness for the size.

  • Randomness (Direction)
    Amount of randomness for the direction.

  • Randomness (Roll)
    Amount of randomness for the roll.

  • Custom Polygon Meshes

    • Allocation
      Sets the way in which the custom polygon meshes (if more than one) are distributed onto the input objects and their points.

    • Random Seed
      Random seed for the distribution randomness.

    • Index Offset
      Index offset.

    • The Buttons "Add / Remove"
      Use these buttons to connect/disconnect custom polygon meshes.

    • The Button "Select All"
      Selects all connected custom polygon meshes.


 


The tab "Tools"

This tab is identical for all algorithms, please go here for more information.

 


The tab "Advanced"

This tab is identical for all algorithms, please go here for more information.

 


Chapter 5 (part 3): The Property Page when using "Bounding Boxes of input Objects"

 


The tab "Main"

This mode is a by-product of the debugging phase during the development of this plugin.
When using many, many input objects this mode can be useful in order to have a rough yet fast visual feedback.

There are no parameters available when using this mode.


The tab "Tools"

This tab is identical for all algorithms, please go here for more information.

 


The tab "Advanced"

This tab is identical for all algorithms, please go here for more information.

 


The hidden (or rarely used) Parameters

Aside from all the usual parameters are also a few hidden ones. These are usually rarely used and are not exposed in the PPG by default in order to not have too many unnecessary and confusing parameters.

 
Enable the parameter Show rarely needed Parameters in the tab "Advanced" to display the hidden parameters.

 

 

 

Hidden Parameters in the tab "Main"


  • Mul.Centers / Mul.Points/Polygons
    Switches that will enable/disable the parameters Mul.Iso/Radius/Falloff for centers and/or points and polygons.

Hidden Parameters in the tab "Advanced"


  • Filter Points (Geometry Cleanup)
    Strength of point filtering and merging, 0 for no point filtering.

  • Filter Polygons (Geometry Cleanup)
    Strength of polygon filtering and merging, 0 for no polygon filtering.

  • Enable (Quadrangulation)
    Enable/disable quadrangulation.

  • Incidence Angle (Quadrangulation)
    The maximum difference between the normals of two adjacent triangles.
    Higher angle values result in more quads.

  • Max Corner Right Angle Deviation (Quadrangulation)
    The maximum allowed deviation from a right angle.

  • Fill Isofield Valleys (Isofield Cleanup / Correction)
    No documentation available.

  • Show Isovalues (Debug)
    If enabled then the internal isovalues contained in the octree cells are displayed.
    Note: this can take quite a while if the LOD is high !

  • Scale (Debug)
    Scales the isovalues.

  • Epsilon (Debug)
    Isovalues that fall beneath this value are not displayed.

Hidden Parameters in the tab "UVWs"


  • Disable Quadrangulation
    Disables quadrangulation when calculating UVWs.

  • Depth of Acceleration Octree
    Use higher values with meshes that have very large amounts of points and polygons.

  • Motion Scale
    Scale of the motion when UVWs are calculated.

 

 

 


Chapter 6: The Custom Property Sets

Whenever an object is connected to the emPolygonizer4 operator it automatically gets a so-called custom property set, which basically is a custom parameter set with a little VBScript code behind it.
Each type of object (null, curve, polygon mesh, point cloud) has its own custom property.
The custom properties are attached under the objects (see picture).

Custom property sets are very important, because they contain parameters for each object that tell the operator how to use that object when building the final mesh.

Interlude: understanding the "isofield":

The whole "trick" of emPolygonizer4 consists of drawing iso values into an isofield ( = 3D grid ), similar to painting some color into a bitmap ( = 2D grid ). When you draw something into a bitmap you usually have a brush that has a color, size and falloff. It is the same in emPolygonizer4: the iso is the "color", the radius + falloff define the "brush's size" and the isofield is the "canvas".

The picture below shows the isofield (left) and the surface that was constructed from it (right).

 


The Custom Property of Nulls


The tab "Main" (Nulls)


  • Active
    Enable/disable this null for meshing.

  • Isofactor
    The iso value for the null. Note that it is possible to use negative iso values.

  • Radius
    The radius.

  • Falloff
    The falloff. Note that the falloff is added to the radius.

  • Falloff Type
    The falloff type (linear, square, etc.).

  • Base Color
    The color when using vertex colors.


The tab "Motion" (Nulls)

This tab contains the parameters for the motion plotting.

Note: motion plotting has nothing to do with motion blur, it only concerns how the geometry is built !

These parameters only have an effect if motion plotting is enabled in the operator's main property page.


  • Active
    Enable/disable motion plotting for this object.

  • Speed
    Scales the motion (the speed).

  • Offset
    Frame offset.

  • Position
    Frame position.
  •  

  • Compensate Radius and Falloff

    This defines the amount of volume preservation when the object is distorted by the motion.
    Lower this value if things tend to disappear when they move a little faster.

    The picture on the right shows a fast moving null without motion plotting (top), with motion plotting and compensation=0 (middle) and with compensation=0.9 (bottom).


The tab "Liquid" (Nulls)

Liquid filaments are a great way to achieve good looking results with fairly few inputs. The above picture for example only has a curve and four nulls.

The liquid filaments can also be used with large amount of points, for example with point clouds to create liquid-like meshes.


  • Active
    Enable/disable liquid filaments for this object.

  • Self <---> Self
    Enables/disables filaments with itself ("self filaments").
    In most cases you have this only enabled for point clouds.

  • Self  ---> Neighbors
    Enables/disables filaments going to the neighbors ("cast filaments").

  • Self <---  Neighbors
    Enables/disables filaments coming from the neighbors ("receive filaments").

  • Filament Lengths
    The maximum length of a filament, relative to the radius and falloff.
    The higher this value the longer the filaments but the more calculations.
  • Note:
    There was a little bug in version 3.0 concerning this parameter.
    The bug has been fixed in version 3.01, so please make sure you are working with a version greater than or equal 3.01. If you are unsure about which version you currently have installed then you can either go into the Plugin Manager or simply download and install the latest version of this plugin.


  • Optimized Plotting
    It is recommended to have this enabled.
    This only needs to be disabled when using some crazy profiles.

  • Level of Detail
    Level of detail for the filaments. If the filaments look a little blobby then increase this value.

  • Iso Multiplier
    Iso multiplier for the filaments.

  • Thickness
    Thickness of the filaments.

  • Meeting at
    The "meeting point" of the filament with its neighbor. The lower this value the earlier the filament reaches the neighbor. A value of zero will make the filaments appear without any fade.

  • Neighboring - Filter
    The heart of liquid filaments is the neighboring filter. It defines how the neighbors are weighted for the final liquid filaments of a current point and also prevents horrendous calculation times.
    There are currently two filters:
    • by Weight of Neighbors
      The weight of neighbors is the determinative factor. This is the default.
      The closer a neighbor gets and the more the (virtual) filament is important the higher its weight.
    • by Number of Neighbors
      The amount of neighbors is the determinative factor. The closest Max Number neighbors will be fully used, the next Fade neighbors will be used to gradually fade out the effect in order to reduce suddenly appearing filaments.

  • Show Profile FCurves Button
    This button shows/hides the profile curves that define how the liquid filaments fade in/out, how the are shaped, etc.

 


The Custom Property of Curves


The tab "Main" (Curves)


  • Active
    Enable/disable this curve for meshing.

  • Use
    Defines which components of the curve are to be used for meshing.

  • LOD
    The level of detail (in "amount per SI Unit") when approximating the curve.
    Higher LOD values also mean that more plots into the isofield are performed.

  • Isofactor
    The iso value for the curve.
    It is possible to use negative iso values or to multiply this value by a FCurve.

  • Radius
    The radius.
    This value can be multiplied by a FCurve.

  • Falloff
    The falloff. Note that the falloff is added to the radius.
    This value can be multiplied by a FCurve.

  • Falloff Type
    The falloff type (linear, square, etc.).

  • Base Color
    The color when using vertex colors.


The tab "Motion" (Curves)

This tab is identical to the tab "Motion" of Nulls.


The tab "Liquid" (Curves)

This tab is identical to the tab "Liquid" of Nulls.


The tab "FCurves" (Curves)

This tab contains FCurves that can be used to control the iso, radius and/or falloff values along the curve.

Each set has the same parameters and buttons:

  • Multiply by FCurve
    Enables/disables the FCurve for iso/radius/falloff.

  • The Buttons "Small/Large"
    Use these buttons to get a bigger or smaller FCurve editor.

  • The FCurve
    The FCurve that is multiplied with the respective value (iso/radius/falloff).
    The x axis represents the position on the curve (0 to 100) and the y axis the value to use as multiplicand.

 


The Custom Property of Polygon Meshes


The tab "Main" (Polygon Meshes)


  • Active
    Enable/disable this polygon mesh for meshing.

  • The Button "Show Weight Map Parameters"
    Use this button to show/hide the weight map and color at vertices map parameters.
    When visible, you can pick a weight map to drive certain parameters, as for example the radius and falloff.

  • Use
    Defines which components of the polygon mesh are to be used for meshing.

  • LOD
    The level of detail (in "amount per square SI Unit") when approximating the mesh.
    Higher LOD values also mean that more plots into the isofield are performed.

  • Isofactor
    The iso value for the polygon mesh.
    It is possible to use negative iso values or to multiply this value by a weight map (see the button Show Weight Map Parameters).

  • Radius
    The radius.
    This value can be multiplied by a weight map (see the button Show Weight Map Parameters).

  • Falloff
    The falloff. Note that the falloff is added to the radius.
    This value can be multiplied by a weight map (see the button Show Weight Map Parameters).

  • Falloff Type
    The falloff type (linear, square, etc.).

  • Base Color
    The color when using vertex colors.
    It is also possible to use a color at vertices map (see the button Show Weight Map Parameters).

  • Base/Vertex
    Fade between the base color and the colors at vertices map.


The tab "Motion" (Polygon Meshes)

This tab is identical to the tab "Motion" of Nulls.


The tab "Liquid" (Polygon Meshes)

This tab is identical to the tab "Liquid" of Nulls.


The tab "Miscellaneous" (Polygon Meshes)

When polygon meshes are used as inputs then they are "translated" into a bunch of points that lay on the surface before being plotted into the isofield. The amount of points depends on the surface area of each polygon. When using shape animated polygon meshes this can cause problems, because the surface area varies from frame to frame. This is okay when using "Polygonize / Marching Cubes", but definitely a problem when using "Simple as Primitives".

The two parameters in this tab can be used to define how locations on the surface are to be calculated and evaluated. To solve the above mentioned problems one would have to set the first parameter to "siConstructionModeModeling".


  • ..when calculating Locations
    The construction mode to use when calculating the locations on the surface.

  • ..when evaluating Locations
    The construction mode to use when evaluating the locations on the surface.


The tab "Advanced" (Polygon Meshes)

Enabling "Treat this Polygon Mesh as a Point Cloud" will do exactly what the parameter name suggests:

The polygon mesh will be treated as if it were a point cloud and the property page of the custom property will change accordingly.
This can be useful when your polygon mesh is driven by an ICE Tree.

 


The Custom Property of Point Clouds


The tab "Main" (Point Clouds)


  • Active
    Enable/disable this point cloud for meshing.

  • Use
    Defines which components of the point cloud are to be used for meshing.
    Aside from the usual choices (points, strands,..) you can also choose "Use emFluid4 3D Grids".
    You can find more information about this in Chapter 7: Meshing the internal emFluid4 Grids,

  • LOD
    The level of detail (amount of subdivisions) for the strands.
    Higher LOD values also mean that more plots into the isofield are performed.

  • Isofactor
    The iso value for the point cloud.
    It is possible to use negative iso values.

  • Radius
    The radius.

  • Multiply Radius by Point Size (if available)
    Multiply the above radius value with the particle's size, if available.

  • Falloff
    The falloff. Note that the falloff is added to the radius.

  • Falloff Type
    The falloff type (linear, square, etc.).

  • Multiply Falloff by Point Size (if available)
    Multiply the above falloff value with the particle's size, if available.

  • Base Color
    The base color when using vertex colors.

  • Use Point/Particle Color (if available)
    Use the particle's color, if available, when working with vertex colors.

  • Base/Vertex
    Fade between the base color and the particle's color.


The tab "Motion" (Point Clouds)

This tab is identical to the tab "Motion" of Nulls.


The tab "Liquid" (Point Clouds)

This tab is identical to the tab "Liquid" of Nulls.


The tab "Filter Points" (Point Clouds)

This tab can be used to filter the points of the point cloud.
It is typically used in order to mesh only certain specific particles, for example you could choose to discard all particles with a State_ID equal 7.

This is a powerful little feature, because it allows you to choose specific particles without the need of modifying the point cloud's data. A typical usage could be a Lagoa point cloud that has different materials, let's say some water with a Lagoa_PhaseID = 0 and some jello with a Lagoa_PhaseID = 1. With "Filter Points" you can mesh only the water with one emPolygonizer4 and the jello with another emPolygonizer4.

  • Use/Discard Particles depending on A and B

    • Enable
      Enable/disable point filtering.

    • Condition
      The condition that must be met.
      You can choose between all possible combinations of A and B, for example "A or B" or "!A".
      "A" and "B" are defined in the bottom part of the tab.

    • Do What
      When the above condition is TRUE then either
      • Use Point
      • Discard Point


  • Definition of A and B

    "A" and "B" are defined as following:

    The left textfield contains the name of the ICE data (followed by a space) and then the comparison, e.g. "<" or "==".
    The parameter on the right is the value that is used for the comparison.

    Example:
    The settings as in the above picture of the Filter Points tab would use only points that have a size less than or equal 0.1 or an ID greater than 520:

    if  Size <= 0.1  or  ID > 520  then Use Point



The tab "Lagoa" (Point Clouds)


  • N.Indices / N.Removed
    These two textfields contain the name of the ICE data that describes the Lagoa topology.
    You should not modify them.

  • Enable
    Enables/disables the meshing of Lagoa cloth.

  • ICE Data - Identifier
    These textfields can be used to identify the particles for the cloth meshing.
    When working with Lagoa you typically assign a material (e.g. "Lagoa Cloth") to a "Lagoa Phase ID". Enter the phase ID of the cloth you want to mesh in the lower field.

  • Length
    The extrusion length of the cloth or zero for no extrusion.

  • Only Tris and Quads
    If enabled then only triangles and quads are generated.
    It is recommended to have this enabled.

  • Auto-Cleanup
    If enabled then some cleaning up is performed during the meshing (unnecessary points are filtered out).
    It is recommended to have this enabled.

Below a simple example of some Lagoa cloth:
on the left is the point cloud with the Lagoa cloth particles (the yellow lines visualize the internal Lagoa structure) and on the right the meshed cloth (with extrusion and subdivision).

The tab "Advanced" (Point Clouds)

By default the ICE data "PointPosition" is used for the positions, "PointVelocity" for the velocity, etc.
In this tab you can specify another (compatible) ICE data.

For example you could create some own vectors in the ICE Tree, store them in an own ICE data and then use that data as velocity.

The buttons "Check" can be used to check if the specified data is available.

There are several ICE compounds available to get/set the liquid filament ICE data.

 

 


Chapter 7: Meshing the internal emFluid4 grids

The style of data used by emPolygonizer4 and emFluid is rather similar:
Some sort of 3D grid filled with "stuff".

It is possible to transfer the internal 3D grids of emFluid directly into emPolygonizer4 and then to mesh them. For example you could use the "heat" or the "waste" values for meshing. The picture on the right shows an example of the meshed waste grid. Note that the particles of the point cloud are not required.

In order to use this feature you obviously need a point cloud with an emFluid setup contained in its ICE Tree. Furthermore you need to have emFluid4 version 4.03 or higher installed. If the meshing of the fluid grids doesn't work then you probably have an older emFluid4 version installed. You can get the most recent version here.

How to mesh the fluid grids, step-by-step:


  1. Connect a point cloud that has an emFluid4 setup in its ICE Tree to emPolygonizer4.

  2. Go into the emPolygonizer4_PointCloud property page of the point cloud and set the "Use" parameter to "Use emFluid4 3D Grids", as shown in the picture on the right.

  3. The layout of the property changes. In the tab "emFluid4 3D Grids" you can choose the grids to use for the meshing:

    Heat and/or Waste and/or Density.

    Furthermore you can remap the grid values in order to adjust the meshing.

  4. Note:
    • the emFluid velocity grid is automatically used when meshing with motion vectors.
    • you cannot mesh the fluid grids with cached emFluid point clouds.
    • you don't need any particles when meshing the internal emFluid grids ! So turn off any particle creation in order to speed things up.

 


Tips and Tricks, Trouble Shooting

Your issue is not listed here ? Write me a short email describing the problem !

 
  • Tips and Tricks:

    • Use the "Global Switches" in the tab "Advanced" when tweaking complex setups

      Things can get a little slow when working on large setups, liquid filaments or a high LOD. In the tab "Advanced" are some global switches that you can use to disable all the things you don't need while tweaking parameters.
      Example:
      You are meshing a large point cloud and are tweaking the liquid filaments and the mesh smoothing. For that you do not need the whole point cloud, a small and representative part of the point cloud would be sufficient, so you could filter the points with an implicit volume or only use the tagged points for meshing.


    • Check out the ICE Tree in the "Secondary Shape Modeling" stack

      The operator stack of a typical emPolygonizer4 mesh has a "emPolygonizer4 operator" in the "Modeling" stack and an ICE Tree in the "Secondary Shape Modeling" stack". The purpose of the ICE Tree is to set the user data (motion vectors, vertex colors, etc). The picture on the right displays the "emP4 _ ICE Data Generator" compound and below you can see the compound's property page.


  • Known Issues:

    • KNOWN ISSUE (Linux):

      The meshing is (much) slower when the Progress Bar is enabled.


    • KNOWN ISSUE:

      The "per point" ICE data color and uvw sometimes has 'drop outs'. This seems to be a Softimage issue.
      Workaround: use the "per node" data instead.


  • Trouble Shooting:

    • PROBLEM: the motion blur looks terrible ! Is it a bug ?!

      SOLUTION: you are probably trying to render motion blur with a non-cached emPolygonizer4.
      When rendering motion blur you should always cache your geometry !


    • PROBLEM: I cached some geometry and it looks blobby and ugly when imported into Maya or Max

      SOLUTION: you have Disable Smoothing when writing Cache Files enabled.
      When exporting geometry that is to be used with an applications other than emPoylgonizer3 you should disable that parameter.
      See the tab "Caching" for more information.


    • PROBLEM: I have a shape animated input mesh and am using "Simple as Primitives" and everything is flickering !

      SOLUTION: go to the tab "Miscellaneous" and set the first parameter to siConstructionModeModeling.


 


Version History

  • New in Version 4.0:

    • Improved overall simulation performance.

    • Improved overall caching performance.

    • Greatly improved memory usage (about 60-70% less than before).

    • New tab "UVWs" to create 3D texture coordinates (can be used for 2D textures, too).

    • New cache file format that supports UVWs.

    • ICE data can now be specified manually.

    • Marching Tetrahedrons.

    • Mesh fixing when reading cache files:

      • repair double and non-manifold edges.
      • close holes in mesh.

    • A few bug fixes.


  • New in Version 4.01:

    • Bug fix: version 4.0 crashed with Softimage 2013. This was due to the clusters and the cluster properties.
      The issue has been fixed in version 4.01.

    • The clusters have been entirely replaced by ICE data.


  • New in Version 4.03:

    • Bug fix: version 4.01 had a serious memory leak due to an error in the ICE Tree in the Secundary Shape Modeling stack.
      The issue has been fixed in version 4.02.

    • The compound "ICE Data Generator" now has a boolean to set the wrapping of the texture projection.

    • Some minor internal enhancements concerning the ".mzd" file format, in order to be fully compatible with the newest versions of emTopolizer and emReader.


  • New in Version 4.15:

    • The compound "ICE Data Generator" has been entirely revised. UVWs and Colors are now available as "per point" and "per node" ICE data.

    • Deformation motion blur now works correctly with Mental Ray and Arnold.

    • ICE data UVWs are now supported by SItoA and Arnold.

    • Support of emBatch licensing.

    • The file format ".mzd" now supports "per node" colors and UVWs.

    • The file format ".obj" now supports "per point" and "per node" colors and UVWs.

    • Bug fix: the PPG did not refresh correctly after using the "Browse" button in the tab "Caching".


  • New in Version 4.16:

    • Bug fix: there was a memory leak when reading cache files. This has been fixed.

 


Limitations and Remarks

  • emPolygonizer4 runs fine with Softimage 2012 SP1 and above.