...
- During interactive renders, the texture manager will add new textures to the queue and return a temporary texture until the conversion is done. Once done, it will send an update to the renderer and your texture will appear.
- When you start a Batch or a Preview render, you need all your textures to be converted first.
Anchor | ||||
---|---|---|---|---|
|
The texture manager uses a set of rules to choose optimal txmake parameters based on:
- The type of node using the texture:
pattern
,light
,lightfilter
orimageplane
. - A set of base parameters for that type of node
- one or more rules to modify the base parameters when considering the file's name, the bit depth, etc.
These settings are defined in a $RMANTREE/etc/txmanager_rules.json
.
Info |
---|
The default rules are build for efficiency and you shouldn't have to modify them unless you have specific pipeline requirements |
JSON structure
Here is a very basic example. See $RMANTREE/etc/txmanager_rules.json
for the real rules.
Code Block | ||||
---|---|---|---|---|
| ||||
{
"pattern": {
"args": {
"texture_type": "regular",
"smode": "periodic",
"tmode": "periodic",
"texture_format": "pixar",
"texture_filter": "catmull-rom",
"resize": "up-",
"data_type": null,
"compression": "lossless",
"compression_level": null
},
"rules": {
"'_i8t' in '%(img_name)s'": {
"args": {
"texture_format": "tiff",
"data_type": "byte"
}
}
}
}
} |
Category
In the example above, the category is pattern
, but there are other pre-defined categories: light
, lightfilter
and imageplane.
args
This section is a dictionary representing default txmake parameter values for the current category. The key names ( texture_type, smode, tmode
, etc) are coming from the TxParams class of the txmanager python module.
rules
Here we define a set of rules that will all be executed in the file's order. The key string should evaluate as a python expression and return True once substituted.
There are a number of available substitution tokens:
token | contents |
---|---|
node_type | the node type (PxrDiskLight, PxrTexture, etc ). |
img_atlas | True if the texture is a UDIM or Mudbox texture set. |
img_name | the image name, without its file extension. |
img_ext | the image's file extension, with its leading dot. |
img_type | the image's data type: int or float |
img_depth | the image's bit depth: 8, 16, 32 |
In the example above, the rule:
Code Block | ||||
---|---|---|---|---|
| ||||
"'_i8t' in '%(img_name)s'": {
"args": {
"texture_format": "tiff",
"data_type": "byte"
}
} |
... matches "_i8t
" in the image name, which is here interpreted as shorthand for "8 bits integer tiff format" and sets the texture format to "tiff
" and the image to "byte
" (8 bits integer, see txmake documentation). For example, a file named "roof_top_diffColor_i8t_v06.png" would match that rule.
Of course, you can create more sophisticated tests by using the and
and or
keywords.
Code Block | ||||
---|---|---|---|---|
| ||||
"'%(img_type)s' == 'float' and %(img_depth)d > 16" |
The standard rules tend to rely on the node_type, img_type
and img_depth
to pick the best file format and compression algorithm.