System Information
Operating system: Windows-10-10.0.19044-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 511.65
Blender Version
Broken: version: 3.3.1, branch: master, commit date: 2022-10-04 18:35, hash: rBb292cfe5a936
Worked: (newest version of Blender that worked as expected)
Short description of error
My idea is to use Color Attributes or Vertex Weights of the Hair Emitter to control hair splines duplicates amount along the emitter's surface in the new Blender 3.3.0+ Geometry Node Hair system. Hair splines are duplicated with Duplicate Elements node and Emitter's Color Attribute used to control hair duplicates amount is passed into a Hair Geometry Node tree as Named Attribute using Transfer Attribute node. When such system is rendered in Eevee with Motion Blur, it results in transparency glitches. Presumably Motion Blur vectors are not calculated properly in this case. Without Motion Blur this system works just fine.
Exact steps for others to reproduce the error
- With selected default Cube (I'll be calling it Emitter because it is kind of emits hair) press Shift+A > Curves > Empty Hair
- Go to Sculpt mode and add some hair splines using Add brush so they cover a part of Emitter's surface.
- Go to Object mode, do the following with the Emitter:
- Animate Emitter Z Rotation by typing in #frame/5. Using keyframes, drivers, animation modifiers, armature deformations affects the issue in the same way.
- In the Object Data Properties tab add Color Attribute, set its default color to R=1, G=0, B=0
- Add new Geometry Node to the Emitter
- Add Store Named Attribute node and connect it to the Emitter's node tree, set its data type to Color. Changing Domain doesn't affect the issue's appearance.
- Set Store Named Attribute's Name parameter to "color"
- Connect Store Named Attribute's Attribute Input to Group Input free output
- In the Emitter's Geometry Node modifier press the button to the left of the recently added input and select there previously added Color Attribute, so it becomes used as input
- Do the following in the Hair object's Geometry Node tree:
- Add Object Info node and select the Emitter as a target object, switch mode to Relative
- Add Transfer Attribute node, switch data type to Color. Changing Domain doesn't affect the issue's appearance.
- Add Named Attribute, set its data type to Color, set Name to "color", connect it to Transfer Attribute's Attribute input
- Add Separate Color node and connect its input to the Transfer Attribute's Attribute output
- Add Duplicate Elements node, set domain to Spline and connect it to the chain after Deform Curves on Surface node; connect its Amount input to Separate Color's Red output. Using Float to Integer node to fix the Field's data type doesn't affect the issue's appearance.
- You can optionally increase Red channel's value with Math > Multiply to get more hair duplicates.
- You can optionally add Set Curve Radius node to make hair more fat
- You can optionally randomize duplicated hair splines positions using Random Value interpolated to Spline domain with Interpolate Domain node and used for Offset in Set Position.
- In the Render Settings:
- Enable Motion Blur. Adjusting Background Separation and Steps doesn't affect the issue's appearance.
- Optionally enable Transparent in the Film tab.
- Optionally switch Strand to Strips in the Curves tab. The issue appears on both.
- Render the frame. Some hairs will be shown as transparent holes without motion blur.
The project file ready to render showing the issue:





