How to properly texture a bent tube?

I’m having trouble getting a texture to wrap properly around a bent tube. It’s not something I’ve done before, so I’m not sure how to go about doing it.

I’ve not tried unwrapping the tube, but I did assign the texture in the UV mapping window. I’m not sure how to set up my nodes to get it to wrap right, either.


The texture works ok for straight part, but not for the bend.

This is my nodes setup:


And this is the texture itself:


Any suggestions as how to properly wrap this texture?

Bent Tube No Stretch.blend (3.29 MB) Ok I am providing an example blend of what I did here and I am also going to provide the images as well of the results and the setup as well using two examples for the node setup. The face section I didn’t mess with lining up so it is a bit twisted at the top and bottom but if you align the geometry to match up the process is the same. Another note is I applied the scale ctrl+a apply scale before unwrapping as well.



Here is an additional image with your texture you are showing on it. Not sure which direction you wanted the pattern to go so I used it both directions. To adjust that just change the mapping node rotation z setting one is at 0 and the other is at 90 and for the scale on the mapping node as well, the higher the number the more the texture repeats or gets smaller and tighter. My example image I have scale set to 3.


Seam along the back and lids if you have any.
Select a rectangular quad and unwrap that.
Edit so that it fills the whole UV space.
Select all, reselect the manual unwrapped quad and use unwrap follow active quad.
Select the lids from appropriate views and upwrap by view.
Select the islands, position and scale as appropriate.

If you UV map with ‘follow active quads’, you’ll get a much cleaner UV map for something like this. You’ll need a square unwrap to start like you can get from UV->reset or UV->lightmap pack, then select all, make an appropriate face active, and U->follow active quads->confirm (defaults are good).

In order to get UV coords at bounds, I usually check ‘constrain to image bounds’ and do a few scales (second one usually requires manually entering cursor coords at UV bounds.) There’s probably a better way than what I do for that, though.

Thanks for the info, guys. I’ll have to try this later. I actually was asking for another artist, from a group on Discord for 3D artists, who was making a 3D model of a Star Wars Bacta Tank. He needed help wrapping that texture properly around the piping feeding into the tank. I’ve never tried mapping a texture around tubes, but it’s something that’s useful to know.

If you are using a deformer to bend the tube, unwrap before applying the deformer. Much easier.

I used a curve with a circle bevel object to make the tube, actually. Instead of using a curve or path straight away, what I do usually, for pipes and tubes, is make a mesh with the appropriate shape, along one of the edges (from beveling), lifting it out and parenting it off, then once it’s just a 2D shape, convert it to a curve, then use that to create a tube with a circle bevel object. I find it’s easier to work with meshes that way than deal with the controls on the Bezier curves or paths.

But I can try using a deform transform as you suggest. It does sound like an easier option…

If you use the curves to make tubes, in the side panel of the properties you have to activate the option “Use UV for mapping” for a correct mapping.