What is the best workflow or tool to maintain consistent texel density in Blender? All I can find online is basically either "just place a reference plane with texture and manually scale every single texture comparing to that plane by eyeballing" or "idk bro I just select all my objects and unwrap them all together". This can't be serious right? This is very very far from something I would consider productive. Which is something like: a global setting to set texel density affecting all unwrap, uv and object operations, like 1m for 1024x1024, and then all unwraps take it into consideration and if any face of any object ever goes beyond 1m it will automatically get tiling of its texture. If it's less than 1m texture will not shrink to fit either. Is there anything like this?
Bonus question: when you want consistent pixel density with lowpoly pixel art you probably want to stay on grid in terms of any geometry sizes as well right? I mean, if texels are relatively big like 32x32 for 1m, this means you want all geometry to resize in steps of 1/32 meter so that faces don't hace cropped texels. Is there any way to configure Blender such that it only moves/scales geometry in configured steps?
>>1001163You know what? I started typing out a reply, thinking it was impossible. But the more I typed and thought about it, the more it sounded possible. I'm not sure how to do it. And I'm not aware of anyone who has done it. But it sounds doable. It would most likely require cutting up every plane into individual squares.In any case, I know you can save yourself some work by creating a grid for you UV workspace, and then snapping points to the grid. First you do the thing with seams and unwrapping. And then you make one of your UV planes a perfect square by snapping it to the grid Then you select the square plane as your active element, select the rest of the connected faces, then U > "follow active quads" > even. And it should force everything you selected into an even grid. Once you got everything into grids, you can cut up the UVs manually. Scaling planes bigger or smaller depending on how many texels you want each plane to have.I know this isn't the speediest solution you were looking for. But maybe it's good enough?
>>1001163doing it in blender feels like it would be a pain so I'd use RizomUV
>>1001187This is a neat trick, thanks. Still it's a manual approach. I'm not entirely sure but it seems Blockbench does this automatically.
>>1001163I work with pixel textures constantly in blender, so it's actually very simple.multiple addons will do this functionality.UV Toolkit or ZenUV, which both have tools for matching texel density in UV hulls. A free option is the old textools addon, but it has a tendency to not work in later versions of Blender because of how old it is.I would also suggest turning on the pixel snap while working with UVs will help alot.
>>1001163>>1001191Automation should be possible with geometry nodes. But I'm not clever enough to figure it out.I got as far as separating each face, and scaling them based on their size. Getting them to scale proportionally upon reaching certain thresholds. The only problem is, I can't pack them into a UV space. I got them all lined up on the X axis. But don't know how to get them to fit within the bounds of X and Y in an organized fashion.Pic related shows the little test mesh I made. And then on the ground is all of the test mesh's faces scaled and aligned to the X Axis. This is as far as I can get. But it should be possible to go all the way.
I was working on something else, when I suddenly got an idea for this old thread, so giving it a bump.
>>1001222MagicUV has some texel density functionality as well, it's a free addon that used to come bundled with Blender, now I think it's some extension you can install with a few clicks.
>>1001187whats up with those uvs
>>1003837I don't know how to answer that question. But I basically added seams where "square" topology is. So when it's unwrapped, everything can be straightened into neat squares. Or rectangles rather.
>>1003678>>1001364Welp, I don't have it. My idea brought me closer. But I still don't have it in me.Here's what I'm trying to do:Step 1, assign every face a basic XY UV coordinate. This is the easy part. I got that.Step 2, modulo the UVs to give faces multiple XY coordinates. This is halfway there. As you can see in the image. When the face shrinks and grows, it divides into a greater density of UVs in the face. As it's supposed to. The problem is they're becoming too dense too quickly. The UVs divide exponentially. But they do so at intervals that aren't exponential. So they divide too fast.Step 3, adjust the UVs to bend quadrilaterally. You probably notice that some of the UVs in the screenshot are skewed That's because they're aligned to the triangles of the face. Which has a diagonal line cutting through. This diagonal offsets the interpolation between face points in an ugly way. In order to fix that, you have to do extra math to tell the everything inside of a face to bend to the quad, not to the triangle. This is too hard for me. I can't figure it out.Step 4, after all the other steps are done, accumulated each face's X and Y coordinates in such a way, that don't overlap in UV space.(Packing basically) This is another one I haven't figured it out yet.I still have a lot to learn.