Skip to content

Releases: SavMartin/TexTools-Blender

Choose a tag to compare

General refactor seeking performance.

  • Massive performance gains in Rectify, Straight, Edge Peel, Select Bounds, Create UV Mesh, Randomize, Align World, Align Sort, Select Similar, Texel Density Get and Texel Density Set, among others (from x2 to 10000x). Basically it should be possible now to use any utility of this addon with high-poly meshes.
  • Relax: added new utility for UV vertices smoothing.
  • Unwrap: new custom operator to unwrap only selected UVs, with the capacity to constrain the operation to the U or V axis (BenjaminSauder)
  • Straighten: any chained sequence of edges is supported, not only edge loops. Added support for multi-object UV editing.
  • Align: Fix weird behaviour with partial selections while in Face UV Selection Mode; made it to work on the selected faces only.
  • Rectify: recovered align verts, edges. Updated, simplified code. Tuned detection of lines in Rectify, triangular faces and ngons are discarded now.
  • Create UV Mesh: it now works on the whole object or the selected UVs. Most of the original mesh data is now preserved. The created UV Mesh will inherit the origin location from the original mesh, instead of being placed in the global origin.
  • Randomize: Within Image Bounds now takes into account strenght values and rotation. Adjusted defaults. Simplified code.
  • Align World: process only coincident UV loops per vert for a more accurate and predictable result; removed simple and recursal modes. Highly optimized "Per Face".
  • Edge Peel: implemented multi-object UV editing support. Improved unwrapping of pipe caps. The Rectify fase is now -hopefully- error proof. Better organized outcome. Introduced verification to avoid crash when faces are selected. Do not perform average islands scale and packing if the main functions wasn't executed in any of the selected objects. Some fixes when improper selection input and if no internal rectification of selected faces could be performed.
  • Iron Faces: cancel the script before the unwrap fails (no seams marked in entirely selected manifold meshes)
  • Crop and Fill: fix for working with the Active Object while in Edit Mode even if no object is selected.
  • Texel Density Get/Texel Density Set: restructured code for working with multiple objects selected in all cases. Functionality with UV Sync On fixed.

UV Layout

  • Added support to work within the active UDIM Tile in UV Layout utilities that may take advantage of it: Align (to Canvas), Centralize, Randomize (Within Image Bounds or Pre-Centered), Texel Density Set (Combined mode), Edge Peel, Iron Faces, Crop - Fill.
  • Added Active UDIM Tile detection mode in the TexTools panel: from the Linked (background) Image in the UV Editor, or from the Active Object (bare in mind the Active tag when working in multi-object editing as the object where the last element selection was performed will be the Active)
  • Added Active UDIM Tile select list under the TexTools panel.
    Texel Density in Image Get Mode.
  • The resolution of the image bound to the active UDIM Tile is taken into consideration when computing texel densities in both get and set modes. This follows the workflow pointed before, that is, the user must manage the active UDIM Tile as needed in the first TexTools panel for the tools to work based on it, which would be sufficient in most common scenarios.
  • For some utilities, switching the active status to the UDIM Tile closest to each UV island on the selection may be nice to have, but would be overkill for the script to work. Anyway, it may be considered for the future.


  • 3.0 CyclesX and Principled BSDF material support, while maintaining backward compatibility with pre 3.0 Blender releases.
  • Thickness material for baking no longer missing.
  • Baking Samples fix: it have to be an integer, not a float. flakusha pointed it out.
  • AO pass is not available in Blender since 3.0 and, consequently, have to be ignored in the Combined baking mode.


  • UV Smoothing: renamed to "Smooth by UV Islands" and moved to the also renamed "Mesh UV Tools" panel, in order to avoid it to be confused with the new Relax tool or vice versa. Added option to ignore islands uv borders to itself, improving shading and normal map baking (BenjaminSauder)


  • We rely on a custom, more stable version of the 3dn_bip library v1.0.8, for loading the addon icons faster.
  • TexTools Popup restored: was deleted by error during the 3dn_bip library usage implementation, disrupting a number of TexTools operators. Restored by TitusLVR.
  • VC limit reached warning: some bake modes use internally a custom Vertex Color layer which is removed once the bake finishes. If the maximum number of VC layers are in use in an object to be baked from (that is, 8), warn about it and gray out the Bake button to avoid an exception.
  • Displayed UV controls under the TexTools panel: better detection of the Active Object while within a multi-selection of objects.
  • Update_edit_mesh arguments error fix.
  • Fixed variable name collision with built-in "set". Use enumerate() where it makes sense (consolegrl)
  • Nicer arrows for the UV Layout panel (BenjaminSauder)
  • Adjusted, reorganized menus entries.
  • Use copys instead of tuples to store changeable states.
  • Remove unnecessary selection mode changes.
  • Avoided as possible selection store and restore, in general.
  • Removed some annoying console prints, some old commented-out code.
  • Make sure materials without node tree don't make the addon UI refresh fail in the search of UDIMs, writing an error in the Console.
Choose a tag to compare

More reliable routines.

  • Restructured code. Implemented a Try -> Finally structure to prevent data loss in case of error during the bake process.
  • Avoided Circular Dependency when the image-to-bake-on is present in the blend file and used in the node tree of the materials that take part in the bake process. Two methods were used to take into account whether the image-to-bake-onto exists externally or only temporally inside the blend file.
  • Added option in preferences: "Device for baking" (CPU, GPU or Default)
  • Added option in preferences: global "Bake Color Space".
  • Selection mode is now restored.
  • Certain bake modes can now be performed without a material in the baked object.
  • Baking can be now performed on the active object while in edit mode whether it is actually selected or not.
  • Support for certain bake modes that don't need a Principled BSDF node for baking, like Diffuse of Roughness, to bake with any material Surface type.
  • Glossiness is working correctly now in all scenarios.
  • No more sloppy changes on baking-mode and UV editor image background when selecting an already baked texture from the list.
  • Removed use of "temp_sets", duplicate baked objects materials to avoid restorations after relinks, discards.
  • Optimization when baking custom modes (modes using a "material_loaded")
  • Faster and cleaner poll messages.
  • Remove and unlink material_empty and material_loaded when the bake of all sets is finished for no more hanging materials in the blend file after a bake. As a downside, they have to be created/imported every single time in certain scenarios (custom bake modes like material_id, cavity, etc, and lowpoly meshes in high-to-low bakes that wouldn't have a material). It's fast, though.
  • Bake mode "Element ID" no longer delivers repeated colors when baking multiple objects.
  • Added samples property to "Combined".

Last planned baking modes.

  • Bake modes added: Thickness, Combined, Shadow, Environment and UV.
    Thickness baking was originally coded and illustrated by renderhjs, credits to him.
    The other added baking modes were already included with Blender and were lacking in the addon until today.

Extended controls in baking.

  • SSS Color, Sheen, Sheen Tint, Transmission and Alpha affect Diffuse, and it would continue being like this for the sake of energy preservation. Base Color and SSS color bakes are no longer affected by this situations.
  • Alpha value has been affecting all non-custom, PBR bake modes, except AO. Even itself. Now, there is an option in the addon Preferences to ignore the Alpha value when baking (except for Diffuse), and it's no longer affecting itself.
  • Emission bake was affected by the Emission Strength, while both could render in values beyond 1. There is a new option in the addon Preferences, "Ignore Emission Strength when baking Emission", set to True by default. To take advantage of the previous situation, unset that preference and save the baked image in a file format without dinamic range clamping like EXR.
  • The Transmission bake is affected by the Base Color, the Metallic and others. If you want to avoid this, uncheck the new "Ignore other channels when baking Transmission" option in the preferences (Alpha would still affect it if "Ignore Alpha when baking other modes" is unchecked); this has the downside of requiring all materials in the bake to have a Principled BSDF Surface type.


  • Added enum to select the Texture Dimensions to consider when getting or setting the Texel Density value: from an image present in a material for each object (default), a specified baking resolution (TexTools tab > Size), or from a list of common sizes.
  • Texel Density was working on the mesh selected faces, but it should be working by design in the UV selected faces. From now, when getting -> setting the texel density over a single selected UV face/island, it would work as expected: its size will stay unchanged in any context.
  • For anyone used to the previous behaviour of the tool: it works as before if UV Sync Selection is enabled.
  • Texel Density Get and Set in Object Mode will continue to behave as before, operating over all faces of every selected object.
  • The total area of every face is now calculated for better accuracy, and not only a random triangle per face, that could be heavily distorted or have zero area and thus make the script fail.

Vertex Colors mode.

  • Added mode in Color ID to directly assign ID Colors as Vertex Colors to objects or selected faces.
  • Existing Vertex Colors layers will be respected from now, as a layer named "TexTools" would be created when using Color ID utilities "Assign Vertex Colors" or "Convert to Vertex Colors", and it would be the one deleted when using Color ID Clean.
  • Smarter automatic changing of context (view and active panels) when switching modes within Color ID.
  • Don't automatically delete colored materials when converting to Vertex Colors.
  • Fix label in Color Select.


  • Fix error in Edge Peel if UV Sync is enabled.
Choose a tag to compare


  • Select zero area UV faces: aligned or coincidental UV edges or vertices that are not aligned or coincidental in the 3D mesh will be detected and selected if they make up a null UV face
  • Centralize: moves the islands as close as possible to the 0-1 space without introducing changes in the texture projection: i.e., moves the islands an integer magnitude. Having the UVs next to the 0-1 UV space domain is important for precision in the operations, layout organization and to save memory while working and in the saved assets


  • Rectify: Zero length edges on the UVs, if were part of the active face, were making the script crash
  • Fill tool: Re-establish previous functionality, allowing distortion of the UVs again
  • Mirror: Removed unnecessary "use_proportional_edit" argument; operate on faces instead of islands
  • Select Flipped: operate on faces instead of islands; this way it should be more useful in combination with Mirror for fixing flipped UVs
  • Randomize: Some operations won't happen from now on in case of empty selection
  • Better saving and restoration of the selection, especially when working in Vertex or Edge selection mode in 3D view, or if combining multiple selection modes.
  • Texel density set and get: the buttons were greyed out if entering edit mode without a selection (using the "active object fallback")


  • Added ability to choose the output color space for the texture per bake: sRGB or Linear (Non-Color)
  • New background color property in the preferences as a default, and in the Baking panel. Any solid, transparent or semi-transparent background is supported
  • Added 14 new bake modes for completion of the Principled BSDF possible channels: sss color, sss strength, transmission, transmission roughness, clearcoat, clearcoat roughness, sheen, sheen tint, anisotropic, anisotropic rotation, specular, specular tint, alpha and emission strength


  • Remove 256 max color limitation
  • Avoid possible problems if Vertex Colors was selected as baking target (possible since Blender 2.92)
  • For centain modes, baking is no further allowed (bake button disabled) if a required material or a Principled BSDF node is not present in some of the selected objects; a custom message is now displayed below the bake button informing on the matter
  • Remove data instead of objects for temporary bake objects: no more deletion info messages showing in console
  • Remove unnecessary use of user_clear() before data removal using do_unlink as an argument for remove(): no more showing of the alert "ID user decrement error" in console
  • There was a problem with the baking image not being reused if its source was a file. It is fixed now, so that re-baked textures nodes don't get unset and de-linked in the materials, and the texture itself can be saved while in the UV / Image Editor without specifying its path again


  • Fixed amiss use of is in several modules, causing SyntaxWarnings in the console
  • No more loading of unused modules and classes in several operators and in
  • Adjusted default padding: Padding affects some UV Layout operators besides the baking processes. In the Layout operators, a padding of 8 (previously, the default for textures => 1024) is usually too high, and in the bakes, it isn't needed to be as high either. It can be adjusted manually anyway in the TexTools panel, as always
  • bversion by Lamia: a more generic approach that will work even if the versioning policy changes prior to the 3.0.0 release
Choose a tag to compare


  • Align To corners added.
  • Align modes: To Selection (current, default), To Canvas, To Cursor.
  • Align: extended the align type compatibility in Edges and Vertices UV selection modes.
  • Added Mirror operators.
  • Randomize Rotation added.
  • Rectify multiple islands per mesh support (originally implemented by renderhjs on his textools-blender bitbucket page)
  • Select Bounds was considering seam edges as bounds.
  • Select Bounds was extending the selection to the islands in 2.83 but not in 2.91 prior to determine the outline. Now it behaves the same in both versions, only working on the strict selection.
  • Multi object UV editing support for Iron Faces (without automatic packing).
  • Iron Faces unwrap margin shouldn't be hardcoded, use the TexTools global padding variable specified in the "TexTools" tab in the addon category panel.
  • Align Edge, Align World, rotate 90 and Straighten were broken by new changes on Blender master in the behaviour of the rotate operator in uv space.
  • Renamed Rotation operators to better comply with math and physics conventions.


  • There were unnecessary loops affecting deletion of temporary baking nodes and objects, only noticeable when baking several sets of objects.


  • Added "Hide panels help buttons" in the addon preferences.
  • Code cleaning and simplification.
Choose a tag to compare
  • Correct results on Normal, Curvature an Ambient Occlusion maps; original shaders textures details will be preserved from now on.
  • Weird rendering problems with Progressive Refine activated that happens since Blender 2.90 are now avoided by deactivated it temporarely while baking. AO, Curvature, and any Normal bake results should no longer differ between 2.83 and 2.90+.
  • Speed-up for all bake modes, thanks to no more store/restore of materials. This is critical for baking high-poly objects, performance gains should be more noticeable as the polycount goes higher.
  • New bake modes: Base Color, Metallic and Emission.
  • Selected to Active changed in 2.90, Cage extrusion and Max Ray Distance properties were splitted, and this is now reflected internally and in the addon UI. Both can coexist, contrary to logic, and it is worth experimenting tuning them both on the same bake.
  • No more pile of unnecessary messages in console when selecting baked maps in the bake panel - sets section of the addon.
  • Curvature bake and Sun Position: bad relationship between addons fixed.
  • Smoothness renamed to Glossiness, a more common term in the PBR shading world.
  • ao_legacy hasn't been working since 2.80 because it was intended to be used along the Blender Internal renderer, it has been delivering the same results than the base AO all this time. Therefore, it has been removed from the list of baking modes.

UPDATE 2020/12/24:

  • There were problems with empty selections in multi-object UV editing. Now, Sort and other operators which make use of the utilities_uv.getSelectionBBox() and utilities_uv.alignMinimalBounds() functions should be more reliable.
  • Use of the time.monotonic() function in the bake module.
Choose a tag to compare
  • New Material ID baking: assign a unique, distinct color to every material, instead of using the material slot number as color index. Limitations: Support for up to 256 materials; due to the list being persistent only during the current session, between sessions (close and open de file) the result would be different if the materials with users in the scene change (creations, deletions, renames).
  • Vertex Colors layers present in the objects were overwritten in certain bake modes (Material ID, Element ID, Cavity, Dust, Paint Base, Selection), with the side effect of making some of these modes don't work themselves, generating straight black images.
  • Roughness and Smoothness were not delivering correct results due to the objects materials being replaced by void materials before the bake would start.
  • Diffuse, Roughness and Smoothness weren't working properly in multi-object bakes, materials other than the active object active material slot weren't baking.
  • Now, when baking Diffuse, Roughness and Smoothness, support image nodes created during baking are deleted once the bake ends.
  • Roughness and Smoothness baked images backgrounds set both to black: no more white background for Smoothness.
  • Some keywords used on object names during automatic detection of bake pairs (selected to active baking) were producing some false detections due to being too generic, so they have been deleted from the lists used for looking for matches. The letters that must not be used as acronyms from now on, for bakes of the like "high to low" not to fail, are: 'l' for lowpoly, 'h' for highpoly, 'c' for cage, 'f' for float
Choose a tag to compare
  • Align, Sort, Crop, Fill and Select Similar now work with multiple objects while editing the UVs.
  • Now, Select Overlap behaves like in previous versions: all but one of the overlapping islands are selected, making it posible to manually fix the overlapping by using this operator in conjunction with manually moving the selected islands.
  • Further optimization of the 90º Rotate Island operator.
  • Original Materials are now restored when cycling Checker Maps from a dictionary stored in utilities_texel; this means, to not lose the original material assignations: MATERIALS SHOULD BE RESTORED BEFORE EXITING BLENDER / CHANGING THE BLEND FILE BEING EDITED.
    The original materials won't be lost in any case, they will be marked as Fake Users while renamed with the prefix "backup_". Before, using this tool straigh deleted them and the materials slots, making imposible to reasign new materials easily in a multi-material object.
  • Checker Maps operates in both EDIT and OBJECT modes for multiple objects without issues.
  • The current UV Editor image won't be replaced by the "checker_map_gravity" map anymore.
  • Some cleanup and minor corrections in op_smoothing_uv_islands, op_select_islands_flipped, op_select_islands_outline, op_rectify, utilities_bake, settings, init and LICENSE.txt
Choose a tag to compare

Blender Foundation CERTIFIED TRAINER
He has made these amazing icons to bite the look of textools, to the new Blender 29x.

inspired by this design by :

Choose a tag to compare

Added Randomize Position operator
Now, Rectify, Rotate Island +-90º, Align World, Align Edge, Select Overlapped, Select Bounds, Select Flipped, and UV Smoothing support multi-object UV editing.

Choose a tag to compare

The package was updated to master on 2020/12/09