Hi, i'm new to your addon crowdrender, looks very promising ! thanks a lot for putting so much effort in it, and congrats about the simplicity of its network rendering process !
One thought about it so, not a big deal, but it seems for now (v0.1.2) that it's not possible to save an entire render nodes list to reuse it later. I think it's could be a really good feature to click on a save button to get an external csv/json somewhere, and just reopen this later to get your renderfarm up in no time ! And on another topic, i saw somewhere in one of your videos there's now a way to run crowdrender slave through command line, is it already working in 0.1.2 version ? thanks a lot for all of this again ! Cheers !
Hey, yep of course feel free to use and share this ! this is why open source is such a great thing ! glad you find this useful :)
I see what you means about the copy scene settings option, but if i recall, this copy the entire scene, and when you want a blank scene, this option could add a lot of stuff to get rid of in a second time.
If you can manage to keep the node list from the original scene while creating a new blank scene, this problem should be totally solved imo.
Another way to see this question could be to add some configuration option, like add a new configuration for example when you want to render on all your company's computers, create a new configuration, add the nodes and save it, but when you want to only render on, let's say, your department's computers, create "my department" configuration, and add your nodes, save. It could be a dropdown menu to switch from one to another from example.
This is also a way to quickly exclude some nodes from the pool !
About the how, as i said external would be the best imo, i think there's also a possibility with the user preferences, and the scene option (especially if you can pass settings from one scene to another on creation).
Anyway, glad to be of any help on your nice addon ! Eager to try it in a real project :)
Sam this is brilliant stuff :D, Thank you for taking such an interest in our addon!
Question, can I share this on social media? Its an example of the kind of collaboration with users I think should happen more often. Totally ok if you'd rather not, just thought I would ask first before sharing.
I am really open and welcoming to your ideas about the addon, very much interested to see a deployment script too, thats a nice idea. Also, you're right about the nodes being stored in the current scene. I'm working on an upgrade that will hopefully fix that so that nodes which are connected or "default" will show up if you start a new scene. You can actually do this right now with the current build if you create a new scene with the "copy settings" option as this will copy the scene props you mention and you should see the nodes appear again.
You've raised an interesting issue though I have to admit. The idea of a brand new scene in blender seems to imply that all settings are default, so I guess then I have to think about that the "default" is for crowdrender, and if that should include the currently connected nodes ( which I think it does) and also nodes that are in the default set but not connected. Perhaps I should just make it so that in a new scene, the list does not change from the original scene? I'm not 100% swayed on either approach yet so ideas are welcome :D
James
Hi thanks a lot for your detailed and fast answer !
so i took a look at the way nodes are stored, and i saw it's in the scene props, that makes sense ! and yep it works on my computer too :) i just didn't try to make it work that way (just did a ctl+n after saving user settings) my bad about this !
However, a downside of this way of storing is if you have several scenes in one blendfile, you'll have to redo the connecting process. It's not at all a big problem, but i think there's workaround for this :
- on my addons, i stored a lot of things externally in csv file (or json), and just put a handler on blender startup which loads them in a new Winman (windows manager) property collection. This way, all scenes have access to these elements ! (if you want, you can take a look at my fontselector addon which works this way)
- another way could be to add a handler which copy your node list to the other scene when creating it (i'm not sure such a handler exists, but there's a great chance !)
Don't get me wrong, your addon is great and i'm totally not entitled to teach you any code (i'm just enthusiastic, and looking at your addon, you're waaaaaaay better coder than me !), but it's just sharing the logic i use to workaround this scene property problem ! i hope it could be helpful :)
and about the command line thingy, perfect answer with all explanation ! that's great thanks a lot !
i just tested it on windows, seems to work like a charm !
I had some free time and write a little exporter for command line file, which get the right path for blender, for crowdrender addon, and the exact blender version, to create a working command line for the opened blender app.
It doesn't mess the permission... i don't have a clue on how to do that in python, but it gives the right extension depending on the os.
I post it here if anyone is interested, i think it can be efficient to deploy crowdrender quickly on several machine !
https://my.pcloud.com/publink/show?code=XZEnUH7ZJgR3TEV0mukqyERgtSeOmfhQdBiV
it's just a single operator in an "crowdrender extras" panel, working as a script, not an addon !
But if you want, feel free to use and modify it (or even integrate it) at your convenience !
Thanks for all your work again !
Hi Sam, Thanks! Ok, great that you've been using the addon:D. As for the nodes list, they should be saved into your blend file, if that is not happening, can you please let me know straight away as we'll need to see whats happening on your system (it works on mine, but there's always a chance it can break on another system, we lke to know about these cases so we can make a patch to fix it).
Also you can add some nodes in the default scene, connect to them, and then you should be able to save your startup file (with all your nodes connected) and they should be loaded each time you start blender.
As for starting render servers on a node without starting blender, for sure, I am going to write a guide for this but I'll tell you how to do it here:
First this will be dependent on your operating system. If you're using windows then you'll be creating a batch file or .bat file to configure blender to start a headless server when you run the batch file. If you're on a unix based system like mac or linux, you'll be creating a .sh file or a shell script. Ok, here goes...
WINDOWS:
Create a new txt file, you'll need to save the file name as something like cr_headless_start.bat (the exact name doesn't matter, but the .bat part is essential).
Inside the file you'll need to write something like the following:
"C:\Program Files\Blender Foundation\Blender\2.79\blender.exe" -b -P C:\Users\*your_user_name*\AppData\Roaming\Blender\2.79\scripts\addons\crowdrender\src\bl_2_79\serv_int_start.py -- "server_int_proc"
Save the file somewhere its easy to find it, you can simply double click it and it should launch a headless server! You can even put it in the startup folder and windows will launch the server each time you login to the computer :)
NOTE: please check the path where blender is installed carefully, you need to make sure that you put the correct path for blender as the first part of this command. Also please replace *your_user_name* with the name of the user you log into the computer with. Finally this command is going to setup a headless server for Blender 2.79. The addon can support 2.78 as well, in which case you will need to replace the bl_2_79 part with bl_2_78.
UNIX OS:
Create a new txt file. You'll need to give it a .sh extension. Again name it something that you'll remember what it does when you read it like cr_headless_start.sh for e.g. ;)
For linux, Inside the file write something like:
*Path_to_blender_application* -b -P ~/.config/blender/2.79/scripts/addons/crowdrender/src/bl_2_79/serv_int_start.py -- "server_int_start"
For mac write something like:
*Path_to_blender_application* -b -P ~/Library/Application Support/Blender/2.79/scripts/addons/crowdrender/src/bl_2_79/serv_int_start.py -- "server_int_start"
Once you've saved the txt file with the .sh extension, you'll need to open a terminal and modify the .sh file to give it the ability to be executed as a shell script. Once inside terminal type "chmod +x file_name.sh"
You can then run this file by typing /.file_name.sh inside terminal.
I've also included a couple of links to help you out if you want to make the file start at login so the headless server will always start when you start the computer and login.
MAC: https://stackoverflow.com/questions/6442364/running-script-upon-login-mac
LINUX: https://www.google.com.au/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwiWwrTk_vPYAhUDfrwKHXbxDmYQFgg3MAE&url=https%3A%2F%2Faskubuntu.com%2Fquestions%2F704768%2Frun-script-on-login-script-with-sudo-or-startup&usg=AOvVaw39d3DELejxivP9FgnD7DRf
NOTE: similar to above, you'll need to replace the parts in ** with the actual paths on your system. I've used the symbol "~" above which is a shortcut to your user directory on unix based systems. So these paths should be able to be copied and pasted into the .sh file you're making as they should automatically refer to the correct location of Blender's script paths.
Please do write back if you have any problems, happy to help :)