Hi,
I can't use Crowdrender if my project has an animated texture.
I guess because even if I choose to add my external data into the .blend file this does not include my animated textures. So when the nodes render their part of the frame my animated texture is missing.
Is there a way around this?
Hi Dave,
Yes, this is a common problem, blender will not pack video or animated textures into the blend file, its just not supported. There are a couple of ways around it though, one is to relocate the animated texture to a shared location your network. You can do this by sharing a folder from one machine that will act as a file server. Or if you really want to get serious, you could setup a NAS (Network Attached Storage).
The first is easier, but has some drawbacks, like getting it to work cross OS is annoying and you have a computer that will be slower if its used to render at the same time as serving the files to your other computers. The second is better, but more expensive.
The other solution is only really recommended if you've completely finished working on your scene and you're ready to render it fully. You can manually transfer the animated texture to the location of the blend file on each render node. This is not easy, but it's possible. You need to know where to look on the hard drive of the render nodes to find the folder that the blend file that corresponds to your scene is located.
Each blend file/session you open with Crowdrender enabled will get assigned a unique random string as a session identifier. This session identifier is used as the name of the directory on the render nodes to store the project. So if you know what the identifier is for your scene, you can find the folder on each computer and then manually put the animated texture there. This way you will then be able to render using all your computers and have the texture show up.
The session id can be found if you are willing to use the python scripting window in blender, I can show you how if you like, just let me know? This method is a pain though if you are going to be making changes because if you change the animated texture, you will have to re-upload it to each node again. But, if you don't change the texture, you can just upload it once, and still make other changes really quickly.
I hope this helps?
James
Thanks James that is very helpful. I already have a NAS so I will give that a try.
James... I would like to try and locate the folder setup on my slave machine, and place the animated textures there... can you talk me through the procedure? cheers
@Raymond T Lewis Ok, so you'll need to execute a python command in Blender's scripting view. This will give you the folder name to look for on all your computers where you can place the files you need.
Don't forget to also make sure you have setup your project to use relative file paths to those files as well. Otherwise Blender won't be able to find them on your render nodes.
Ok, so go to Blender and either add or switch to a scripting view. Then enter the following command in the python console.
D.objects['.__cr__'].cr.session_uuid
You should get a result that looks something like this
>>> D.objects['.__cr__'].cr.session_uuid '03d1385d-00aa-4edc-9ece-1fc4f969cc6f'
The result will be a string with a similar pattern of letters, digits and dashes.
Copy this string down and then search for it on your render nodes.
each computer that you have synchronised your project to will have this folder. If you'd like to narrow the search down to save time, then restrict your search to
*your_user_folder_name*/cr/server
Bear in mind this location is the default, if you changed settings in the crowdrender addon preferences in Blender for where CR stores its files, then you will have changed this location I refer to above.
Also if you have to change the project to use relative paths, then make sure you resynchronise it with your nodes connected after you have finished putting the files you need on each render node.
I'll save every some life and frustration. Don't even bother with the above.
What they are basically recommending is to setup a network share and then use the UNC path name for everything. Which is *insane*. Blender uses drive letters, not UNCs and if you didn't set this up from the start you can watch his video as he fails over and over to see why trying to change it after the fact is even more a ridiculous and unnecessary waste of time.
If you aren't using video textures just go to file/external data/check pack it all; save to new file and you are ready to roll using that file. Unfortunately there is a bug with video textures and blender doesn't always pack the video file correctly so it gets pinked. You can use find missing files to fix this locally; but they still don't pushed up to CR correctly. <sigh>
So let's try doing network shares sanely. Share a work directory with all the project loaded on it. Give your UID full access (or "everyone" if you don't have to care) and mount it every where with the same drive letter (yes even the local machine - every node). I used R: for "R"ender. I also set my paths to absolute so it has to look on "R:" not "C:".
Open the project on "R:" in blender and it all just works. CR away without s single care or having to use python to hack you library paths. :)