diff options
author | Jesse Yurkovich <jesse.y@gmail.com> | 2021-12-31 09:06:23 +0300 |
---|---|---|
committer | Jesse Yurkovich <jesse.y@gmail.com> | 2022-01-03 07:48:59 +0300 |
commit | 180b66ae8a1ffc0a1bb7d3993028240b4c7f7246 (patch) | |
tree | cbc9405b97f02826d181829859b12ce82a672def /source/blender/blenlib/BLI_path_util.h | |
parent | 367fc69dc1c5ebb6e30ef74488a041502ea8a370 (diff) |
UDIM: Support virtual filenames
This implements the design detailed in T92696 to support virtual
filenames for UDIM textures. Currently, the following 2 substitution
tokens are supported:
| Token | Meaning |
| ----- | ---- |
| <UDIM> | 1001 + u-tile + v-tile * 10 |
| <UVTILE> | Equivalent to u<u-tile + 1>_v<v-tile + 1> |
Example for u-tile of 3 and v-tile of 1:
filename.<UDIM>_ver0023.png --> filename.1014_ver0023.png
filename.<UVTILE>_ver0023.png --> filename.u4_v2_ver0023.png
For image loading, the existing workflow is unchanged. A user can select
one or more image files, belonging to one or more UDIM tile sets, and
have Blender load them all as it does today. Now the <UVTILE> format is
"guessed" just as the <UDIM> format was guessed before.
If guessing fails, the user can simply go into the Image Editor and type
the proper substitution in the filename. Once typing is complete,
Blender will reload the files and correctly fill the tiles. This
workflow is new as attempting to fix the guessing in current versions
did not really work, and the user was often stuck with a confusing
situation.
For image saving, the existing workflow is changed slightly. Currently,
when saving, a user has to be sure to type the filename of the first
tile (e.g. filename.1001.png) to save the entire UDIM set. The number
could differ if they start at a different tile etc. This is confusing.
Now, the user should type a filename containing the appropriate
substitution token. By default Blender will fill in a default name using
the <UDIM> token but the user is free to save out images using <UVTILE>
if they wish.
Differential Revision: https://developer.blender.org/D13057
Diffstat (limited to 'source/blender/blenlib/BLI_path_util.h')
-rw-r--r-- | source/blender/blenlib/BLI_path_util.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_path_util.h b/source/blender/blenlib/BLI_path_util.h index 8b54ee52322..70eb80e7763 100644 --- a/source/blender/blenlib/BLI_path_util.h +++ b/source/blender/blenlib/BLI_path_util.h @@ -254,6 +254,10 @@ void BLI_path_normalize_dir(const char *relabase, char *dir) ATTR_NONNULL(2); /** * Make given name safe to be used in paths. * + * \param allow_tokens: Permit the usage of '<' and '>' characters. This can be + * leveraged by higher layers to support "virtual filenames" which contain + * substitution markers delineated between the two characters. + * * \return true if \a fname was changed, false otherwise. * * For now, simply replaces reserved chars (as listed in @@ -273,7 +277,9 @@ void BLI_path_normalize_dir(const char *relabase, char *dir) ATTR_NONNULL(2); * \note On Windows, it also checks for forbidden names * (see https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx ). */ +bool BLI_filename_make_safe_ex(char *fname, bool allow_tokens) ATTR_NONNULL(1); bool BLI_filename_make_safe(char *fname) ATTR_NONNULL(1); + /** * Make given path OS-safe. * |