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:
This plane uses two simple emission shaders, one for each half.
If I create a hair particle system, this is what I get:
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.
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:
...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?




