Status: Basic data type and rendering available in master when using WITH_NEW_OBJECT_TYPES=ON, but no modifiers or edit mode yet to make it actually useful.
Big picture: A node and modifier based hair object to replace the existing system. No new functionalities at first.
- Existing hair editing possibilities.
- New Hair datablock (similar to Mesh) with hair curves and curve keys.
- Hair objects would link to a mesh object to position hair on.
- Edit mode like old particle edit mode
- Modifiers (initial distribution, alembic cache read, child hairs, curls, physics, ...)
- Rendered directly as hair by Cycles and Eevee.
- Instancing objects along hair can be supported too, similar to instancing for verts/faces.
Time estimate: ?
- New hair object data type
- Add new datablock and object type
- Custom data storage, custom data masks
- Default hair radius and shaping parameters
- Solve problem with not enough FILTER_ID bits
- Mesh attachment (to deform hair along with mesh)
- Decide on algorithm
- Consider efficiency and GPU acceleration for deformation
- Basic integration
- UV, color, texture coordinate attributes
- Eevee and workbench
- Basic integration
- Radius attribute (rather than fixed shape parameters)
- Attribute support
- (Vertex) Color
- Generated texture coordinates
- Batch cache generation
- Python API
- Positions and radius
- Viewport drawing and selection
- Selection engine integration
- Display options (display random % of hair, ?)
- Dependency graph copy-on-write integration
- Refactor mesh runtime storage to be reusable by other objects types
- Automatic instancing for objects without modifiers, like meshes
- Sharing custom data arrays between original and evaluated when possible
When it actually becomes useful and can replace particle hair.
- Hair modifiers
- Modifier stack
- Distribution modifier
- Shaping (curls, ..) modifier
- Physics simulation modifier
- Child hair modifier
- Deform along with mesh modifier
- Alembic cache reading modifier
- Hair edit mode (adapt particle edit mode)
- Conversion of old particle hair to new hair
- Consider compatibility with USD/Hydra and Unreal's Alembic groom specification.