Topology POP
Summary[edit]
The Topology POP gives finer control on how to combine existing points and topology (vertices and primitives), as well as their memory allocation.
Any unsigned int attribute from the input POP or another POP, interpreted as a list of point indices, can be used to describe the topology of the POP, alongside a manual description of the number of primitives (Topology Info), either using the parameters when the number of primitives of each type are known on the CPU, or using values coming from attributes, when the number of primitives of each type are only known on the GPU. This allows to combine multiple buffers created with GLSL and GLSL Advanced POP to describe geometry for example.
Alternatively the Topology and Topology info can be provided from another POP. Primitives and Vertices attributes can also be merged in from other POPs.
Last but not least, for POPs whose numbers of points and primitives are known on the GPU, the maximum numbers can be updated here, if the user knows them to be smaller, to reduce the memory allocation of downstream POPs. Alternatively if the exact counts are known they can also be entered manually and the POP updated to know that its point count info and topology info are now known on the CPU, without incurring the cost and stall of a download. (Refer to Learning about POPs, Information known on CPU/GPU)
Parameters - Points Page
maxpointsmode - ⊞ - Specifies how to set the maximum number of points.
- Max Points
maxpointsmode-
- Max Points
maxpoints- Sets the max number of points. If the POP point count info is on the CPU, that's the actual number of points.
pointcountinfo - ⊞ - Input point count source.
- From Input
input-
- From Max Points Parameter
fromparams-
- From Attribute
fromattrs-
pointcountpop - POP that holds the point counts.
pointcountclass - ⊞ - Attribute class of the attribute that holds the point count.
- Point Count Attribute
pointcountclass-
- Point Count Attribute
pointcountattr- Attribute that holds the point count.
Parameters - Topology Page
render - Enables rendering in the viewer. Disable when output data is in an intermediate or non-renderable state
primsourcemode - ⊞ - Whether the input POP is the primitive source or a different POP is used as the primitive source. Other parameters refer to the primitive source.
- Input
input-
- Specify POP
specpop-
primmode - ⊞ - Whether the primitive source input is used for the topology and topology info, or an attribute is used to specify the topology (the point indices), and the topology info is specified manually.
- Source Topology and Topology Info
topo-
- Source Attribute and Manual Topology Info
attr-
primspop - Specifies the POP to use for the primitive source.
pointindexattrclass - ⊞ - Attribute class of the attribute that holds the point index values.
- Point Index Attrib Class
pointindexattrclass-
- Point Index Attrib Name
pointindexattrname- Attribute that holds the Point Index values.
vertattrmode - ⊞ - Specifies whether the vertex attributes come from the vertex source (input or separate POP) or from a separate POP
- None
none-
- Primitive Source
primsource-
- Specify POP
specpop-
vertattrpop - The POP from which the vertex attributes come from.
vertattrclass - ⊞ - The attribute class from the vertex attributes when they come from the specified POP.
- Point
point-
- Vertex
vertex-
- Primitive
primitive-
primattrmode - ⊞ - Specifies whether the primitive attributes come from the primitive source (input or separate POP) or from a separate POP.
- None
none-
- Primitive Source
primsource-
- Specify POP
specpop-
primattrpop - The POP from which the primitive attributes come from.
primattrclass - ⊞ - The attribute class from the primitive attributes when they come from the specified POP.
- Point
point-
- Vertex
vertex-
- Primitive
primitive-
topology - ⊞ - Determines the topology mode.
- Source Topology Reference
ref-
- Source Topology Copy
copy-
maxtrianglesmode - ⊞ - Specifies how to set the maximum number of triangle primitives.
- Max Triangles
maxtrianglesmode-
- Max Triangles
maxtriangles- Sets the max number of triangle primitives. If the POP topology info is on the CPU, that's the actual number of triangle primitives.
maxquadsmode - ⊞ - Specifies how to set the maximum number of quad primitives.
- Max Quads
maxquadsmode-
- Max Quads
maxquads- Sets the max number of quad primitives. If the POP topology info is on the CPU, that's the actual number of quad primitives.
maxlinestripsmode - ⊞ - Specifies how to set the maximum number of line strip primitives.
- Max Line Strips
maxlinestripsmode-
- Max Line Strips
maxlinestrips- Sets the max number of line strip primitives. If the POP topology info is on the CPU, that's the actual number of line strip primitives.
maxlsvertsmode - ⊞ - Specifies how to set the maximum number of vertices per line strip.
- Max Line Strip Verts
maxlsvertsmode-
- Max Line Strip Verts
maxlsverts- Sets the max number of line strip vertices. If the POP topology is on the CPU, that's the actual number of line strip vertices.
maxlinesmode - ⊞ - Specifies how to set the maximum number of line primitives.
- Max Lines
maxlinesmode-
- Max Lines
maxlines- Sets the max number of line primitives. If the POP topology info is on the CPU, that's the actual number of line primitives.
maxpointprimsmode - ⊞ - Specifies how to set the maximum number of point primitives.
- Max Point Prims
maxpointprimsmode-
- Max Point Prims
maxpointprims- Sets the max number of point primitives. If the POP topology info is on the CPU, that's the actual number of point primitives.
lsinfofromprimsource - When set, uses the primitive source (Input or Specified POP) for the Line Strip Info buffer.
lsinfoupdate - ⊞ - Allows you to choose how the Line Strip Info buffers get updated.
- Auto
auto-
- Manual
manual-
lsinfopop - POP with the attribute to use for the Line Strip Info buffer.
lsinfoclass - ⊞ - Attribute class of the attribute to use foor the Line Strip Info buffer.
- Line Strip Info Attribute
lsinfoclass-
- Line Strip Info Attribute
lsinfoattr- Attribute to use for the Line Strip Info buffer.
lsindexpop - POP with the attribute to use for the Line Strip Index per Vert buffer.
lsindexclass - ⊞ - Attribute class of the attribute to use for the Line Strip Index per Vert buffer.
- Line Strip Index per Vert Attribute
lsindexclass-
- Line Strip Index per Vert Attribute
lsindexattr- Attribute to use for the Line Strip Index per Vert buffer.
lsmaxvertsoverride - ⊞ - Specifies you wan to set the max number of verts per line strip.
- Max Verts per Line Strip
lsmaxvertsoverride-
- Max Verts per Line Strip
lsmaxverts- Sets the max number of verts per line strip. Used by some downstream POPs for GPU memory allocation.
topoinfo - ⊞ - Sets the topology information source.
- From Primitive Source
primsource-
- From Max Prims Parameter
fromparams-
- From Attributes
fromattrs-
topoinfopop - Sets reference to a POP where the info attribute can be found.
topoinfoclass - ⊞ - Sets the attribute class where the info attribute can be found.
- Point
point-
- Vertex
vertex-
- Primitive
primitive-
trianglecountmode - ⊞ - Whether to get the count of triangle primitives from the source, set it to 0, or set its value manually.
- Triangle Count
trianglecountmode-
- Triangle Count Attribute
trianglecountattr- Specifies the attribute to use to set the triangles count.
quadcountmode - ⊞ - Whether to get the count of quad primitives from the source, set it to 0, or set its value manually.
- Quad Count
quadcountmode-
- Quad Count Attribute
quadcountattr- Specifies the attribute to use to set the quadrilaterals count.
linestripcountmode - ⊞ - Whether to get the count of line strip primitives from the source, set it to 0, or set its value manually.
- Line Strip Count
linestripcountmode-
- Line Strip Count Attribute
linestripcountattr- Specifies the attribute to use to set the line count.
lsvertcountmode - ⊞ - Specifies how to set the line strip vertex count.
- Line Strip Vert Count
lsvertcountmode-
- Line Strip Vert Count Attribute
lsvertcountattr- Specifies how to set the line strip vertex count.
linecountmode - ⊞ - Whether to get the count of line primitives from the source, set it to 0, or set its value manually.
- Line Count
linecountmode-
- Line Count Attribute
linecountattr- Specifies the attribute to use to set the line count.
pointprimcountmode - ⊞ - Whether to get the count of point primitives from the source, set it to 0, or set its value manually.
- Point Prim Count
pointprimcountmode-
- Point Prim Count Attrib
pointprimcountattr- Specifies the attribute to use for the point primitive count.
Parameters - Common Page
bypass - Pass through the first input to the output unchanged.
freeextragpumem - Free memory that has accumulated when output memory has grown and shrunk.
delinputattrs - Only output which attributes you specify in this POP - helps isolate attributes into a separate branch.
Operator Inputs
- Input 0: -
Info CHOP Channels
Extra Information for the Topology 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:
| POPs |
|---|
| • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • |