4
$\begingroup$

I have a quill pen created in much the manner described in this exhange but I need to give it character, like a peacock feather. I gave mine a Texture based on a greyscale PNG, but as I move the feather around my scene the texture moves all over the feather -- in my viewing I'd say it's "projected" on to the feather. I've played with the options on the Texture pane of the Particle System, but they all "project" too.

Is there a technique to apply a texture onto a particle system?

Writing this makes me wonder if the changes I made to the Texture pane of the Particle System aren't having an effect because once you comb the particles they are baked.

When the feather is horizontal:

enter image description here

When the feather is vertical:

enter image description here

And here, then, is the node structure that got it to work this far. I'll be the first to admit node construction to me is trial and error with black magic; but I can see where Geometry at Position is probably not what I want -- I do know I tried a lot of constructions that felt like they'd make sense before settling for this! Totally open to advice here!

enter image description here

For completeness, and because I know some community members like to play along, here's a reduced version of the image I threw together to give character to the feathers:

enter image description here

$\endgroup$
  • 2
    $\begingroup$ Can you post an image of your material nodes? What coordinates are you using to map the image? $\endgroup$ – cegaton Feb 12 '17 at 16:22
  • 2
    $\begingroup$ Sounds like you might be using World-Space texture coordinates, instead of Local Object ones $\endgroup$ – Duarte Farrajota Ramos Feb 12 '17 at 18:54
  • $\begingroup$ Node construction added. Thanks for looking at this! $\endgroup$ – tobinjim Feb 13 '17 at 4:59
2
$\begingroup$

The Geometry node, which you're using, produces coordinates in world space, so the position, rotation and size of the object do affect the result. In a sense your texture is being projected, just as you suggest. Instead you should use the Texture Coordinate node.

The Generated socket gives coordinates from (0, 0, 0) to (1, 1, 1) for the bounding box of the object, regardless of the object's size.

The Object socket gives the coordinates in the object's local space.

I replicated your node setup, but used the Texture Coordinate node instead, and I skipped the Mapping node.

enter image description here

This image is with Object coordinates.

enter image description here

And this is with Generated coordinates.

enter image description here

The Suzannes in the images above are identical in every respect except being at different locations and rotated differently.

Consider taking a look at Bartek Skorupa's excellent explanation of texture coordinates, Manipulating texture coordinates like a boss, which goes into a lot more depth about how texture coordinates work.

$\endgroup$
  • 1
    $\begingroup$ Mr. Skorupa's video is a gold mine! $\endgroup$ – tobinjim Feb 13 '17 at 15:28
  • 1
    $\begingroup$ @tobinjim It sure is. Of all the Blender related stuff on Youtube, this is the one I value the most. $\endgroup$ – Duane Dibbley Feb 13 '17 at 15:38

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.