I’m setting up a render farm for my current project, and have both Linux and Windows machines. Unfortunately, the project uses a texture plugin; since the plugin is provided in a different file for each OS (and is located in a different directory on each system), the Windows machines give me a blank texture if I set it to the Linux path, and vice-versa.
Is there any way around this? (Other than booting my Windows machines to a Linux live CD and installing Blender+DrQueue every time I want to use the render farm?)
For instance (and these are only examples, I can’t remember where blender starts looking by default), if blender starts looking in windows in “C:\Program Files\Blender” while Linux starts looking in “/usr/share/blender” then place the windows plugin at “C:\Program Files\Blender\plugins\plugin_name” while placing the Linux version at “/usr/share/blender/plugins/plugin_name”.
Then, use a relative path for the plugin: “./plugins/plugin_name”
Well, it doesn’t seem to like relative paths for the plugin. I put a copy of the plugins into the same directory as the blend file. But changing the plugin path to //t_bricks.Linux.so resulted in an error (“Error no plugin: //t_bricks.Linux.so”). (I hope that’s correct; the manual states that // indicates the directory the .blend file was loaded from.)
Even if I can get the relative paths working, the plugins are named differently for each operating system (t_bricks.Linux.so versus t_bricks.dll). Is Blender smart enough to append the appropriate extension for the operating system if I leave it off?
You don’t need to install drqueue everytime. It will run perfectly from a network share.
Regarding the different paths, You can write a small python script that checks which OS you are on and change the path/scene or whatever you like. I think it would be possible. However don’t have blender at hand here so I can’t check
the other option is 2 different jobs
eg 2 windows machines render frames 1 to 50
and 3 Linux machines do 51 tot 100
As for the .dll/.so naming difference, you could try ln -s t_bricks.Linux.so t_bricks.dll on Linux and use //t_bricks.dll as the path on both architectures.