Vixen
dd8b0a81
csharp
public abstract class VfxCustomNode

The block every custom-attribute node shares: a name and a width.

Read the guide page for this →

Remarks

The name is a [Setting], not a port, and that is the gap this closes. A port is lanes of float and a custom attribute is a name — it names a binding in the emitted shader and a host binds by it — so until the node graph could describe a string-valued field, SetCustom, RandomCustom and CustomOverLife were reachable only from a graph built in code.

⚠ An attribute exists because something writes it. There is no declaration node and no list to keep in step: the first block to name one declares it, and its slot is where it landed. That is the rule the built-in attributes already follow — see VfxCompiledGraph, whose storage is derived from what the operations touch rather than from a declaration an author has to remember.

⚠ Lanes is one, three or four. A custom attribute is a float, a float3 or a float4; two is refused rather than rounded, because VfxAttributes.Lanes would silently make it one.

Fields and properties (2)

  • public string Attribute

    What the attribute is called. An identifier, because the shader binds by it.

  • public Int Lanes

    How wide it is: one, three or four floats.

Used by (3)

  • CustomOverLifeNodeVixen.Editor.VfxGraph
  • RandomCustomNodeVixen.Editor.VfxGraph
  • SetCustomNodeVixen.Editor.VfxGraph