1
$\begingroup$

I'll try to clarify. I have a guitar body mesh.

I want the front & back to have a lighter wood texture.
I want the sides to have the same texture, but stained darker.

Here's the tricky part: the darkened wood texture should extend a short distance 'beyond' the sides, and into the front and back of the guitar. Here's a pic of what I mean:

enter image description here

Is there a node setup that lets me do this without texture painting?
I tried pointiness but it doesn't work, maybe because my mesh is a mess, or the edges are too rounded.

Here's where I'm at so far - I can target the sides by using a geometry node. Sort of like saying "apply the texture to faces parallel to the local Z axis". But you can see the issue - the green color doesn't bleed into the front and back, it strictly covers the side. The color ramp doesn't help. Is there some way to extend the green area a few inches onto the front+back faces?

enter image description here

$\endgroup$
1
$\begingroup$

I would use the normal output of the texture coordinate node and remap the values with a rgb curves node.

For this you need to have your model's normals pointing in a global direction. Say you modeled the body along the XY plane, so the normals of the part where the cord is (I don't know the technical term) points towards the Z direction.

So we will create a gradient from blackish to orange-ish along the mesh, depending on the value of the normal. A Z component of Z means black values, and a Z component of 1 (pointing UP) is more red.

We will add a noise texture to make it a little bit more believable, but I think you know how to do this already.

The node network :

enter image description here

Zoom on the "RGB curves" node :

enter image description here

Result :

enter image description here

$\endgroup$
1
  • $\begingroup$ hey Gorgious, thanks for the idea. I messed around with your node setup, using separate XYZ... unfortunately, unless I misunderstand something, this seems to have the same problem as my own setup. Your setup definitely targets the sides and the bevelled edges. But I also need the texture to 'bleed' some distance along the XY plane (the front face and back face of the guitar). In your example, I would want the dark green to bleed several more inches/cm into the red area. $\endgroup$ – CreeDorofl May 11 '20 at 15:38
1
$\begingroup$

If your object is high poly enough, you could try with Vertex Paint:

  • Switch to Vertex Paint mode. It will automatically create a vertex paint group. Give it a name.

enter image description here

  • Paint your object in black and white.

enter image description here

  • Create an Input > Attribute node, in the Name field, type the vertex group you've created, plug its Color output into the Factor of a Mix Shader.

enter image description here

$\endgroup$
1
  • $\begingroup$ cheers for this moonboots. I guess I have been avoiding vertex paint for too long, it's time I learned, and in the end it was pretty easy and looks ok. i.imgur.com/3YVyeR1.png I am still holding out in the hopes of some node setup that basically says "target the faces that aren't on the XY plane, and have the texture bleed into adjacent faces by [some specified distance]." $\endgroup$ – CreeDorofl May 11 '20 at 15:45

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.