0
$\begingroup$

I need to add realistic materials to CAD-based models with unfriendly geometry. There are thousands of models, so re-meshing and UV-unwrapping is not an option.

I've gotten decent results with procedural textures, as shown below in image (1). But when I create an instance of the object and rotate the instance, the texture does not rotate with the geometry. See image (2) which has the texture blown up so it's easier to see the difference.

My shader nodes are shown in image (3). As you can see from the left-most nodes, I've tried different vector inputs for the textures, but I can't find a working combination.

Is what I'm trying to achieve possible? What am I doing wrong?

I am new to making procedural materials so please bear with me. Also, please don't mind the non-standard nodes. I am using AMD's Radeon Pro renderer. Note that the result is the same in Cycles renderer.

Desired result

Rotated instance causes undesired texture direction

Current shader

$\endgroup$
2
  • 1
    $\begingroup$ I'm sorry, would you mind telling us how you instanced those objects? I've tested different methods now and moving and rotating the instances did not change the orientation of the texture on the objects, they are following the instances' movements. $\endgroup$ Commented Mar 16 at 17:36
  • $\begingroup$ ...but of course I cannot tell if this custom shader at the end is messing something up since I have no idea how it works. $\endgroup$ Commented Mar 16 at 17:42

1 Answer 1

1
$\begingroup$

The most suspect path in what we can see of your shader tree is from Geometry > Position :

enter image description here

Texture Coordinate > Object returns the location of the shading-point as measured in Object Space, (measured along the object's own axes, as transformed along with the object, in Object Mode).

Geometry > Position returns the location of the shading-point in World Space, as measured along the fixed World axes, origin at World 0. Any texture which is a function of World XYZ will stick to the World, not move with the shaded object.

$\endgroup$
5
  • 1
    $\begingroup$ Well, the question states the OP tried different vector inputs to see if anything worked, but did not find any. Guess that's why there are weird nodes ;) But that's why I'm wondering how the objects are instanced - because when I use either Generated, UV or Object coordinates and I've tried instancing in GN as well as instancing child objects on vertices or create linked duplicates - the placement of the texture might be different with different coordinates, but in all cases the texture on the instances moved and rotated with the instances... $\endgroup$ Commented Mar 16 at 18:29
  • 1
    $\begingroup$ Hi, Gordon.. all those texture spaces will move with the object, or the surface of the object as UV mapped, so Geometry > Position is the only problem I can see that produces the described symptom. $\endgroup$
    – Robin Betts
    Commented Mar 16 at 18:41
  • $\begingroup$ I know they do, that's why I don't understand how the OP could have tried several variations but comes to the conclusion nothing would work... $\endgroup$ Commented Mar 16 at 19:58
  • $\begingroup$ I guess we'll have to wait for this answer not to help.. :) $\endgroup$
    – Robin Betts
    Commented Mar 16 at 20:53
  • 1
    $\begingroup$ @GordonBrinkmann Think back on your early days in 3D, cursing at the computer because you just did something and it didn't work, and you try the exact same thing again and it does work. And somehow, this stops happening as we gain experience. Hypothesis 1: Suzanne has decided we're buddies now so she's going to stop screwing with me. Hypothesis 2: It's hard to know what you did before you know what you're doing. $\endgroup$
    – Nathan
    Commented Mar 17 at 4:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .