Hi all, Im having a bit of trouble with linked models getting rendered over the network. Im testing out the animation functions of CrowdRender and the file is on a shared server location, but I continue to have the scenes materials rendered properly, but all the linked models in the scene are MIA and im not sure why. The local machine renders it just fine, but all the others cant seem to grab the linked models.
Thanks for any light you might be able to shed on the topic.
Windows 10 + Blender 2.8 distributed across 7 machines
Hi Ted, linked models can be a bit of a pain to use with any distributed rendering method. One way around issues with using a shared folder is to pack the linked assets into the blend file. Did you know there is a command in blender to do this? If you bring up the command search tool (F3 now in bl 2.80) you can search for "pack", one of the results should be something like "pack libraries". This will pack the linked or appended assets into the main project file.
Then you'll need to resync your scene on all your nodes.
One thing that might catch you out here is that when you do this, if there are any external assets in your linked files, then you'll need to open those files and pack all into the blend file in those files first before packing libraries in your main file. Sadly the function in blender to pack libraries is not recursive, so it won't pack the external assets of your linked/appended assets for you.
Finally if you'd rather use a shared location, know this, others have done this successfully I believe. You need to make sure that the path from each node to the shared location is actually valid and can be reached. Usually with a shared location, there will be a network path to the shared resource, if you're mixing computers with different OS types, then it might be that the path blender has in your client, can't be resolved by the nodes because of its format. I have to say I am guessing a bit here but maybe try using the path to the shared resources on the render nodes in a file browser, if you get problems there then its likely blender will also fail and you need to figure out why the computers can't use that path.
Hope this makes sense :)
It does make sense. I tried what I thought was the pack method you explained above by using File> External Data> Pack All Into .blend but it sounds like that's different than Pack Libraries. A lot of this is my own inexperience in Blender so I'm sorry if these are sort of basic level questions at the moment. Ill try the Pack libraries function next and see where that leads.
As far as pathing goes, I have an unraid server on the network that has all my project folders and asset resources in a few different directories. Each machine has access to those network directories via a mounted collection of drives on each machine, so there shouldn't be any issues with no being able to access the directories. That said I wonder if the mounted directories are all correct (A: Drive, B: Drive etc.) If one of the drive mounts was done incorrectly and a drive was mounted with a different drive letter than my machine, I assume that might effect the pathing for CrowdRender (sorry here too, my networking skills are limited as well)?
In any case, you've given me some food for thought and Ill do some additional testing!
Thanks!
Just an additional thought. It might be useful if CrowdRender did some of this ahead of time auto-magically. So, at the launch of a render you get a prompt that gives you the options:
Save your work
then quietly CrowdRender:
Packs the .blend File
Packs the libraries
Packs whatever else blender needs to use
And, not visible to the user, the fully packed up blend file gets stored either in the project folder or a temp folder and that is what gets distributed to the other machines. There's a similar methodology when rendering in V-Ray where the renderer packs a .vrscene and that's what would get distributed to the other nodes. Depending on the network I imagine this could take more time, but really, stability is the name of the game in this instance.
I don't know. Just thinking out loud and I'm sure a lot of this has already been thought about...
@Ted Vitale No need to apologise Ted :) we're all learning, us included! You're spot on with the drive mounting too, the drive letter would need to be the same on each computer, since in blender on your client/master machine, you'd likely have something like this;
"E:/*path_to_shared_file" with "E" of course being the drive letter, this is setup per machine, so if you used "F" on one of the slaves for the same location, that machine isn't going to be able to use the path above. And of course each machine uses the path in the blend file, which is the one from the client/master :)