jit.gl.tf Reference

Manage transform feedback on geometric meshes

jit.gl.tf

Description

The jit.gl.tf object binds to a jit.gl.mesh object, takes input from jit.gl.buffer objects, and uses a shader program defined in a jit.gl.shader object to apply a transform feedback effect on the mesh geometry.

Discussion

Transform feedback allows for computations on geometric data buffers to take place entirely on the GPU without the need to readback to the CPU, and are commonly used to create GPU particle systems. The buffer data is read in by the transform feedback shader, operated on, and the results are passed on to the jit.gl.mesh for rendering. These results are then fed back to the tranform feedback object as input for the next frame, thereby maintaining state between subsequent frames.

Arguments

numbuffers [int]

The number of inlets to create. Each inlet can bind to a jit.gl.buffer. The maximum is 8, although the actual maximum number of feedback buffers is hardware dependent, usually 4.

Attributes

bufnames [8 symbols]

Currently read only. Displays the list of buffers bound to the jit.gl.tf object. Order of buffers reflects bound inlets from left to right.

enable [int]

Enables transform feedback when set to 1. When disabled, the bound input buffer is passed in its intial state.

It is recommended to disable this before modifying input buffers and reenable it after making changes. Changing input buffer state while enabled may result in unexpected behavior.

initcount [int]

The initial number of primitives that will be passed to the transform feedback stage. Useful for particle simulations when used in conjunction with geometry shaders to create emitters. If set to 0, the entire buffer is passed on enable.

name [symbol]

g/s(get)

The read only name of the jit.gl.tf object. This name is used internally to handle the feedback bindings.

numbuffers [int]

g/s(get)

Set as an argument after the jit.gl.tf object name, reports the number of buffer inlets.

shader [symbol]

The name of the jit.gl.shader object for the jit.gl.tf object to bind to.

texture [32 symbols]

The name of the texture or textures bound to the transform feedback shader process (default = none).

Common Box Attributes

annotation [symbol]

Sets the text that will be displayed in the Clue window when the user moves the mouse over the object.

background [int] (default: 0)

Adds or removes the object from the patcher's background layer. background 1 adds the object to the background layer, background 0 removes it. Objects in the background layer are shown behind all objects in the default foreground layer.

color [4 floats]

Sets the color for the object box outline.

fontface [int]

Sets the type style used by the object. The options are:

plain
bold
italic
bold italic

Possible values:

0 = 'regular'
1 = 'bold'
2 = 'italic'
3 = 'bold italic'

fontname [symbol]

Sets the object's font.

fontsize [float]

Sets the object's font size (in points).

Possible values:

'8'
'9'
'10'
'11'
'12'
'13'
'14'
'16'
'18'
'20'
'24'
'30'
'36'
'48'
'64'
'72'

hidden [int] (default: 0)

Toggles whether an object is hidden when the patcher is locked.

hint [symbol]

Sets the text that will be displayed in as a pop-up hint when the user moves the mouse over the object in a locked patcher.

ignoreclick [int] (default: 0)

Toggles whether an object ignores mouse clicks in a locked patcher.

jspainterfile [symbol]

JS Painter File

patching_rect [4 floats] (default: 0. 0. 100. 0.)

Sets the position and size of the object in the patcher window.

position [2 floats]

g/s(set)

Sets the object's x and y position in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its size unchanged.

presentation [int] (default: 0)

Sets whether an object belongs to the patcher's presentation.

presentation_rect [4 floats] (default: 0. 0. 0. 0.)

Sets the x and y position and width and height of the object in the patcher's presentation, leaving its patching position unchanged.

rect [4 floats]

g/s(set)

Sets the x and y position and width and height of the object in both patching and presentation modes (if the object belongs to its patcher's presentation).

size [2 floats]

g/s(set)

Sets the object's width and height in both patching and presentation modes (if the object belongs to its patcher's presentation), leaving its position unchanged.

textcolor [4 floats]

Sets the color for the object's text in RGBA format.

textjustification [int]

Sets the justification for the object's text.

Possible values:

0 = 'left'
1 = 'center'
2 = 'right'

varname [symbol]

Sets the patcher's scripting name, which can be used to address the object by name in pattr, scripting messages to thispatcher, and the js object.

Messages

jit_gl_buffer

Binds the named jit.gl.buffer object to the inlet. Note that the incoming buffer must have the outname attribute set in order to reference it in the corresponding jit.gl.shader. The jit.gl.buffer object outlet is pre-formatted with this message prefix, so connecting them automatically binds the incoming buffer.

See Also

Name Description
GL3 Package Topics GL3 Package Topics
jit.gl.buffer A buffer of mesh data on the GPU
jit.gl.mesh Generate GL geometry from matrices
jit.gl.shader Manage a GL shader