– UPDATE –
If a local LXI file is specified and that scene saved and sent to render, rendernodes will not find the file and fail. If a network UNC path is specified, the below posts are void and the cache file is found and used when rendering.
–UPDATE 2–
Solution found for irradiance cache files being overlooked for path massaging as posted in this thread on page 3
–Original posts below–
Modo plugin is failing after scene.open when an irradiance.LXI file is used in the scene and loaded from disk at render time.
2015-12-17 10:38:16: 0: STDOUT: Received command: EXECUTE: !scene.open {C:\Users\Tim.EMP3D\AppData\Local\Thinkbox\Deadline7\slave\emp3d_hp-emp3d_hp_b\jobsData\56728fa16d54772c8483dbcf\thread0_tempNxS6I0\Sprite_trees_bundled.lxo} normal
2015-12-17 10:38:16: 0: STDOUT: ! (messageDialogs) [Yes/No/No To All] - File Not Found | imported_images/4sprites.LXI not found; select alternate file?
I think an adaption of the Luxology suggested code would might help here:-
Lines 708-726 Modo.py
# this next if/else clause is where the new file path for the image
# is added set. The original script was intended to update/replace
# the root path alias to/from 'asset:' to another alias. You'll
# need to change the whole clause for your own uses but in a
# network rendering environment it's advisable to use a path alias
# as the 'root' location with images stored relative to that.
#if not value.startswith(prefix):
# fpath = os.path.dirname(value)
# idx = fpath.rfind('/Images/')
# value = prefix + value[idx+1:]
# stream.write(build_chns_subchunk(value).getvalue())
# deadlinePlugin.LogInfo( " Updated to: %s" % value )
if RepositoryUtils.PathMappingRequired( value ):
value = str(RepositoryUtils.CheckPathMapping( value ))
stream.write(build_chns_subchunk(value).getvalue())
deadlinePlugin.LogInfo( " Updated to: %s" % value )
elif repack:
itemchunk.seek(0)
repack_subchunk(stream, scID, itemchunk.chunksize, itemchunk)
In particular the commented out line 716:-
# idx = fpath.rfind('/Images/')
Modo packs dependencies, textures etc. into a created folder where the scene file is saved. The folder is called imported_images when consolidating the scene for network rendering is performed, from the File menu in Modo. I think the line above should be used, but with the actual folder path Modo creates:-
# idx = fpath.rfind('/imported_images/')
Ryan are you able to suggest how this can be added please?
Perhaps an option that if the LXI file is not found, then the render does not fail, but produces it’s own irradiance pass as per normal when one is not produced before rendering. If no file is specified in the scene, then the render runs and the irradiance pass is produced on the fly before the main render pass begins.
Cheers,
Tim.