2
$\begingroup$

EDIT: Jachym Michal provided an answer that gets very close but doesn't quite solve the issue. The following screen shot shows that along the top (and bottom) of the large horizontal pipe the texture appears to align differently from where it does elsewhere.

enter image description here


I'm trying to build a generic radiator model that I can resize by adding or removing segments with the Array modifier. I created a section I want to repeat (I'm calling it a pipe), and two end pieces for the start and end of the radiator (I'm calling them caps).

enter image description here

After some faffing around with the position of the cap origins so that it would all line up properly I think the end result works fairly well.

enter image description here

However, I started running into issues when trying to add a texture.

I projected the front view of the various sections and made the following UV map:

enter image description here

Unfortunately, when I add a texture image I get this:

enter image description here

There is a UV adjust slider in the array modifier, and I got this to sort of work by messing around with it until I got something that looked sort of OK with the test image.

enter image description here

However, it needs to be exact, because if I was using an actual texture instead of a test image it would be quite apparent if the edges didn't quite line up.

Furthermore, the right hand cap piece doesn't seem to get its texture position updated at all and it's very obvious that it's still using the texture from the left of the image.

enter image description here

So I have 2 closely-related questions:

  • Can I get the U position to be exist based on the width of the pipe?
  • Can I get the right hand end-cap to set its UV position such that it will match up with the last radiator pipe's position?
$\endgroup$

1 Answer 1

4
$\begingroup$

To match it automatically, you can use Object coordinates.

  1. Change texture Mapping > Box
  2. Use Texture coordinates > Object
  3. In the Object field target your array

enter image description here

You can change your array and caps, but the texture will always match.

enter image description here

$\endgroup$
2
  • 1
    $\begingroup$ This gets so close to what I need that I'm probably going to accept unless something better comes along. There's just a couple of places on the actual mesh where the texture seems to get mapped differently. It's probably not going to be all that noticeable with a subtle texture over it, but I'd like to address that issue too if possible. (see question edits) $\endgroup$
    – GordonM
    Feb 20, 2021 at 17:00
  • 1
    $\begingroup$ Hey :). Yes, Box mapping is a fast and dirty solution. I actually made an answer using UV maps as well, but posted this one first. The problem is, that I can't make it automatically match... $\endgroup$ Feb 20, 2021 at 17:13

You must log in to answer this question.

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