This rest position extends beyond the traditional rest options including three additional core functionalities: Set Rest in another location, Move to Rest, and Delete instead of Move. It also includes attributes to sort and organize your data for export for assets like games.
This rest sop is designed to be used prior to your simulation in order to give the geometry the appropriate attributes to work with. Plus being use prior to export to clean and organize the geometry prior to export, especially in the use case of games.
Set Rest in another location, is similar to the second input where it will allow you to define where the rest position is other than it's current position. By default it will iterate on each piece and set the position based on the origin.
In assets that have multiple instance or copies you can control the extent of the bounding area.
Move to rest, is a complimentary action to setting the rest after a simulation, or when you want to check your rest position. Plus when you use the function "Set Rest in another location" you can have the "hidden geometry" positioned off screen for level editors, or to sample a different world rest location for shading.
Delete instead of Move, is a complimentary culling method of the Move to Rest. It allows you to keep the pieces within a Bounding Shape and to delete the pieces escaping them. This is not a traditional "Rest" style behavior but more of a "delete" operation, however, depending on different game engines, you may be able to delete pieces as oppose to just hiding them, so this node takes the same operations as moving and instead can cull these pieces.
It also incudes extra ordering attributes; OrderPoint, OrderPrim, and UID. These attributes can be used to sort the geometry prior to export so that their linear stack remains the same.This will automatically happen if you use this Rest Position node in the functional modes: Move to Rest, or Delete instead of Move.
Often in Houdini scenes you will split the geometry sequence up into multiple paths, then you will further manipulate the geometry into different hierarchies,
and when you go to merge this data back together the order will be mixed.
In traditional offline render engines this is not much of a problem, however when you export to some asset pipelines,
such as in games, this order can matter, as the the game engine importer will not understanding your changing
data streams.
OrderPoint, OrderPrim and the UID will organize from the point, primitive, and piece levels of your data.
You can chain each one of these nodes in series if you split your geometry paths through the "Previous Rest Sop" path.
By pressing the button "Set the Max" it allows you to cook the connected sops chain once to find the max value of these attributes in these sops, it will then paste these maximum values in the corresponding Max integer parameters.
This allows you to avoid recooking multiple chains in this series each time you want to evaluate this node, by only using the provided value. This parameters are exposed so you can visually confirm that the nodes in the series cook and add up correctly, due to the mis-matching of rest sops. Additionally you can hand edit these values encase you want to pad them arbitrarily.