get started with python API
Forum rules
Please upload a testscene that allows developers to reproduce the problem, and attach some images.
Please upload a testscene that allows developers to reproduce the problem, and attach some images.
get started with python API
Hi,
I have the vague impression that LuxCore is what I'm looking for: I need to generate scenes with optical lenses in python, trace them with physical precision, and measure light intensity on a projection surface.
My main problem is finding the necessary documentation to get started.
Do I need BlendLuxCore for this? I guess not. I downloaded LuxCoreRender and LuxCore API SDK for Ubuntu. But what should I do with that extracted directories?
I can run the luxcoreui. But loading any .cnf file fails because it does not find the referenced .scn file despite correct relative path.
pyluxcoredemo.py crashes in late stage with:
Traceback (most recent call last):
File "samples/pyluxcoredemo/pyluxcoredemo.py", line 674, in <module>
main()
File "samples/pyluxcoredemo/pyluxcoredemo.py", line 663, in main
GetOutputTest()
File "samples/pyluxcoredemo/pyluxcoredemo.py", line 245, in GetOutputTest
pyluxcore.ConvertFilmChannelOutput_3xFloat_To_4xUChar(filmWidth, filmHeight,
AttributeError: module 'pyluxcore' has no attribute 'ConvertFilmChannelOutput_3xFloat_To_4xUChar'
[LuxCore][9.335] [GeForce GTX 1080 Ti Intersect] Memory used for OpenCL image pipeline: 13952Kbytes
How can I just start with rendering a single image with a few meshes?
Thx
I have the vague impression that LuxCore is what I'm looking for: I need to generate scenes with optical lenses in python, trace them with physical precision, and measure light intensity on a projection surface.
My main problem is finding the necessary documentation to get started.
Do I need BlendLuxCore for this? I guess not. I downloaded LuxCoreRender and LuxCore API SDK for Ubuntu. But what should I do with that extracted directories?
I can run the luxcoreui. But loading any .cnf file fails because it does not find the referenced .scn file despite correct relative path.
pyluxcoredemo.py crashes in late stage with:
Traceback (most recent call last):
File "samples/pyluxcoredemo/pyluxcoredemo.py", line 674, in <module>
main()
File "samples/pyluxcoredemo/pyluxcoredemo.py", line 663, in main
GetOutputTest()
File "samples/pyluxcoredemo/pyluxcoredemo.py", line 245, in GetOutputTest
pyluxcore.ConvertFilmChannelOutput_3xFloat_To_4xUChar(filmWidth, filmHeight,
AttributeError: module 'pyluxcore' has no attribute 'ConvertFilmChannelOutput_3xFloat_To_4xUChar'
[LuxCore][9.335] [GeForce GTX 1080 Ti Intersect] Memory used for OpenCL image pipeline: 13952Kbytes
How can I just start with rendering a single image with a few meshes?
Thx
Re: get started with python API
For your purpose you probably need the same files as BlendLuxCore uses:
https://github.com/LuxCoreRender/BlendL ... master/bin
To get an overview of the available classes/functions in the Python API, you can do the following in the directory where pyluxcore.so is:
And you get:
(Or have a look at the Python interface source code: https://github.com/LuxCoreRender/LuxCor ... uxcore.cpp)
It is on the Todo list for things to fix.
ConvertFilmChannelOutput_3xFloat_To_4xUChar was a function in the "pyluxcore for Blender" section of pyluxcore.
I have re-structured those conversion functions to fit Blender more closely, I was not aware that they were used somewhere else (they should not be).
I propose that we re-write this conversion function in the general pyluxcore section.
Here is the old source code of the function: https://github.com/LuxCoreRender/LuxCor ... er.cpp#L80
It does not do anything LuxCore specific, just some heavy number crunching that would be too slow to do in Python (but not impossible).
If you only want to save the image to disk, you can also call film.SaveOutputs()
The demos all seem very big and complicated, I'll try to write something small for your use case.
https://github.com/LuxCoreRender/BlendL ... master/bin
To get an overview of the available classes/functions in the Python API, you can do the following in the directory where pyluxcore.so is:
Code: Select all
python3
>>> import pyluxcore
>>> help(pyluxcore)
Code: Select all
Help on package pyluxcore:
NAME
pyluxcore - LuxCoreRender Python bindings
DESCRIPTION
Provides access to the LuxCoreRender API in python
PACKAGE CONTENTS
CLASSES
Boost.Python.enum(builtins.int)
FilmOutputType
Boost.Python.instance(builtins.object)
Camera
Film
Properties
Property
RenderConfig
RenderSession
RenderState
Scene
class Camera(Boost.Python.instance)
| Method resolution order:
| Camera
| Boost.Python.instance
| builtins.object
|
| Methods defined here:
|
| Rotate(...)
| Rotate( (Camera)arg1, (float)arg2, (tuple)arg3) -> None
|
| RotateDown(...)
| RotateDown( (Camera)arg1, (float)arg2) -> None
[...]
Yes, unfortunately luxcoreui has a weird behaviour, you have to call it exactly from the right directory, it does not search for fallback paths.
It is on the Todo list for things to fix.
Thanks for pointing this out.
ConvertFilmChannelOutput_3xFloat_To_4xUChar was a function in the "pyluxcore for Blender" section of pyluxcore.
I have re-structured those conversion functions to fit Blender more closely, I was not aware that they were used somewhere else (they should not be).
I propose that we re-write this conversion function in the general pyluxcore section.
Here is the old source code of the function: https://github.com/LuxCoreRender/LuxCor ... er.cpp#L80
It does not do anything LuxCore specific, just some heavy number crunching that would be too slow to do in Python (but not impossible).
If you only want to save the image to disk, you can also call film.SaveOutputs()
The demos all seem very big and complicated, I'll try to write something small for your use case.
Re: get started with python API
Here is a smaller demo, hope it helps:
https://gist.github.com/Theverat/0707eb ... db2793ab67
Download the Python script and place it in the same folder as pyluxcore and the required libraries (see https://github.com/LuxCoreRender/BlendL ... master/bin).
Then run it with:
https://gist.github.com/Theverat/0707eb ... db2793ab67
Download the Python script and place it in the same folder as pyluxcore and the required libraries (see https://github.com/LuxCoreRender/BlendL ... master/bin).
Then run it with:
Code: Select all
python3 pyluxcore_demo.py
Re: get started with python API
Thanks for the quick answer, and above all the sample. It confirms my assumption about the efficient way of working with LuxCore API.
It immediately worked stand-alone. Unfortunately LuxCore seems to be very inflexible about paths which conflicts with other elements of my stack. Anyway I will get around this.
What is blocking me at the moment is that my dev environment is macOS. I found no binary libs for that, and have no experience with making for that environment. It will probably need a lot more than a simple cmake & make.
My execution environment is ubuntu with GPU. So I want to do my experiments and analysis of the API with jupyter lab using a remote kernel on the ubuntu machine. But trying so <import pyluxcore> lets the notebook hang. Actually the IPython kernel dies without any log (not even with debug turned on). The kernel runs the same python virtual environment from the same working directory as the succeeding stand-alone run.
What makes it fail to work with IPython, and how can I overcome?
Thanks
It immediately worked stand-alone. Unfortunately LuxCore seems to be very inflexible about paths which conflicts with other elements of my stack. Anyway I will get around this.
What is blocking me at the moment is that my dev environment is macOS. I found no binary libs for that, and have no experience with making for that environment. It will probably need a lot more than a simple cmake & make.
My execution environment is ubuntu with GPU. So I want to do my experiments and analysis of the API with jupyter lab using a remote kernel on the ubuntu machine. But trying so <import pyluxcore> lets the notebook hang. Actually the IPython kernel dies without any log (not even with debug turned on). The kernel runs the same python virtual environment from the same working directory as the succeeding stand-alone run.
What makes it fail to work with IPython, and how can I overcome?
Thanks
Re: get started with python API
I triggered a crash twice in a python console. But I could not reproduce. When I repeat the same then the import works fine. But the IPython kernel dies every time I do the import.
Code: Select all
>>> import sys
>>> sys.path.append('/home/mick/dev/DLO')
>>> import pyluxcore
*** Error in `/home/mick/dev/.virtualenvs/DLO/bin/python3': free(): invalid pointer: 0x00007f7ac9e8a6a0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f7acdd447e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7f7acdd4d37a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f7acdd5153c]
/home/mick/dev/DLO/pyluxcore.so(_ZNSt6locale5_Impl16_M_install_facetEPKNS_2idEPKNS_5facetE+0x142)[0x7f7ac9282eb2]
/home/mick/dev/DLO/pyluxcore.so(_ZNSt6locale5_ImplC1Em+0x1e3)[0x7f7ac9274ee3]
/home/mick/dev/DLO/pyluxcore.so(_ZNSt6locale18_S_initialize_onceEv+0x15)[0x7f7ac9275e55]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xea99)[0x7f7ace0a5a99]
/home/mick/dev/DLO/pyluxcore.so(_ZNSt6locale13_S_initializeEv+0x21)[0x7f7ac9275ea1]
/home/mick/dev/DLO/pyluxcore.so(_ZNSt6localeC1Ev+0x13)[0x7f7ac9275ee3]
/home/mick/dev/DLO/pyluxcore.so(_ZNSt8ios_base4InitC2Ev+0xbc)[0x7f7ac9278e1c]
/home/mick/dev/DLO/libembree.so.2(+0x7f55e)[0x7f7ac5f1e55e]
/lib64/ld-linux-x86-64.so.2(+0x106ba)[0x7f7ace2c46ba]
/lib64/ld-linux-x86-64.so.2(+0x107cb)[0x7f7ace2c47cb]
/lib64/ld-linux-x86-64.so.2(+0x158e2)[0x7f7ace2c98e2]
/lib64/ld-linux-x86-64.so.2(+0x10564)[0x7f7ace2c4564]
/lib64/ld-linux-x86-64.so.2(+0x14da9)[0x7f7ace2c8da9]
/lib/x86_64-linux-gnu/libdl.so.2(+0xf09)[0x7f7acdac9f09]
/lib64/ld-linux-x86-64.so.2(+0x10564)[0x7f7ace2c4564]
/lib/x86_64-linux-gnu/libdl.so.2(+0x1571)[0x7f7acdaca571]
/lib/x86_64-linux-gnu/libdl.so.2(dlopen+0x31)[0x7f7acdac9fa1]
/home/mick/dev/.virtualenvs/DLO/bin/python3(_PyImport_FindSharedFuncptr+0x8a)[0x60afda]
/home/mick/dev/.virtualenvs/DLO/bin/python3(_PyImport_LoadDynamicModuleWithSpec+0x12b)[0x60601b]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x606618]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyCFunction_Call+0x106)[0x4e9c56]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x6f74)[0x52ad74]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x52d2e3]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x5532)[0x529332]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x4a14)[0x528814]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x4a14)[0x528814]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x4a14)[0x528814]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x4a14)[0x528814]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalCodeEx+0x13b)[0x52e12b]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x4ebcc3]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyObject_Call+0x47)[0x5b7167]
/home/mick/dev/.virtualenvs/DLO/bin/python3(_PyObject_CallMethodIdObjArgs+0x17a)[0x5b7f8a]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyImport_ImportModuleLevelObject+0x778)[0x51ba98]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x5c7688]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyCFunction_Call+0x77)[0x4e9bc7]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyObject_Call+0x47)[0x5b7167]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_CallObjectWithKeywords+0x30)[0x523800]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalFrameEx+0x31bc)[0x526fbc]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x52d2e3]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyEval_EvalCode+0x1f)[0x52dfdf]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x5fd2c2]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyRun_InteractiveOneObject+0x2b1)[0x4583cd]
/home/mick/dev/.virtualenvs/DLO/bin/python3(PyRun_InteractiveLoopFlags+0xe8)[0x458576]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x4585d0]
/home/mick/dev/.virtualenvs/DLO/bin/python3[0x4cf26a]
/home/mick/dev/.virtualenvs/DLO/bin/python3(main+0xe1)[0x4cfe41]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f7acdced830]
/home/mick/dev/.virtualenvs/DLO/bin/python3(_start+0x29)[0x5d5f29]
======= Memory map: ========
00400000-007a8000 r-xp 00000000 fd:00 10095503 /home/mick/dev/.virtualenvs/DLO/bin/python3
009a8000-009aa000 r--p 003a8000 fd:00 10095503 /home/mick/dev/.virtualenvs/DLO/bin/python3
009aa000-00a41000 rw-p 003aa000 fd:00 10095503 /home/mick/dev/.virtualenvs/DLO/bin/python3
00a41000-00a72000 rw-p 00000000 00:00 0
00b3e000-00fba000 rw-p 00000000 00:00 0 [heap]
7f7abc000000-7f7abc021000 rw-p 00000000 00:00 0
7f7abc021000-7f7ac0000000 ---p 00000000 00:00 0
7f7ac2504000-7f7ac2509000 r-xp 00000000 fd:00 270289 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7f7ac2509000-7f7ac2708000 ---p 00005000 fd:00 270289 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7f7ac2708000-7f7ac2709000 r--p 00004000 fd:00 270289 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7f7ac2709000-7f7ac270a000 rw-p 00005000 fd:00 270289 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
7f7ac270a000-7f7ac270c000 r-xp 00000000 fd:00 270278 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7f7ac270c000-7f7ac290c000 ---p 00002000 fd:00 270278 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7f7ac290c000-7f7ac290d000 r--p 00002000 fd:00 270278 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7f7ac290d000-7f7ac290e000 rw-p 00003000 fd:00 270278 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
7f7ac290e000-7f7ac292f000 r-xp 00000000 fd:00 271696 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7f7ac292f000-7f7ac2b2e000 ---p 00021000 fd:00 271696 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7f7ac2b2e000-7f7ac2b2f000 r--p 00020000 fd:00 271696 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7f7ac2b2f000-7f7ac2b30000 rw-p 00021000 fd:00 271696 /usr/lib/x86_64-linux-gnu/libxcb.so.1.1.0
7f7ac2b30000-7f7ac2b41000 r-xp 00000000 fd:00 270291 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7f7ac2b41000-7f7ac2d40000 ---p 00011000 fd:00 270291 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7f7ac2d40000-7f7ac2d41000 r--p 00010000 fd:00 270291 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7f7ac2d41000-7f7ac2d42000 rw-p 00011000 fd:00 270291 /usr/lib/x86_64-linux-gnu/libXext.so.6.4.0
7f7ac2d42000-7f7ac2e77000 r-xp 00000000 fd:00 270274 /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7f7ac2e77000-7f7ac3077000 ---p 00135000 fd:00 270274 /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7f7ac3077000-7f7ac3078000 r--p 00135000 fd:00 270274 /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7f7ac3078000-7f7ac307c000 rw-p 00136000 fd:00 270274 /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0
7f7ac307c000-7f7ac449a000 r-xp 00000000 fd:00 263963 /usr/lib/nvidia-390/libnvidia-glcore.so.390.30
7f7ac449a000-7f7ac44bb000 rwxp 0141e000 fd:00 263963 /usr/lib/nvidia-390/libnvidia-glcore.so.390.30
7f7ac44bb000-7f7ac48f0000 r-xp 0143f000 fd:00 263963 /usr/lib/nvidia-390/libnvidia-glcore.so.390.30
7f7ac48f0000-7f7ac4af0000 ---p 01874000 fd:00 263963 /usr/lib/nvidia-390/libnvidia-glcore.so.390.30
7f7ac4af0000-7f7ac4e63000 rw-p 01874000 fd:00 263963 /usr/lib/nvidia-390/libnvidia-glcore.so.390.30
7f7ac4e63000-7f7ac4e7c000 rw-p 00000000 00:00 0
7f7ac4e7c000-7f7ac4e7f000 r-xp 00000000 fd:00 263949 /usr/lib/nvidia-390/tls/libnvidia-tls.so.390.30
7f7ac4e7f000-7f7ac507f000 ---p 00003000 fd:00 263949 /usr/lib/nvidia-390/tls/libnvidia-tls.so.390.30
7f7ac507f000-7f7ac5080000 rw-p 00003000 fd:00 263949 /usr/lib/nvidia-390/tls/libnvidia-tls.so.390.30
7f7ac5080000-7f7ac5087000 r-xp 00000000 fd:00 13631769 /lib/x86_64-linux-gnu/librt-2.23.so
7f7ac5087000-7f7ac5286000 ---p 00007000 fd:00 13631769 /lib/x86_64-linux-gnu/librt-2.23.so
7f7ac5286000-7f7ac5287000 r--p 00006000 fd:00 13631769 /lib/x86_64-linux-gnu/librt-2.23.so
7f7ac5287000-7f7ac5288000 rw-p 00007000 fd:00 13631769 /lib/x86_64-linux-gnu/librt-2.23.so
7f7ac5288000-7f7ac52b8000 r-xp 00000000 fd:00 10096331 /home/mick/dev/DLO/libtbbmalloc.so.2
7f7ac52b8000-7f7ac54b8000 ---p 00030000 fd:00 10096331 /home/mick/dev/DLO/libtbbmalloc.so.2
7f7ac54b8000-7f7ac54b9000 r--p 00030000 fd:00 10096331 /home/mick/dev/DLO/libtbbmalloc.so.2
7f7ac54b9000-7f7ac54bc000 rw-p 00031000 fd:00 10096331 /home/mick/dev/DLO/libtbbmalloc.so.2
7f7ac54bc000-7f7ac54df000 rw-p 00000000 00:00 0
7f7ac54df000-7f7ac5500000 r-xp 00000000 fd:00 262368 /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
7f7ac5500000-7f7ac56ff000 ---p 00021000 fd:00 262368 /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
7f7ac56ff000-7f7ac5700000 r--p 00020000 fd:00 262368 /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
7f7ac5700000-7f7ac5701000 rw-p 00021000 fd:00 262368 /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0
7f7ac5701000-7f7ac5706000 r-xp 00000000 fd:00 401668 /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so.1.0.0
7f7ac5706000-7f7ac5905000 ---p 00005000 fd:00 401668 /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so.1.0.0
7f7ac5905000-7f7ac5907000 rw-p 00004000 fd:00 401668 /usr/local/cuda-9.0/targets/x86_64-linux/lib/libOpenCL.so.1.0.0
7f7ac5907000-7f7ac59d0000 r-xp 00000000 fd:00 263965 /usr/lib/nvidia-390/libGL.so.390.30
7f7ac59d0000-7f7ac5a04000 rwxp 000c9000 fd:00 263965 /usr/lib/nvidia-390/libGL.so.390.30
7f7ac5a04000-7f7ac5a18000 r-xp 000fd000 fd:00 263965 /usr/lib/nvidia-390/libGL.so.390.30
7f7ac5a18000-7f7ac5c18000 ---p 00111000 fd:00 263965 /usr/lib/nvidia-390/libGL.so.390.30
7f7ac5c18000-7f7ac5c3d000 rw-p 00111000 fd:00 263965 /usr/lib/nvidia-390/libGL.so.390.30
7f7ac5c3d000-7f7ac5c44000 rw-p 00000000 00:00 0
7f7ac5c44000-7f7ac5c98000 r-xp 00000000 fd:00 10096330 /home/mick/dev/DLO/libtbb.so.2
7f7ac5c98000-7f7ac5e98000 ---p 00054000 fd:00 10096330 /home/mick/dev/DLO/libtbb.so.2
7f7ac5e98000-7f7ac5e99000 r--p 00054000 fd:00 10096330 /home/mick/dev/DLO/libtbb.so.2
7f7ac5e99000-7f7ac5e9d000 rw-p 00055000 fd:00 10096330 /home/mick/dev/DLO/libtbb.so.2
7f7ac5e9d000-7f7ac5e9f000 rw-p 00000000 00:00 0
7f7ac5e9f000-7f7ac81b2000 r-xp 00000000 fd:00 10096329 /home/mick/dev/DLO/libembree.so.2
7f7ac81b2000-7f7ac83b2000 ---p 02313000 fd:00 10096329 /home/mick/dev/DLO/libembree.so.2
7f7ac83b2000-7f7ac83b4000 r--p 02313000 fd:00 10096329 /home/mick/dev/DLO/libembree.so.2
7f7ac83b4000-7f7ac83e2000 rw-p 02315000 fd:00 10096329 /home/mick/dev/DLO/libembree.so.2
7f7ac83e2000-7f7ac83fd000 rw-p 00000000 00:00 0
7f7ac83fd000-7f7ac9a3a000 r-xp 00000000 fd:00 10096333 /home/mick/dev/DLO/pyluxcore.so
7f7ac9a3a000-7f7ac9c3a000 ---p 0163d000 fd:00 10096333 /home/mick/dev/DLO/pyluxcore.so
7f7ac9c3a000-7f7ac9cb9000 r--p 0163d000 fd:00 10096333 /home/mick/dev/DLO/pyluxcore.so
7f7ac9cb9000-7f7ac9e11000 rw-p 016bc000 fd:00 10096333 /home/mick/dev/DLO/pyluxcore.so
7f7ac9e11000-7f7ac9f0c000 rw-p 00000000 00:00 0
7f7ac9f0c000-7f7ac9f23000 r-xp 00000000 fd:00 271080 /usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
7f7ac9f23000-7f7aca122000 ---p 00017000 fd:00 271080 /usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
7f7aca122000-7f7aca123000 r--p 00016000 fd:00 271080 /usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
7f7aca123000-7f7aca124000 rw-p 00017000 fd:00 271080 /usr/lib/x86_64-linux-gnu/liblz4.so.1.7.1
7f7aca124000-7f7aca13b000 r-xp 00000000 fd:00 13631755 /lib/x86_64-linux-gnu/libresolv-2.23.so
7f7aca13b000-7f7aca33b000 ---p 00017000 fd:00 13631755 /lib/x86_64-linux-gnu/libresolv-2.23.so
7f7aca33b000-7f7aca33c000 r--p 00017000 fd:00 13631755 /lib/x86_64-linux-gnu/libresolv-2.23.so
7f7aca33c000-7f7aca33d000 rw-p 00018000 fd:00 13631755 /lib/x86_64-linux-gnu/libresolv-2.23.so
7f7aca33d000-7f7aca33f000 rw-p 00000000 00:00 0
7f7aca33f000-7f7aca355000 r-xp 00000000 fd:00 13636096 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7aca355000-7f7aca554000 ---p 00016000 fd:00 13636096 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7aca554000-7f7aca555000 rw-p 00015000 fd:00 13636096 /lib/x86_64-linux-gnu/libgcc_s.so.1
7f7aca555000-7f7aca6c7000 r-xp 00000000 fd:00 264200 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f7aca6c7000-7f7aca8c7000 ---p 00172000 fd:00 264200 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f7aca8c7000-7f7aca8d1000 r--p 00172000 fd:00 264200 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f7aca8d1000-7f7aca8d3000 rw-p 0017c000 fd:00 264200 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7f7aca8d3000-7f7aca8d7000 rw-p 00000000 00:00 0
7f7aca8d7000-7f7acaa45000 r-xp 00000000 fd:00 262269 /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0
7f7acaa45000-7f7acac45000 ---p 0016e000 fd:00 262269 /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0
7f7acac45000-7f7acac4b000 r--p 0016e000 fd:00 262269 /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0
7f7acac4b000-7f7acac4c000 rw-p 00174000 fd:00 262269 /usr/lib/x86_64-linux-gnu/libapt-pkg.so.5.0.0
7f7acac4c000-7f7acac90000 r-xp 00000000 fd:00 263377 /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so
7f7acac90000-7f7acae90000 ---p 00044000 fd:00 263377 /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so
7f7acae90000-7f7acae91000 r--p 00044000 fd:00 263377 /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so
7f7acae91000-7f7acae99000 rw-p 00045000 fd:00 263377 /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so
7f7acae99000-7f7acaeaa000 r-xp 00000000 fd:00 531028 /usr/lib/python3.5/lib-dynload/_json.cpython-35m-x86_64-linux-gnu.so
7f7acaeaa000-7f7acb0a9000 ---p 00011000 fd:00 531028 /usr/lib/python3.5/lib-dynload/_json.cpython-35m-x86_64-linux-gnu.so
7f7acb0a9000-7f7acb0aa000 r--p 00010000 fd:00 531028 /usr/lib/python3.5/lib-dynload/_json.cpython-35m-x86_64-linux-gnu.so
7f7acb0aa000-7f7acb0ab000 rw-p 00011000 fd:00 531028 /usr/lib/python3.5/lib-dynload/_json.cpython-35m-x86_64-linux-gnu.so
7f7acb0ab000-7f7acb0eb000 rw-p 00000000 00:00 0
7f7acb0eb000-7f7acb149000 r-xp 00000000 fd:00 13631725 /lib/x86_64-linux-gnu/libssl.so.1.0.0
7f7acb149000-7f7acb349000 ---p 0005e000 fd:00 13631725 /lib/x86_64-linux-gnu/libssl.so.1.0.0
7f7acb349000-7f7acb34d000 r--p 0005e000 fd:00 13631725 /lib/x86_64-linux-gnu/libssl.so.1.0.0
7f7acb34d000-7f7acb354000 rw-p 00062000 fd:00 13631725 /lib/x86_64-linux-gnu/libssl.so.1.0.0
7f7acb354000-7f7acb36b000 r-xp 00000000 fd:00 525080 /usr/lib/python3.5/lib-dynload/_ssl.cpython-35m-x86_64-linux-gnu.so
7f7acb36b000-7f7acb56b000 ---p 00017000 fd:00 525080 /usr/lib/python3.5/lib-dynload/_ssl.cpython-35m-x86_64-linux-gnu.so
7f7acb56b000-7f7acb56c000 r--p 00017000 fd:00 525080 /usr/lib/python3.5/lib-dynload/_ssl.cpython-35m-x86_64-linux-gnu.so
7f7acb56c000-7f7acb571000 rw-p 00018000 fd:00 525080 /usr/lib/python3.5/lib-dynload/_ssl.cpython-35m-x86_64-linux-gnu.so
7f7acb571000-7f7acb771000 rw-p 00000000 00:00 0
7f7acb771000-7f7acb98b000 r-xp 00000000 fd:00 13631866 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f7acb98b000-7f7acbb8a000 ---p 0021a000 fd:00 13631866 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f7acbb8a000-7f7acbba6000 r--p 00219000 fd:00 13631866 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f7acbba6000-7f7acbbb2000 rw-p 00235000 fd:00 13631866 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f7acbbb2000-7f7acbbb5000 rw-p 00000000 00:00 0
7f7acbbb5000-7f7acbbba000 r-xp 00000000 fd:00 525086 /usr/lib/python3.5/lib-dynload/_hashlib.cpython-35m-x86_64-linux-gnu.so
7f7acbbba000-7f7acbdba000 ---p 00005000 fd:00 525086 /usr/lib/python3.5/lib-dynload/_hashlib.cpython-35m-x86_64-linux-gnu.so
7f7acbdba000-7f7acbdbb000 r--p 00005000 fd:00 525086 /usr/lib/python3.5/lib-dynload/_hashlib.cpython-35m-x86_64-linux-gnu.so
7f7acbdbb000-7f7acbdbc000 rw-p 00006000 fd:00 525086 /usr/lib/python3.5/lib-dynload/_hashlib.cpython-35m-x86_64-linux-gnu.so
7f7acbdbc000-7f7acbe1d000 rw-p 00000000 00:00 0
7f7acbe1d000-7f7acbe3e000 r-xp 00000000 fd:00 13636125 /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7f7acbe3e000-7f7acc03d000 ---p 00021000 fd:00 13636125 /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7f7acc03d000-7f7acc03e000 r--p 00020000 fd:00 13636125 /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7f7acc03e000-7f7acc03f000 rw-p 00021000 fd:00 13636125 /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7f7acc03f000-7f7acc046000 r-xp 00000000 fd:00 531030 /usr/lib/python3.5/lib-dynload/_lzma.cpython-35m-x86_64-linux-gnu.so
7f7acc046000-7f7acc245000 ---p 00007000 fd:00 531030 /usr/lib/python3.5/lib-dynload/_lzma.cpython-35m-x86_64-linux-gnu.so
7f7acc245000-7f7acc246000 r--p 00006000 fd:00 531030 /usr/lib/python3.5/lib-dynload/_lzma.cpython-35m-x86_64-linux-gnu.so
7f7acc246000-7f7acc248000 rw-p 00007000 fd:00 531030 /usr/lib/python3.5/lib-dynload/_lzma.cpython-35m-x86_64-linux-gnu.so
7f7acc248000-7f7acc257000 r-xp 00000000 fd:00 13636057 /lib/x86_64-linux-gnu/libbz2.so.1.0.4
7f7acc257000-7f7acc456000 ---p 0000f000 fd:00 13636057 /lib/x86_64-linux-gnu/libbz2.so.1.0.4
7f7acc456000-7f7acc457000 r--p 0000e000 fd:00 13636057 /lib/x86_64-linux-gnu/libbz2.so.1.0.4
7f7acc457000-7f7acc458000 rw-p 0000f000 fd:00 13636057 /lib/x86_64-linux-gnu/libbz2.so.1.0.4
7f7acc458000-7f7acc45c000 r-xp 00000000 fd:00 531021 /usr/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
7f7acc45c000-7f7acc65b000 ---p 00004000 fd:00 531021 /usr/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
7f7acc65b000-7f7acc65c000 r--p 00003000 fd:00 531021 /usr/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
7f7acc65c000-7f7acc65d000 rw-p 00004000 fd:00 531021 /usr/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so
7f7acc65d000-7f7acc75d000 rw-p 00000000 00:00 0
7f7acc75d000-7f7acc782000 r-xp 00000000 fd:00 13636230 /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f7acc782000-7f7acc981000 ---p 00025000 fd:00 13636230 /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f7acc981000-7f7acc985000 r--p 00024000 fd:00 13636230 /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f7acc985000-7f7acc986000 rw-p 00028000 fd:00 13636230 /lib/x86_64-linux-gnu/libtinfo.so.5.9
7f7acc986000-7f7acc9c3000 r-xp 00000000 fd:00 13636209 /lib/x86_64-linux-gnu/libreadline.so.6.3
7f7acc9c3000-7f7accbc3000 ---p 0003d000 fd:00 13636209 /lib/x86_64-linux-gnu/libreadline.so.6.3
7f7accbc3000-7f7accbc5000 r--p 0003d000 fd:00 13636209 /lib/x86_64-linux-gnu/libreadline.so.6.3
7f7accbc5000-7f7accbcb000 rw-p 0003f000 fd:00 13636209 /lib/x86_64-linux-gnu/libreadline.so.6.3
7f7accbcb000-7f7accbcc000 rw-p 00000000 00:00 0
7f7accbcc000-7f7accbd2000 r-xp 00000000 fd:00 531016 /usr/lib/python3.5/lib-dynload/readline.cpython-35m-x86_64-linux-gnu.so
7f7accbd2000-7f7accdd1000 ---p 00006000 fd:00 531016 /usr/lib/python3.5/lib-dynload/readline.cpython-35m-x86_64-linux-gnu.so
7f7accdd1000-7f7accdd2000 r--p 00005000 fd:00 531016 /usr/lib/python3.5/lib-dynload/readline.cpython-35m-x86_64-linux-gnu.so
7f7accdd2000-7f7accdd4000 rw-p 00006000 fd:00 531016 /usr/lib/python3.5/lib-dynload/readline.cpython-35m-x86_64-linux-gnu.so
7f7accdd4000-7f7acce54000 rw-p 00000000 00:00 0
7f7acce54000-7f7acd17a000 r--p 00000000 fd:00 264467 /usr/lib/locale/locale-archive
7f7acd17a000-7f7acd282000 r-xp 00000000 fd:00 13631493 /lib/x86_64-linux-gnu/libm-2.23.so
7f7acd282000-7f7acd481000 ---p 00108000 fd:00 13631493 /lib/x86_64-linux-gnu/libm-2.23.so
7f7acd481000-7f7acd482000 r--p 00107000 fd:00 13631493 /lib/x86_64-linux-gnu/libm-2.23.so
7f7acd482000-7f7acd483000 rw-p 00108000 fd:00 13631493 /lib/x86_64-linux-gnu/libm-2.23.so
7f7acd483000-7f7acd49c000 r-xp 00000000 fd:00 13636249 /lib/x86_64-linux-gnu/libz.so.1.2.8
7f7acd49c000-7f7acd69b000 ---p 00019000 fd:00 13636249 /lib/x86_64-linux-gnu/libz.so.1.2.8
7f7acd69b000-7f7acd69c000 r--p 00018000 fd:00 13636249 /lib/x86_64-linux-gnu/libz.so.1.2.8
7f7acd69c000-7f7acd69d000 rw-p 00019000 fd:00 13636249 /lib/x86_64-linux-gnu/libz.so.1.2.8
7f7acd69d000-7f7acd6c3000 r-xp 00000000 fd:00 13636089 /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7f7acd6c3000-7f7acd8c3000 ---p 00026000 fd:00 13636089 /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7f7acd8c3000-7f7acd8c5000 r--p 00026000 fd:00 13636089 /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7f7acd8c5000-7f7acd8c6000 rw-p 00028000 fd:00 13636089 /lib/x86_64-linux-gnu/libexpat.so.1.6.0
7f7acd8c6000-7f7acd8c8000 r-xp 00000000 fd:00 13631758 /lib/x86_64-linux-gnu/libutil-2.23.so
7f7acd8c8000-7f7acdac7000 ---p 00002000 fd:00 13631758 /lib/x86_64-linux-gnu/libutil-2.23.so
7f7acdac7000-7f7acdac8000 r--p 00001000 fd:00 13631758 /lib/x86_64-linux-gnu/libutil-2.23.so
7f7acdac8000-7f7acdac9000 rw-p 00002000 fd:00 13631758 /lib/x86_64-linux-gnu/libutil-2.23.so
7f7acdac9000-7f7acdacc000 r-xp 00000000 fd:00 13631753 /lib/x86_64-linux-gnu/libdl-2.23.so
7f7acdacc000-7f7acdccb000 ---p 00003000 fd:00 13631753 /lib/x86_64-linux-gnu/libdl-2.23.so
7f7acdccb000-7f7acdccc000 r--p 00002000 fd:00 13631753 /lib/x86_64-linux-gnu/libdl-2.23.so
7f7acdccc000-7f7acdccd000 rw-p 00003000 fd:00 13631753 /lib/x86_64-linux-gnu/libdl-2.23.so
7f7acdccd000-7f7acde8d000 r-xp 00000000 fd:00 13631751 /lib/x86_64-linux-gnu/libc-2.23.so
7f7acde8d000-7f7ace08d000 ---p 001c0000 fd:00 13631751 /lib/x86_64-linux-gnu/libc-2.23.so
7f7ace08d000-7f7ace091000 r--p 001c0000 fd:00 13631751 /lib/x86_64-linux-gnu/libc-2.23.so
7f7ace091000-7f7ace093000 rw-p 001c4000 fd:00 13631751 /lib/x86_64-linux-gnu/libc-2.23.so
7f7ace093000-7f7ace097000 rw-p 00000000 00:00 0
7f7ace097000-7f7ace0af000 r-xp 00000000 fd:00 13631750 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f7ace0af000-7f7ace2ae000 ---p 00018000 fd:00 13631750 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f7ace2ae000-7f7ace2af000 r--p 00017000 fd:00 13631750 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f7ace2af000-7f7ace2b0000 rw-p 00018000 fd:00 13631750 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f7ace2b0000-7f7ace2b4000 rw-p 00000000 00:00 0
7f7ace2b4000-7f7ace2da000 r-xp 00000000 fd:00 13631749 /lib/x86_64-linux-gnu/ld-2.23.so
7f7ace2fe000-7f7ace33e000 rw-p 00000000 00:00 0
7f7ace36f000-7f7ace4b5000 rw-p 00000000 00:00 0
7f7ace4d1000-7f7ace4d2000 rw-p 00000000 00:00 0
7f7ace4d2000-7f7ace4d9000 r--s 00000000 fd:00 526716 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f7ace4d9000-7f7ace4da000 r--p 00025000 fd:00 13631749 /lib/x86_64-linux-gnu/ld-2.23.so
7f7ace4da000-7f7ace4db000 rw-p 00026000 fd:00 13631749 /lib/x86_64-linux-gnu/ld-2.23.so
7f7ace4db000-7f7ace4dc000 rw-p 00000000 00:00 0
7ffd255d7000-7ffd255f8000 rw-p 00000000 00:00 0 [stack]
7ffd255f8000-7ffd255fb000 r--p 00000000 00:00 0 [vvar]
7ffd255fb000-7ffd255fd000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
[1] 10643 abort (core dumped) /home/mick/dev/.virtualenvs/DLO/bin/python3
Re: get started with python API
At the moment I'm working with a command line which scp my script to the linux machine, ssh executes it, scp the image back, and displays is locally. That's ok for now.
Re: get started with python API
Still I cannot really start since I'm lacking basic knowledge, and cannot find documentation.
Where can I find which properties I can set for which objects? I found documentation for the blender python API. How relevant is this for LuxCore API?
In the code I read that sky2 and sun can be linked? How?
Thanks for gettin me started.
Maybe you can use my noob questions as indicators for setting up a documentation. I'm willing to contribute once I start to understand.
Where can I find which properties I can set for which objects? I found documentation for the blender python API. How relevant is this for LuxCore API?
In the code I read that sky2 and sun can be linked? How?
Thanks for gettin me started.
Maybe you can use my noob questions as indicators for setting up a documentation. I'm willing to contribute once I start to understand.
Re: get started with python API
Unfortunately I can't help you with the dev environment/IPython problems, sorry.
In the SDL manual linked above you can see that the sun and sky2 both have a "dir" property which controls where the sun is positioned.
Usually it is best to use the same vector for both, that's what the "linking" does.
They are documented in the Scene Description Language Manual.
The Blender Python API is completely independent from LuxCore.I found documentation for the blender python API. How relevant is this for LuxCore API?
This is a BlendLuxCore specific concept.
In the SDL manual linked above you can see that the sun and sky2 both have a "dir" property which controls where the sun is positioned.
Usually it is best to use the same vector for both, that's what the "linking" does.
Indeed, we could use a lot more noob questionsMaybe you can use my noob questions as indicators for setting up a documentation. I'm willing to contribute once I start to understand.
Re: get started with python API
Thanks again. The SDL manual was exactly what I was looking for.
Now the next question: How do I control the power of the sun and environmental light (sky)? It seems to be normalized when change the gain, i.e. ".1 .1 .1" is the same as "1. 1. 1.". How can I deactivate this?
And is there any means to calibrate gain with real sun power? I want to specify x watts per target area from direct sun + y from environment.
Now the next question: How do I control the power of the sun and environmental light (sky)? It seems to be normalized when change the gain, i.e. ".1 .1 .1" is the same as "1. 1. 1.". How can I deactivate this?
And is there any means to calibrate gain with real sun power? I want to specify x watts per target area from direct sun + y from environment.
Re: get started with python API
This is probably the tonemapper auto-adjusting to the different brightness.
You will have to specify an imagepipeline, I left it out of the example to keep it small.
The default imagepipeline uses the tonemapper TONEMAP_AUTOLINEAR.
You can specify a custom imagepipeline by adding this to the config_props in the example:
Code: Select all
# The first plugin: the linear tonemapper multiplies the pixel colors with the scale
film.imagepipelines.0.0.type = TONEMAP_LINEAR
film.imagepipelines.0.0.scale = 0.0001
# The second plugin: gamma correction
film.imagepipelines.0.1.type = GAMMA_CORRECTION
film.imagepipelines.0.1.value = 2.2
(In "film.imagepipelines.0.1", the first number is the imagepipeline index, the second is the plugin index)
As far as I know it is already using real-world sun power, but I don't know how this value was chosen.
Maybe Dade can tell you more about this, or you can have a look at the LuxCore code of the sun light source.
I found this old thread on the topic: http://www.luxrender.net/forum/viewtopi ... =8&t=13276
By the way, you might be interested in the IRRADIANCE AOV: http://www.luxrender.net/forum/viewtopi ... 40#p109492