Cube Projection always picks random projection size

I think this is against the point of Cube Projection which basically supplements generated object mapping.

image

The default now for projection size is to fit everything into the UV space which is not what you use Cube Projection for at all…

I always need to go into it’s settings and reset it to 1.000 so that I know exactly how large the projection is compared to the world and can use that later in Unreal Engine to map textures effortlessly.

Could we at least have a checkbox that can be unchecked saying something like “Stretch to UV bounds” which is actually what it does every single freaking time anyway now. I think in the past it was at least that if you change the size to let’s say 0.3 then the next time you use it it uses that instead.

That would make me so happy!:slight_smile:

Need some additional voices here. I know this is a niche issue but for me it’s a big one.

Slightly off topic but can you explain to me how UV coordinates correspond in any way to scale?

like… if I took the same object, and set its scale to 2, then the texture now takes up more world space.

Are we assuming the scale of the object is always 1 and the texture has an exact resolution, or what is your assumption here based on?

They don’t really correspond to scale but to size, at least when it comes to Cube projection.

Also I am assuming the scale is mostly ~1 as in real-life scenes it rarely makes sense to have anything scaled more than let’s say 1.5 or less than 0.666. Of course if you scale the object then the geometry that the texture is mapped onto takes more space. You would have the same behavior with Object mapping which is a generated kind of mapping. Way around this is to use Position as mapping or counter the object scale through some Node Magic so that as you scale the object it counter-scales the mapping too.

If you have a 2x2m box and you use Cube projection with 1.000 as “Cube size” it fills entire UV space and if you have a 1x1m box it fills 25% in the middle. Then if you have 4x4m it fills one m over the UV space border. This way you know that each object’s mapping density is 2x2m per 1 repetition. So you can then alter mapping on a per material (per texture) basis depending on what space it covers.

Personally I would love to have Cube Projection as a modifier but dreams can’t all come true at once. Maybe @ideasman42 or @sergey ?

If I’m understanding you correctly, you’re saying that by default, the UV engine should assume that the texture represents 1 square meter of surface area?

By the way, I would like to see blender have a “real space texture” feature. That is, to ignore the UV and spread a texture with (optionally) a mapping offset over a given square surface area. Right now you need to use the UV of a reference object, or someone told me that workaround anyway. Neither of these solutions would likely apply well to export, not without baking.

Maybe if there were a way to define a default texture scale in the UV editor, the projection tools would scale their automatic vertex list according to the relative size.

Yes for Cube (Sphere, Cylinder) Projection, but not really for any other kind of projections like Smart UV Project or Unwrap, these serve their own kind of different purpose. Actually it doesn’t have to be 1 square meter as long as it’s consistently the same number. Could be 4 square meters.

Although it is annoying that Smart UV Project stretches to bounds but I think Blender remembers if you untick it once. It doesn’t however remember that I always want “Cube size” at 1.000…

1 Like