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
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
- Download the attached project file
- Enable Rendered viewport shading. Notice that the particles are colored properly
- Select the Plane, switch to the Modifier Properties
- Enable the subdivision modifier for the viewport and render. The particles placement should transform correctly, but the color is now black.
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
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.