Hello all,
I am looking for help regarding shared assets on a networked drive for a render farm.
Issue 1 (render nodes): Intermittently, our render nodes will overwrite the 3dsmax.ini file and delete a handful of iToo library paths, even though the registry edits are correct for all networked libraries and texture paths. We are using 3ds Max 2024, Forest Pack Pro 8.2.6, and VRay 6.2.
Issue 2 (workstations): One of the presets, "Layered Lawns", keeps asking to add its maps paths to the list of user paths, even though the path to those maps already exists. The .ini file does not change, and no new paths are added. Scene will render just fine locally, but sometimes will render without maps on networked drive (related to issue #1).
Issue 3: iToo Update Manager on render nodes think packages need to be updated, even though all registry entries point towards the network location for downloads and library packages. For example, if I open up Update Manager on my workstation, it says "All Packages are up to date". But if I open Update Manager on render node A, update manager says " There are X number of packages to update", and then on render node B, update manager says "there are Y number of packages to update". All 3 of these machines have the exact same registry entries.
Our studio has been plagued by these kinds of issues with Forest Pack, and I'd like to squash the bugs once and for all (famous last words!).
As mentioned in multiple spots (forum posts here and Chaos) for iToo configuration, sharing assets across workstations with a render farm requires registry edits and edits to the 3dsmax.ini file to ensure correct asset paths when loading forest pack textures.
When we set up a new workstation for a user, we run a .reg edit file to "hard-code" the Forest Pack library paths for 3ds Max. For example, this is the registry entry for 4 of our libraries:
[HKEY_CURRENT_USER\SOFTWARE\Itoo Software\Forest Pack Pro\LibraryDir]
"CARS_ForestPack"="P:\\07_VEHICLES\\PERSONAL groups\\CARS_ForestPack"
"Field Plants And Grasses 01"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Field Plants And Grasses 01"
"Forest Library"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Forest Pack Pro\\lib"
"VIZPARK"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\VIZPARK"
The "Forest Library" of course contains the folders "2D", "3D", "Presets", and "Samples". And all of the "Presets", like "Layered Lawns", have a sub-folder structure for "maps", "matlibs", and others.
So our registry edit file for all machines (workstations and nodes) also includes texture paths for all of the presets and others that need it. This is what that section of the registry edit looks like:
[HKEY_CURRENT_USER\SOFTWARE\Itoo Software\Forest Pack Pro\TexturePaths]
"1"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Forest Pack Pro\\maps"
"2"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Forest Pack Pro\\lib\\3D\\Starter Library\\maps"
"3"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Forest Pack Pro\\lib\\3D\\Stones\\maps"
"4"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Forest Pack Pro\\lib\\Presets\\Layered_Lawns\\maps"
"5"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Forest Pack Pro\\lib\\Presets\\Leaves\\maps"
"6"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Forest Pack Pro\\lib\\Presets\\Stones\\maps"
"7"="P:\\07_VEHICLES\\PERSONAL groups\\CARS_ForestPack\\parked cars\\maps"
"8"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Forest Pack Pro\\lib\\3D\\Stumps\\maps"
"9"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Forest Pack Pro\\lib\\Presets\\Cut Hedges\\maps"
"10"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Forest Pack Pro\\lib\\Presets\\stumps\\maps"
"11"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Forest Pack Pro\\lib\\Presets\\Vertical\\maps"
"12"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\VIZPARK\\VP Real Flowers\\maps"
"13"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\VIZPARK\\VP Real Grass - Plants\\maps"
"14"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\VIZPARK\\VP Real Shrubs\\maps"
"15"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\VIZPARK\\VP Real Trees\\maps"
"16"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\VIZPARK\\VP Real Trees II\\maps"
"17"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\Field Plants And Grasses 01\\Models\\maps"
"18"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\VIZPARK\\VP Real Trees II - Forests\\maps"
"19"="\\\\dcsrv01\\Projects\\_misc support\\- MAX\\- Plugins\\iToo\\Forest Pack Libraries\\VIZPARK\\VP Real Boulders\\maps"
"20"="\\\\dcsrv01\\projects\\_misc support\\- max\\- plugins\\itoo\\Forest Pack Libraries\\vizpark\\vp real trees ii - forests\\maps
"21"="\\\\dcsrv01\\projects\\_misc support\\- max\\- plugins\\itoo\\Forest Pack Libraries\\vizpark\\vp real boulders\\maps"
"22"="\\\\dcsrv01\\projects\\_misc support\\- max\\- plugins\\itoo\\railclone pro\\lib\default1\\civil engineering\\street lights\\maps"
"23"="\\\\dcsrv01\\projects\\_misc support\\- max\\- plugins\\itoo\\forest pack libraries\\field plants and grasses 01\\presets\\maps"
"24"="\\\\dcsrv01\\projects\\_misc support\\- max\\- plugins\\itoo\\forest pack libraries\\forest pack pro\\lib\\presets\\autumn leaves\\maps"
"25"="\\\\dcsrv01\\projects\\_misc support\\- max\\- plugins\\itoo\\forest pack libraries\\forest pack pro\\lib\\3d\\starter library\\maps"
From what I understand, the registry edits only affect Forest Pack when running with a GUI in 3ds Max, and therefore are not necessary for render nodes. For render nodes, I have a bit of text I copy and paste into the 3dsmax.ini file for each render node. That edit looks like this:
[BitmapDirs]
Dir1=C:\Program Files\Autodesk\3ds Max 2024\Maps
Dir2=C:\Program Files\Autodesk\3ds Max 2024\Maps\glare
Dir3=C:\Program Files\Autodesk\3ds Max 2024\Maps\adskMtl
Dir4=C:\Program Files\Autodesk\3ds Max 2024\Maps\Noise
Dir5=C:\Program Files\Autodesk\3ds Max 2024\Maps\Substance\noises
Dir6=C:\Program Files\Autodesk\3ds Max 2024\Maps\Substance\textures
Dir7=C:\Program Files\Autodesk\3ds Max 2024\Maps\mental_mill
Dir8=C:\Program Files\Autodesk\3ds Max 2024\Maps\fx
Dir9=C:\Program Files\Autodesk\3ds Max 2024\Maps\Particle Flow Presets
Dir10=.\downloads
Dir11=c:\program files\itoo software\forest pack pro\distmaps\images
Dir12=p:\07_vehicles\personal groups\cars_forestpack\parked cars\maps
Dir13=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\forest pack pro\distmaps\images
Dir14=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\forest pack pro\maps
Dir15=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\forest pack pro\lib\3d\starter library\maps
Dir16=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\forest pack pro\lib\3d\stones\maps
Dir17=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\forest pack pro\lib\presets\layered_lawns\maps
Dir18=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\forest pack pro\lib\presets\leaves\maps
Dir19=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\forest pack pro\lib\presets\stones\maps
Dir20=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\forest pack pro\lib\presets\vertical\maps
Dir21=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\railclone pro\maps
Dir22=\\dcsrv01\projects\00_MATERIALS\V-Ray Material Library
Dir23=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\forest pack pro\lib\3d\stumps\maps
Dir24=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\forest pack pro\lib\presets\cut hedges\maps
Dir25=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\forest pack pro\lib\presets\stumps\maps
Dir26=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\vizpark\vp real flowers\maps
Dir27=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\vizpark\vp real grass - plants\maps
Dir28=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\vizpark\vp real shrubs\maps
Dir29=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\vizpark\vp real trees\maps
Dir30=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\vizpark\vp real trees ii\maps
Dir31=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\field plants and grasses 01\models\maps
Dir32=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\vizpark\vp real trees ii - forests\maps
Dir33=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\Forest Pack Libraries\vizpark\vp real boulders\maps
Dir34=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\railclone pro\lib\default1\civil engineering\street lights\maps
Dir35=\\dcsrv01\projects\_misc support\- max\- plugins\itoo\forest pack libraries\forest pack pro\lib\presets\autumn leaves\maps
The 3dsmax.ini file's texture paths should match the registry's locations, and if I open the External Paths menu in 3ds Max before loading FP, the entries do match, and Max does not give any errors about the paths not being valid.
So that's the setup, now to the issues...
To reproduce Issue 1, I create a new FP icon, then open the library and load a "Layered Lawn" preset. FP throws up a dialog box saying "This Library's maps folder should be added to Customize->Configure User Paths .>External Files". This should not happen, because the "maps" path for that preset is already present in the registry AND the .ini file as verified by the "External Files" dialog. I click "yes", and the .ini file is re-written but not changed. The "external files" list also does not change. So why is that preset specifically not recognizing the path as valid?
Issue 2 is more complicated, but related. If a scene uses one of these presets and is rendered on the network using Distributed Rendering, there is a non-0 chance that one or more of the render nodes will load 3ds Max with an incorrect .ini file that does not include all the correct paths for the libraries. The issue is discovered when the user sees the output of the rendering. The render nodes that have the wrong .ini file will render the geometry of the FP preset, but the materials are missing. If I remote into the machine that rendered the bad buckets, I can see the .ini file has been edited, and the texture paths for iToo are either incomplete or missing entirely. I can fix the issue by re-editing the .ini file, but it will happen again eventually, and I cannot figure out what the pattern is. For context here, we use Deadline to manage the render farm, which handles the VRay Spawner processes.
Issue 3 I'm sure is connected. The settings for the network download location in Update Manager are all the same, and if all the libraries for Forest Pack are shared, why would there be any discrepancies as to which packages need to be updated? If one machine's Update Manager sees updates on the iToo server, downloads them to the network location, and installs them to the network locations, shouldn't the other machines recognize the updated library assets and therefore shouldn't Update Manager "agree" that everything is up-to-date?
To add to my frustration, there is zero official documentation for shared network installations. All of the above configuration was cobbled together from various forum posts from the last 8 years. It seems as though the most iToo mentions about network locations is the location for downloaded updates for Update Manager
All of the registry edits, .ini edits, and external path edits are supposed to be handled by Forest Pack automatically when a user sets a new library location (FP Library > File > Preferences) and adds a preset or geometry from those locations. So these custom entries are almost entirely designed to avoid texture path issues in our studio and facilitate installation & configuration.
Does anyone else out there have these kinds of issues? Why does 3ds Max sometimes overwrite the .ini file on render nodes? Why aren't the iToo library map paths sticky? Why does the "layered lawns" preset (and only that preset) not recognize the correct path as set in the External Paths list and registry?
I would really appreciate any help from anyone else who manages a render farm with Max, VRay, and Forest Pack. I would also really love to see some more official documentation about network installations. It is clear that there is something messed up in our configuration of Max & iToo, and I'm sure there is a more "correct" way to make this all work, but the lack of documentation leaves me shooting in the dark and using trial & error.
Any help is welcome!