0
$\begingroup$

I'm modeling a shirt and I want a nice even stripe around all the edges. I UV mapped the shirt and then made all the quads rectangular. I figured this would make it easy to draw a stripe with perfectly straight lines in Illustrator. However, back in Blender it's not mapping onto the collar the way I wanted. You can see the map on the left and the result on the right.

Any ideas how I can make that stripe follow the curve of that collar precisely?

enter image description here

EDIT: Guys, little update. Based on your suggestions I redid the UV map without rectangular quads, and then drew curvy lines in Illustrator. Back in Blender I adjusted some vertices in my UV map to try and get the edges lined up with the stripe. Results are pretty good, so thanks!

enter image description here

$\endgroup$

3 Answers 3

0
$\begingroup$

I would try laying out the UVs more organically, than just laying it out in quads. Since they are not displayed on the model that way in the end, I think it's giving it the appearance of being stretched around like that.

Could also be that since you've drawn in the corners on the UV map, that is it simply replicating those corners in your texture. So I would try to round out the lines.

These suggestions could be separate or work in tandem, but it's what I would try. Hope that helps. Good luck!

$\endgroup$
0
$\begingroup$

There are two reasons it doesn't follow the cloth well. The first is subdivision, which changes the UV map. You can change the way that subdivision creates UVs for subdivided verts by changing settings for UV smooth in the modifier (in "advanced" dropdown as of 2.90.)

The second reason is triangulation of quads that don't map perfectly from their 3D shape to the their 2D shape-- that is, quads with UV distortion. This is a big issue that means that making something in a 2D image editing application is never going to be perfect on anything that has any amount of UV distortion.

Solving the second issue means not using a 2D application to make your stripes. There are a number of ways to paint the stripes in Blender or in another 3D application like Substance Painter. You can paint them using Blender's texture paint mode, but I think you'll find that it's difficult to get things as perfect as you'd like doing that. Changing the stroke type to line or curve will probably help.

An alternative is to create a different mesh and use selected-to-active baking to bake the color from that different mesh. How would I make that mesh? I would probably make it out of strings of vertices that were shrinkwrapped to the shirt mesh, with a skin modifier. I would then apply these modifiers and join to a negatively displaced copy of the shirt. After that, I can give them a material and use selected-to-active baking, on diffuse color or emit mode, to bake the color of those stripes to a texture using the shirt's UV coordinates.

$\endgroup$
0
$\begingroup$

Think of laying out your UVs as if they were a sewing pattern for the shirt. Sewing patterns usually follow the shape of their finished form to some extent. In this case, there would be curves for the collar and armscye.

In this case, by laying everything out in quads you are stretching those UVs in a way that they don't exist on the mesh. Drawing corners in the texture simply adds those corners - they don't get modified when applied to the object. Imagine it like putting a square sticker on a circular object, the sticker doesn't lose its corners because it's on a circle. In the UV Editor use View> Display> Stretching to see how your UVs are stretching. In general, you want things to be as close to dark blue as possible.

Additionally, while creating textures in a 2D application is a traditional and valid method, doing so makes it quite difficult to match up seams. You could experiment with Blender's texture paint tools for use directly on the object or perhaps another program (Armor Paint is inexpensive/free). Otherwise, some imperfections, especially along seams, will be unavoidable.

$\endgroup$

You must log in to answer this question.

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