string texprintf(float u, float v, string format, ...)
sprintfのような文字列を書式化しますが、UDIMまたはUVTILEのどちらかの形式のファイル名展開を実行するために、特殊な変換文字を調べます。
これは、直接sprintf()をコールするよりもかなり効率的です。
特殊変換配列は以下の通りです:
<UDIM>
UDIM座標。これは、1000 + int(u)+1 + int(v)*10
で計算されます。
%(U)d
UVTILE形式のU座標(int(u)+1
)。
%(V)d
UVTILE形式のV座標(int(v)+1
)。
%(UVTILE)d
u%d_v%d
の形式でUとVの両方の座標に展開します。
テクスチャを識別するためのd
変換指定子は、フィールド修飾子で修正することができます。
例えば、%(U)02d
または%(V)04d
。
Examples ¶
!vex // "map_1044.ratを返します。 texprintf(3.1, 4.15, "map_<UDIM>.rat"); // "map_04_05.rat"を返します。 texprintf(3.1, 4.15, "map_%(U)02d_%(V)02d.rat"); // "map_u4_v12.rat"を返します。 texprintf(3.14, 11.5, "map_u%(U)d_v%(V)d.rat"); // "/path/basename_04_05.rat"を返します。 texprintf(3.1, 4.1, "%s/%s_%(U)02d_%(V)02d.rat", "/path", "basename"); // "/path/basename_u04_v05.rat"を返します。 texprintf(3.1, 4.1, "%s/%s_%(UVTILE)02d.rat", "/path", "basename")
string map = texprintf(u, v, "%s/%s_<UDIM>.rat", texture_path, texture_base); Cf = texture(map, u, v);
See also | |
string |
|
texture | |
udim | |
utility |