Page MenuHome

Particle color from instancer not right in render when "Use Modifier Stack" box is checked (Cycles)
Closed, DuplicatePublic

Description

System Information
Operating system: Windows-7-6.1.7601-SP1 64 Bits
Graphics card: GeForce GT 710/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 445.75

Blender Version
Broken: version: 2.91.2, branch: master, commit date: 2021-01-19 16:15, hash: rB5be9ef417703
Worked: (newest version of Blender that worked as expected)

Short description of error
Particle color inherited from instancer is disabled if there is a subdivision surface modifier above the particle modifier, and the "Use Modifier Stack" box is checked in the particle settings under the Source drop down.
Unchecking the box, or moving the particle modifier to the top fixes the problem.

Exact steps for others to reproduce the error

  1. Download the attached project file
  2. Enable Rendered viewport shading. Notice that the particles are colored properly
  3. Select the Plane, switch to the Modifier Properties
  4. Enable the subdivision modifier for the viewport and render. The particles placement should transform correctly, but the color is now black.


Original instructions

Make plane, assign plane an image texture material, add subdivision surface modifier, add particle system, add a cube, assign cube to be the particles, give cube the same image in it's own material using the UV map from instancer. Particle cubes should now be the color from the spawning point of the instancer.
In the particle settings under Source check the "Use Modifier Stack" box. Put the subdivision surface modifier at the top of the stack. Particles will now turn gray in the render. In the Blend file I was working on, they showed the correct color, but the render color was gray. When I uncheck the "Use Modifier Stack" box, it renders correctly. In my test file, the render preview also shows gray particles. I'm not sure what the difference is. I'm including both Blend files.



Render preview window

Actual render

Thanks! this took awhile to figure out. I think this is an actual bug, because I can see no reason this should cause this error.

Event Timeline

This does seem to be incorrect. I will try to simplify the example to see where at what part this is going wrong, but this might be an issue in the particle system code that is considered to be at its end of life and planned to be replaced.

It seems that Use Modifier Stack results in the correct placement of the particles but the UV Map is wrong when From Instancer is enabled.

In the project below the texture emit-control is used in the hair particle system to control the density (see Texture Influence). The cube is used as render object for the particle system. It has a material which uses the UV map of the instancer and uses this to sample the color from the texture color.

This may be the same issues as reported in T57922.