Houdini 18.0 Nodes TOP nodes

Partition by Tile TOP node

Partitions work items spatially using axis-aligned bounding boxes.

On this page

This partitions work items based on tiles so that each partition corresponds to a tile that contains work items with geometry that intersects with that tile. The tiles are arranged in a 3D grid, with origin at Tile Origin, where each axis has Tile Count number of tiles. Each tile has size per side calculated as Total Size / Tile Count. Tiles can be visualized as a grid of bounding boxes.

The source geometry is specified by attributes on each work item. The types of attribute data supported are points from string, points from vector, and bounding box. Points can be connected (i.e. a curve) or disconnected (point cloud), and points can be given a radius for size (i.e. sphere or tube).

Note that partitions are only created for tiles that contain or intersect with work item geometry. The resulting index of the partition corresponds to the tile index.

As an example, a Tile Count of 2×2×2 and a Total Size of 512 produces 8 axis-aligned bounding boxes, where each box is of size 256×256×256.

Parameters

Use Dynamic Partitioning

When on, the partitioner waits for all input work items to be generated before partitioning them. If the input work items are dynamic, then the partitioner has to wait for and depends on the parent(s) of those items.

Merge Input Attributes

When on, the partitioner merges the attributes of the work items in each partition and exports them to the partition itself.

Tiles

Tile Origin

The offset of all tiles from world origin.

Tile Count

The number of tiles for each axis.

Total Size

The combined size of all tiles. To get a tile side’s size, the Total Size is divided by the Tile Count for that axis.

Tile Index Order

Specifies whether to use row-major or column-major for the tile indexing.

Write Tile Attributes

If enabled, writes out the tile origin, total tile size, tile count, intersecting tile’s position, intersecting tile’s minimum bounds, and intersecting tile’s maximum bounds. This can be useful for visualization.

Source

The source geometry is specified by attributes on work items.

Attribute Type

The type of attribute for the source geometry.

Points String: Points are specified as a string attribute. Similar to the Coordinates parameter in curve

Points Vector: Points are specifed as a position vector. An example is the P attribute for position.

Bounding Box: The source geometry is a bounding box with min and max bounds.

Points Attribute

Specifies the name of the points attribute.

Points Connected

Specifies whether the points are connected (e.g. curve) or disconnected.

Point Radius

Specifies the radius of each point for intersection test.

Min Bounds Attribute

The name of the attribute for the minimum bounds.

Max Bounds Attribute

The name of the attribute for the maximum bounds.

Advanced

These are advanced parameters that provide finer control over the behavior of the partitioner.

Auto Remove Stale Dependencies

When on, the partitioner removes old dependencies when recooking the node if the partitioning scheme changes as a result of the cook.

Force Re-Evaluation on Cook

When on, forces the partitioner to re-evaluate the partitioning scheme even if all of the work items are already cooked and no new work items have been added.

Split by Attribute

When on, the node splits input work items by the specified attribute before partitioning them. The partitioning logic is evaluated on the list of work items for each distinct attribute value. Work items with different attribute values are always put into different partitions.

Missing Attribute

Determines how the node handles work items that are missing the split attribute.

This parameter is only available when Split by Attribute is on.

Ignore Work Item

Work items that are missing the split attribute are not put into any of the partitions.

Partitioner Defines Behavior

The partitioner node determines what happens to work items that are missing the split attribute. Typically a partitioner node that exposes this option will rename this menu entry to describe the actual operation it performs.

Add Work Item to All Partitions

Work items that are missing the split attribute are put into all of the partitions.

Sort Contents By

Determines the order that work items are sorted in when accessing the partitions on this node. This also affects the sort order of output files on the partition.

None

No sorting is applied. The work items in the partition are handled in no particular order.

Work Item Index

Work items in the partition are sorted based on their index.

Input Node Order

Work items in the partition are sorted based on the order of input nodes wired into this node. If two work items are from the same input, they are then sorted by index.

Attribute

Work items in the partition are sorted based on the attribute specified in the Sort Attribute field parameter.

Dirtying Mode

Determines when a partition is dirtied and the effects on child items when that occurs. This is particularity useful for working around some of the limitations of using dynamic partitioning.

Standard

A given partition is dirtied when any of the work items in the partition are dirtied. In the case of dynamic partitioning, if any ancestor of a dynamic work item in a partition is dirtied, then all partitions are dirtied.

When a partition is dirtied, all of its children are deleted.

Non-destructive

The same dirtying behavior as Standard, except when a partition is dirtied, its children are dirtied instead of deleted.

Mapping Standard

A given partition is only dirtied if an item in the partition is dirtied or if the partition’s contents change as a result of a recook. When the partition is dirtied, any child work items are deleted.

Mapping Non-destructive

The same dirtying behavior as Mapping Standard, except when a partition is dirtied, its children are dirtied instead of deleted.

Partition When

Determines when the partitioning step is performed on the input work items.

This parameter is only available when Use Dynamic Partitioning is on.

Input Items Are Generated

Inputs are partitioned once all of them have been generated.

Input Items Are Cooked

Inputs are partitioned once all of them are cooked. This is required when the partitioning scheme is based on the results of the work items' execution.

This makes this partitioner behave like a Wait for All node except that it may create multiple partitions.

Partition Target

Specifies the target TOP node for the partition. The partition scheme is applied to the work items in the target TOP node instead of this node’s input work items. The target TOP node must be a processor in the same graph above this node, and there cannot be any other mappers or partitioners between this node and the target.

This parameter is only available when Use Dynamic Partitioning is on.

Examples

example_top_partitionbytile Example for Partition by Tile TOP node

This example demonstrates how to use the partition by tile node in PDG/TOPs.

See also

TOP nodes