EQ Pivot Painter Lab OFFICIAL SALE

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.