Network rendering support

Discussion related to the Engine functionality, implementations and API.
User avatar
Dade
Developer
Posts: 1340
Joined: Mon Dec 04, 2017 8:36 pm

Re: Network rendering support

Post by Dade » Sun Jan 21, 2018 4:51 pm

B.Y.O.B. wrote:
Sun Jan 21, 2018 4:30 pm
I also could not get the network tools to work on Linux.
What kind of error do you get ? Do you have tried to set LD_LIBRARY_PATH or copy the 3 .so ?
B.Y.O.B. wrote:
Sun Jan 21, 2018 4:30 pm
By the way I had an idea for the future network manager UI:
Maybe we could make it so you can drag and drop a .blend file onto it and it automatically does a FILESAVER export to .bcf and starts rendering.
We could have also some kind of integration with BlendLuxCore, after all it is just a Python method call. But first of all we are going to need a GUI:

1) find someone who write the code :mrgreen:
2) select a GUI toolkit for Python (Qt, Wx, TK, etc.). I'm still not sure on what is better to use :?:
Support LuxCoreRender project with salts and bounties

jensverwiebe
Supporting Users
Posts: 141
Joined: Tue Jan 09, 2018 6:48 pm

Re: Network rendering support

Post by jensverwiebe » Sun Jan 21, 2018 4:56 pm

Dade wrote:
Sun Jan 21, 2018 4:47 pm
jensverwiebe wrote:
Sun Jan 21, 2018 4:20 pm
@Dade
Took a fast look at Linux alpha2 and found luxcoreui broken cause of misconfigured structure.
Either the embree/libs must reside by the binaries ( SET(CMAKE_INSTALL_RPATH "$ORIGIN")
or you must change this to SET(CMAKE_INSTALL_RPATH "../lib/$ORIGIN") to keep dirs as is.
It has always been like that, you have only to set LD_LIBRARY_PATH to point to "<installation path>/lib". As alternative fast work around, you can just copy the 3 .so where you want to execute luxcore/pyluxcorenode/etc.
I disagree here, i had always prepared lux having that rpath + also embree to load the delivered tbb(malloc) with

Code: Select all

patchelf --set-rpath '$ORIGIN' libembree.so.2
Anyway, its just a hint. Users should not have to deal with extra commands to make something work.
jensverwiebe wrote:
Sun Jan 21, 2018 4:20 pm
OFFTOPIC: i set forumconfig to not show my online status, but i can see it still. Bug ? ( in old forum this worked )
The visibility state is saved for about 5 mins, may be re-rty later to check if you are still visible ?
I set it days ago, it still does not apply to hide status.

User avatar
B.Y.O.B.
Developer
Posts: 1600
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: Network rendering support

Post by B.Y.O.B. » Sun Jan 21, 2018 5:45 pm

Dade wrote:
Sun Jan 21, 2018 4:51 pm
What kind of error do you get ? Do you have tried to set LD_LIBRARY_PATH or copy the 3 .so ?
I tried both.
I copied the three .so files and I can start luxcoreui with ./luxcoreui.
But when I try e.g. ./pyluxcorenetconsole, it fails with the following error:

Code: Select all

~/p/l/bin› ls
libembree.so.2*  libtbb.so.2*  luxcoreui*  pyluxcoreconsole*  pyluxcoremerge*  pyluxcorenetconsole*  pyluxcorenetnode*  pyluxcore.so*
~/p/l/bin› ./pyluxcorenetconsole 
Traceback (most recent call last):
  File "pyluxcorenetconsole.py", line 34, in <module>
  File "/tmp/_MEIV9TXJn/pyluxcoretools.zip/pyluxcoretools/pyluxcorenetconsole/cmd.py", line 26, in <module>
  File "/usr/local/lib/python3.4/dist-packages/PyInstaller/loader/pyimod03_importers.py", line 714, in load_module
    module = loader.load_module(fullname)
ImportError: /tmp/_MEIV9TXJn/pyluxcore.so: undefined symbol: rtcSetTransform2
[14773] Failed to execute script pyluxcorenetconsole
~/p/l/bin [255]›
Support LuxCoreRender project with salts and bounties

User avatar
B.Y.O.B.
Developer
Posts: 1600
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: Network rendering support

Post by B.Y.O.B. » Sun Jan 21, 2018 5:58 pm

We could have also some kind of integration with BlendLuxCore, after all it is just a Python method call. But first of all we are going to need a GUI:

1) find someone who write the code :mrgreen:
2) select a GUI toolkit for Python (Qt, Wx, TK, etc.). I'm still not sure on what is better to use :?:
I can write a GUI, but I'm also a bit lost what's best as toolkit.
Guess I'll do some tests.

I think it is better to have this as standalone solution than in BlendLuxCore because
a) we can then re-use it for other exporters, it stays plugin-agnostic
b) we save the memory overhead of having the Blender scene open, which can make a lot of difference in heavy scenes
c) we do not have to work with Blender's weird and restricted UI
Support LuxCoreRender project with salts and bounties

jensverwiebe
Supporting Users
Posts: 141
Joined: Tue Jan 09, 2018 6:48 pm

Re: Network rendering support

Post by jensverwiebe » Sun Jan 21, 2018 10:58 pm

Made a typo in proposal:
CMAKE_INSTALL_RPATH "../lib/$ORIGIN" must read CMAKE_INSTALL_RPATH "$ORIGIN/../lib" indeed.

Jens

jensverwiebe
Supporting Users
Posts: 141
Joined: Tue Jan 09, 2018 6:48 pm

Re: Network rendering support

Post by jensverwiebe » Sat Jan 27, 2018 4:29 pm

Found today time to test networking.
After fiddling a bit with the pathes in the scripts, i was able to
netrender with linux-master/osx-slave and vice versa just fine.

Be aware to use python3 <cmd>, python 2.7 will not do ( default on osx 10.11 and possibly later and linux 14.04 packages )
This means you have to install python 3.4 or higher framework on osx, respectively python 3.4 or higher on linux if not already done.
Used builds from today.

EDIT: linux-master/linux-slave also works fine, but that was expected anyway ;)
EDIT2: played a bit more with networking: clever design :)

Jens

User avatar
B.Y.O.B.
Developer
Posts: 1600
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: Network rendering support

Post by B.Y.O.B. » Sun Jan 28, 2018 11:26 am

Dade wrote:
Sun Jan 21, 2018 4:51 pm
2) select a GUI toolkit for Python (Qt, Wx, TK, etc.). I'm still not sure on what is better to use :?:
Dade, have you tested pyimgui?
Support LuxCoreRender project with salts and bounties

User avatar
Dade
Developer
Posts: 1340
Joined: Mon Dec 04, 2017 8:36 pm

Re: Network rendering support

Post by Dade » Sun Jan 28, 2018 12:38 pm

B.Y.O.B. wrote:
Sun Jan 28, 2018 11:26 am
Dade wrote:
Sun Jan 21, 2018 4:51 pm
2) select a GUI toolkit for Python (Qt, Wx, TK, etc.). I'm still not sure on what is better to use :?:
Dade, have you tested pyimgui?
I have seen it and it was interesting but I was bit worried of the Python/OpenGL/Real-time rendering combo (and the absence of development in the last 6 months). But it may be a lot easier to use compared to other bloat/fat GUI toolkits.
Support LuxCoreRender project with salts and bounties

User avatar
B.Y.O.B.
Developer
Posts: 1600
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: Network rendering support

Post by B.Y.O.B. » Sun Jan 28, 2018 12:42 pm

Yes it looks a bit experimental to me, maybe not the best idea to use it.
To be honest I'm also not against writing the GUI using C++ ImGUI, I've already used it for a small tool a while ago.
Support LuxCoreRender project with salts and bounties

User avatar
Dade
Developer
Posts: 1340
Joined: Mon Dec 04, 2017 8:36 pm

Re: Network rendering support

Post by Dade » Sun Jan 28, 2018 1:06 pm

B.Y.O.B. wrote:
Sun Jan 28, 2018 12:42 pm
Yes it looks a bit experimental to me, maybe not the best idea to use it.
To be honest I'm also not against writing the GUI using C++ ImGUI, I've already used it for a small tool a while ago.
The problem is the network rendering code is now written in Python so we would have C++ GUI calling Python network code (something still to explore) and than Python network code calling C++ pyluxcore, it looks like a recipe for troubles.

As far as I have seen at the moment:

- https://www.wxpython.org/ looks like a good option;
- I really like Qt but I have been able to understand the dual license mess of https://www.riverbankcomputing.com/soft ... /download5 and if we can use it;
- https://wiki.qt.io/PySide is another Qt, the license is ok but it looks like it is not actively developed anymore.
- Tk: I was using Tcl/Tk 30 years ago, the GUI looks prehistoric but Tk is included in Python, this is a major selling point.

Wx looks like the best option at the moment for developing all PyLuxCoreTools GUIs but I'm quite confused.
Support LuxCoreRender project with salts and bounties

Post Reply