Using the Texture Coordinate node with From Instancer checked, I can assign particle's color based on the emitter's texture.

NOTE: I am aware of previous questions that address a generally similar issue, such as this one, for instance. However, none of the answers in these questions address my problem. They are all related to inheriting color from a texture. I want to inherit the surface color from Blender shaders, when using multiple materials on the emitter.

However, I can't seem to find a way to assign the particle color if I am only using simple shaders with no textures.

Let me show you an example of what I am trying to achieve. Let's say I have a plane that looks like this:

Plane with two materials

This plane uses two simple emission shaders, one for each half.

Material slots

If I create a hair particle system, this is what I get:

Hair particle system rendered as Path

By default, the particle system is using the Path option in the Render panel, and it seems to give me the option to use only one of the available material slots.

Particle render settings

What I want to do is to swith the Render As setting to Object and create a material for the particle that inherits the surface color of the face from which the particle was emitted.

So, if I have something that looks like:

Particle system rendered with Object

...I would like the cones on the red side to be red and the cones on the green side to be green.

I can of course achieve this result by creating two different particle systems that use different materials and then control where these particles appear using vertex groups. However, I would like to see if there is a way to achieve what I want using just one particle system and the material assigned to the particle object.

Any ideas?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.