Docs 3D and Particles
ExpressionPOP
Per-point attribute expressions for POPs: write lines like P = P + N * 0.1 and they compile to a GLSL compute shader, with local variables carried between lines. An alternative for the Math Combine POP.
⁂ 3D and Particles OP Create menu entry
Where it appears
Read off the registry hosts in the component, so this is where the tool puts itself in a default install; every one of these can be reordered or hidden from Hub.
- OP Create menu entryposition 0
What it is
ExpressionPOP lets you write point math the way you would say it. Each line is one expression, such as P = P + N * 0.1 or Color = vec4(P, 1), and any point attribute of the input can be read by its name. The lines compile into a GLSL compute shader that runs on the GPU, so the math stays fast however many points come in.
A line assigns either to an output attribute or to a local variable. Locals need a GLSL type, like vec3 offset = N * 0.2, and every later line can use them, so a long calculation can be broken into readable steps.
It is the alternative for the Math Combine POP: create a Math Combine POP with the alternatives shortcut held and ExpressionPOP is offered in its place, wired into the same spot. It is also a member of the FNS operator family: pick it from the FNS tab of the OP Create dialog and it lands as one node.
Inputs and outputs
- in1 (POP): the points to process.
- out_pop (POP): the points with the expressions applied.
- out_code (DAT): the generated shader code.
- out_info (DAT): the compile result.
Parameters
Custom
| Control | Type / default | What it does |
|---|---|---|
ExprExpr |
sequence0 | One block per expression line, run in order on every point. |
Attribute ExpressionExpr0expression |
textempty | One line such as P = P + N * 0.1. The left side is an output attribute (or a local when OutAttr/Local is on); input attributes are read by name on the right. |
OutAttr/LocalExpr0leftmode |
on / offoff | local needs type declaration like vec3 etc, but then are reusable in consequent blocks |
InfoInforead-only |
textempty | Read-only: the compile result of the generated shader, so an error shows here. |
Out AttrsOutattrsread-only |
textempty | Read-only: the attributes the shader writes, collected from the left side of every line. |
ViewView |
menuPOP | What the node's viewer shows: the output points, the generated GLSL code, or the compile info. |