TexTools for Blender

yes, you’re absolutely right, with official build it work without errors, Thank you.

Well, Surface Follow and Mira tools already solved issue with transforming UV to XYZ, so they also could be interesting to you)

Surface Follow (mesh deform):

Mira tool (Object placement):

About donation - you are welcome^^

Also some feedback about UV:
While UV editor in fullscreen (shift+space) - undo operation breakes Aligning/Rotating functions.
Reentering fullscreen helps until next undo.

Nice tool - but… it crashes on the Sort Horizontal or Vertical option

I have similar result
I use official stable build 2.79
-Select several islands

  • press several time Rotate +90/-90, Allight , Sort V/H as many times as you like, and in any sequence
  • press Ctrl+Z
    it will take you back to the very beginning, but not to one action
  • UV editor in full screen mode
  • Select island
  • Press any botom Rotate +90/-90, Allight , Sort V/H
  • Press Ctrl+Z one times (it’s enough)
  • press one times any bottom (Rotate or Allight or Sort)
    it will give an error

sorry for my English


I can’t wait to see this script grow!, hopefully you will be able to do the same things you did for max, what an asset to the Blender users you will be!

hey, i got the chance to play with this addon and it’s great and very well-made. a feature i’d like to request is for the align tool to align all neighboring edgeloops on the axis.

sometimes you get an unwrapping result where the island is a bit tilted, and instead of selecting every edgeloop and aligning it to an axis, i could hit a button and it aligns all neighboring edgeloops

I’m really happy to see TexTools in Blender. I started using it at work and I ran into an issue while renaming meshes for baking.

I have three meshes named “wrench_h” “wrench_l” and “wrench_c”, but TexTools is taking the previous letters to determine the high, low and cage meshes. I attached a picture to illustrate the point.


I would also like to suggest adding an option for 32bit float normal bakes. A must have imho.

Thank you very much for such a great tool.

@ 1D_Inc
I didn’t have any UNDO instructions yet in my code, they are now implemented and should fix those bugs.

I started a spreadsheet with some quality checks for this matter. I also need to do some more testing at some point on odd selection stuff in Blender (e.g. active object not in active selection because its hidden in a layer) and other things that might break current commands.

@dank0 & @so3Datel
Thanks for the bug reports

Thanks, quite excited actually myself. The stuff that is actually possible with python in Blender.

You mean like when the UV edge selection mode is active activate an edge loop before executing the alignment? Not sure if I understand, maybe post a mockup or screenshot to illustrate what you have in mind.

Thanks for the bug report: your attachment seems to be invalid can you upload again? I will have a look at your example. See if I can reproduce it.
Regarding the 32bit float normal bakes: Yes I agree a must. It was on my todo list but I forgot about it - thanks for reminding.

Update: Version 0.7.0

GIT: https://bitbucket.org/renderhjs/textools-blender

Here is a video demo from earlier today on twitter


Added Undo registers for most operators

Anti Aliasing
Select from None, 2x, 4x. When you enable Anti Aliasing the bake render is rendered at a scaled resulution and afterwards down scaled. Anti Aliasing works on any baking mode.

I changed this behavior slightly: With multiple objects selected enable this when you want all items to be baked into a single texture as opposed to multiple. It uses the name or ID from the first item in the bake set list. This is great for multi part objects or exploded bake setups.

Lock Selection
Lock or unlock the current bake selection. When locked scene selection changes won’t affect the baking list. This is great for tweaking meshes, cages or other settings while baking.

UI improvements
Mostly ghosting elements that are not available or ignored in the ‘Single’ mode. Also displays now the number of texture bakes on the bake button. This should make it easier for new users.

A small favor:
I want to look next into a bake explode script that I already started.
Perhaps someone is happy to donate a sample blend project with some mechanical objects and high / low objects? I have my own stuff but I would appreciate some more example files from other people to test this explode script.
The idea is to create keyframes on the timeline for each high & low object and move them all apart for a clean bake. Just PM or send a twitter message at me @renderhjs thanks!

1 Like

I updated my post with the attachment, thanks for the quick response.

I’ll check around tonight if I have some meshes to share with you.

1 Like

now I understand why that happened. If you change AA value, it change padding size on renderred texture :slight_smile:

I can not stop myself from telling you thanks, for this addon.
sorry for my English

Thanks for good work

I found a couple more issues this time with selection.

First is Select Island Bounds, it works fine 99% of the time I tried it, but with a simple cube it fails me every time. Also the tooltip says “Select Overlapping Islands”?


The second issue is with the Select Overlap option. It acts weirdly as it seems to select only when there is a strong overlap, but when the overlap is near the boundary it doesn’t seem to work at all. Hard to explain really.


I recreated the bug and fixed it
I’ll post an update tomorrow with the fix. Regarding the select outer edges and overlap - they are still early. I am aware that they are not yet ideal. I plan on improving them over time. The select overlap for example uses bounding boxes currently instead of actual triangle shapes.

Regarding Padding scale: Yes that was a bug, need to scale the padding as well so it ends up correct afterwards. Will be in the update tomorrow.

renderhjs, what do you think about “Hit only Matching Material ID” from 3ds max?
there is no need explode your model (if it’s enabled and you have materials setup).

Also Allegorithmic uses this bake by mesh name feature that allows users to bake unexploded models perfectly without worries of normal maps bleeding out another mesh parts. But sometimes exploding model is necessary like cases where you want to keep only one material in mesh, but want to texture parts that are somewhat hidden behind other mesh parts (currently you cant hide geometry inside substance painter unless they have material added)

Awesome! thank you very much.

There was some talk about cavity/curvature maps on Twitter. The statement was that you need compositing nodes or PIL, but you can also do it straight with Numpy. Here’s some of my old code that deals with images and normals: https://github.com/amb/blender-texture-tools/blob/master/seamless.py

It’s pretty quick and less messy IMO. Hit me up if you need some custom stuff. I might have time to take a crack at it.

I managed to pretty much fix the select islands bounds. it now works in Edit mode or Object mode. Technical node: It uses ‘seams_from_islands’ to get the correct edges but restores the previous edge seams on the model.


For the Select Overlap i fixed at least the bounding box overlap detection, I had some quick and dirty code prior to that.


I uploaded a small update with all previous mentioned fixes

Download Version 0.7.1
Blender TexTools 0.7.1.zip
GIT source & Documentation

@fiendish55 & so3Datel: Hmm some good points, I guess I could hide temporarily elements in blender or isolate them when rendering. As for the "Hit only Matching Material ID" in max, that's still a pain to setup - and conflicting when you use the ID's for other purposes.

I was more thinking of exporting sometimes to XNormal or other tools and have a convenient way of seeing all sub objects nicely exploded. This could be useful for 3D texture painting in tools like Photoshop. As I already have the pair generation exploding objects would be straight forward. I’ll brain store a bit more about it.

Thanks for the snippets and follow up. I need some time to look at all options. Currently I don’t know if there is anything else that I might find useful to do via the composite node editor for post process effects on the textures that I can not do in the cycle nodes. I might get back to you once I have an overview of what I want / there is.

I hope this gif describes what i mean. If you could automate this process in one button that would be great. I think it’s easy to do, select each adjacent edgeloop and set the x scale or y scale to 0. I just don’t have the scripting know-how to do it myself