EQ Pivot Painter Lab


No Houdini. No 3ds Max. ... Anyone can wave a vertex shader at a tree. The difficulty is knowing what is attached to what. Five detection modes cover the range of real assets:


by EQLabs


Price History +

Bake Pivot Painter foliage wind inside Unity , no DCC round-trip. Solves the branch hierarchy, pivots and swing arms from any mesh, then drives a four-level wind cascade in Built-In, URP and HDRP.

Compatibility

Unity Built-In URP HDRP

2022.3 LTS ✔ ✔ ✔

Unity 6.0 ✔ ✔ ✔

Unity 6.3 ✔ ✔ ✔

Unity 6.4 ✔ ✔ ✔

Unity 6.5 ✔ ✔ ✔


All twelve combinations are verified by a recorded compile gate, not assumed.

  • Package root: Assets/EQPivotPainterLab. Self-contained.
  • Authoring code is Editor-only and excluded from player builds. Only the runtime
    wind components ship in a build.
  • No dependency on any other package or EQLabs product.

Honest limitations

Listed up front because you will find them anyway, and because a tool that hides
its edges is not one you should trust with your pipeline.

  • HDRP lighting. The HDRP hero shader is lit by the scene's main directional
    light — direction, colour, intensity and its cascade shadow — plus
    spherical-harmonics environment from sky and light probes. Additional
    punctual and area lights do not reach it.
    Built-In and URP use their
    pipeline's full lighting path. If you need a richer rig on hero foliage in
    HDRP, the deformation is a plain HLSL include designed to be wrapped in a
    Shader Graph and shaded with HDRP's Lit master node.
  • HDRP motion vectors. The HDRP hero shader writes none, so wind motion is
    not represented to TAA. Whole-object movement is unaffected.
  • Vertex colours. Baked meshes carry a per-element material family in vertex
    colour alpha, so source vertex colours are not preserved.
  • Budget. A single asset is capped at 30,000 elements and a parent chain
    depth of 3, matching what the wind shader replays.

Documentation Page

EQLabs Website


Your mesh already knows how it should move. This finds out.

Point EQ Pivot Painter Lab at a tree, a plant or a prop and it works out the


things that make foliage move like foliage: which parts are branches and which


are leaves, which branch each part hangs from, where each part should pivot, and


how far it swings. It bakes that into data textures and a mesh with lookup UVs,


and ships hero foliage shaders that replay it on the GPU — trunk, big branches,


small branches, leaves — with every part inheriting its parents' motion before


adding its own.


All of it happens inside Unity. No Houdini. No 3ds Max. No export, no reimport,


no manual UV bookkeeping.


If you have used Pivot Painter in Unreal, this is that workflow, native to Unity,


without the DCC dependency.




It solves the hierarchy — that is the hard part

Anyone can wave a vertex shader at a tree. The difficulty is knowing what is


attached to what. Five detection modes cover the range of real assets:


  • skeleton and a support-first hierarchy.Skeleton First (RGS-PA) — for dense, single-mesh trees where nothing is
    conveniently separated. Builds a reduced connectivity graph, a spanning
  • Islands — for meshes already split into separate branch and leaf pieces.
  • Material Guided — when your materials already separate bark from foliage.
  • Submesh Sections — one submesh per logical part.
  • SmartCut — one welded mesh, split on sharp creases.

Then it computes a real pivot, a forward axis from a PCA eigensolver, and a


physical swing-arm extent in metres for every element, and assembles a parent


chain the shader can replay.



It refuses to bake data that would animate wrong

Most tools hand you whatever they produced and let you discover the problem in


your scene. This one has a hard pre-bake gate. It refuses outright on:


  • triangles owned by more than one element
  • triangle coverage below 98%
  • parent cycles or self-parenting
  • chains deeper than the shader can replay
  • more than 30,000 elements

— and it names the elements at fault instead of silently baking something subtly


broken. Bake Doctor gives you the same verdict as a visual pre-flight, with


offender counts and click-to-select navigation.


The same input bakes byte-identical output every time, guarded by golden


hashes in the test suite. Your version control will not see phantom diffs, and


two artists baking the same asset get the same bytes.



Everything you need around the bake

Authoring


Merge, split, detach and re-parent elements. Paint static and wind buckets by


hand — painted overrides survive re-detection. Pivot, axis and extent overrides.


Branch Group authoring for whole limbs at once. Pinned roots, parent locks, and


per-element freezing for moss, bark and fixed attachments. All of it undoable.


Review


An embedded workbench viewport with orbit, pan, zoom and click or drag selection,


plus debug views for hierarchy level, element index, parent index, pivot, axis,


extent, static mask and a problem finder. Scene view overlays for pivots, parent


links, bounds and root markers.


Look and performance


Hero Foliage Lit shaders for all three pipelines, SRP Batcher compatible, with


translucency, rim, normal and detail maps, and packed-mask support that reads


your real channel layout — Unity MaskMap, ORM, ORT or AO/Rough/Height — rather


than forcing one convention. Albedo, normal and packed maps are classified by


name and bound automatically, with a per-slot review panel when it guesses wrong.


Wind that behaves like wind


A three-octave fractal gust, leeward shelter, downwind lean, and per-instance


gust fronts so gusts travel across a forest instead of pulsing in unison. Wind


interactors let characters and objects push foliage aside — wood resisting,


leaves yielding. A runtime wind controller drives every foliage material in the


scene at once, with per-renderer phase and strength variation.


Distance


Octahedral impostor LODs captured in-editor and assembled into an LODGroup


alongside a graduated chain built from your source LODs.