luxcorerender / luxcore Goto Github PK
View Code? Open in Web Editor NEWLuxCore source repository
License: Apache License 2.0
LuxCore source repository
License: Apache License 2.0
It works but it is a useless work.
Check if RenderEngine GetTotalSampleCount(), GetTotalSamplesSec() and GetRenderingTime() methods can be replace with the one in film class.
Add the support for a new BVH builder with spatial split (aka SBVH) based on Embree RTCBuildQuality RTC_BUILD_QUALITY_HIGH.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Write a release notes page at wiki.luxcorerender.org.
A "Singular matrix in MatrixInvert" exception is thrown in LuxCoreUI when the up vector and the look at vector are the same. Avoid this situation.
Optimize ImageMap class serialization code to run faster.
Verify Film convergence test code.
Use boost::filesystem::extension() whenever possible (instead of string methods to check the file extension).
Add the support for rendering progress save/resume.
Like other FromProperties() methods.
Write wiki documentation for pyluxcoreconsole and pyluxcoremerge.
I'm setting the visibility like this:
scene.lights.__WORLD_BACKGROUND_LIGHT__.visibility.indirect.diffuse.enable = 1
scene.lights.__WORLD_BACKGROUND_LIGHT__.visibility.indirect.glossy.enable = 1
scene.lights.__WORLD_BACKGROUND_LIGHT__.visibility.indirect.specular.enable = 0
scene.zip
But when I test it with a sphere with mirror material (specular, right?) the sky2 is still visible in the reflection.
Do I misunderstand how this should work or is there a bug?
Add the support for all periodic save parameters to LuxCoreUI.
Sometime there is a difference in average image luminance when rendering with PATHOCL+METROPOLIS and PATHOCL+RANDOM/SOBOL or PATHCPU+RANDOM/SOBOL/METROPOLIS.
This may be explained with the startup bias due to large number of tasks in OpenCL but may be also a bug.
Upload LuxCore API oxygen documentation (i.e. the reference manual) to the ftp.luxcorerender.org web site.
Reduce size of Film file files and time for loading/saving.
.scn file:
scene.camera.cliphither = 0.00100000005
scene.camera.clipyon = 1.00000002e+30
scene.camera.shutteropen = 0
scene.camera.shutterclose = 1
scene.camera.lookat.orig = -2.65271783 -3.84124851 2.26758385
scene.camera.lookat.target = -2.14166713 -3.0918684 1.84656537
scene.camera.up = 0.237212077 0.347831845 0.90705204
scene.camera.screenwindow = -1 1 -0.5625 0.5625
scene.camera.lensradius = 0
scene.camera.focaldistance = 10
scene.camera.autofocus.enable = 0
scene.camera.type = "perspective"
scene.camera.oculusrift.barrelpostpro.enable = 0
scene.camera.fieldofview = 49.1343422
scene.lights.SunLAMPSUN.gain = 1 1 1
scene.lights.SunLAMPSUN.transformation = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
scene.lights.SunLAMPSUN.samples = -1
scene.lights.SunLAMPSUN.id = 0
scene.lights.SunLAMPSUN.visibility.indirect.diffuse.enable = 1
scene.lights.SunLAMPSUN.visibility.indirect.glossy.enable = 1
scene.lights.SunLAMPSUN.visibility.indirect.specular.enable = 1
scene.lights.SunLAMPSUN.type = "sun"
scene.lights.SunLAMPSUN.dir = -0.79181087 0.156163216 0.59046483
scene.lights.SunLAMPSUN.turbidity = 2.20000005
scene.lights.SunLAMPSUN.relsize = 1
scene.lights.__WORLD_BACKGROUND_LIGHT__.gain = 1 1 1
scene.lights.__WORLD_BACKGROUND_LIGHT__.transformation = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
scene.lights.__WORLD_BACKGROUND_LIGHT__.samples = -1
scene.lights.__WORLD_BACKGROUND_LIGHT__.id = 0
scene.lights.__WORLD_BACKGROUND_LIGHT__.visibility.indirect.diffuse.enable = 1
scene.lights.__WORLD_BACKGROUND_LIGHT__.visibility.indirect.glossy.enable = 1
scene.lights.__WORLD_BACKGROUND_LIGHT__.visibility.indirect.specular.enable = 1
scene.lights.__WORLD_BACKGROUND_LIGHT__.type = "sky2"
scene.lights.__WORLD_BACKGROUND_LIGHT__.dir = -0.79181087 0.156163216 0.59046483
scene.lights.__WORLD_BACKGROUND_LIGHT__.turbidity = 2.20000005
scene.lights.__WORLD_BACKGROUND_LIGHT__.groundalbedo = 0.5 0.5 0.5
scene.lights.__WORLD_BACKGROUND_LIGHT__.ground.enable = 0
scene.lights.__WORLD_BACKGROUND_LIGHT__.ground.color = 0.5 0.5 0.5
scene.lights.__WORLD_BACKGROUND_LIGHT__.ground.autoscale = 1
scene.textures.Imagemap_ground_tex.type = "imagemap"
scene.textures.Imagemap_ground_tex.file = "imagemap-00000.png"
scene.textures.Imagemap_ground_tex.gain = 1
scene.textures.Imagemap_ground_tex.gamma = 1
scene.textures.Imagemap_ground_tex.storage = "byte"
scene.textures.Imagemap_ground_tex.mapping.type = "uvmapping2d"
scene.textures.Imagemap_ground_tex.mapping.uvscale = 1 -1
scene.textures.Imagemap_ground_tex.mapping.uvdelta = 0 1
scene.textures.Implicit-ConstFloatTexture3-881ae599-dec1-4f30-989a-c692d3b184a4.type = "constfloat3"
scene.textures.Implicit-ConstFloatTexture3-881ae599-dec1-4f30-989a-c692d3b184a4.value = 0.649069846 0.0093759466 0.0093759466
scene.textures.Implicit-ConstFloatTexture3-bfe1f3bb-43ec-4f4a-8819-a80fd83365cd.type = "constfloat3"
scene.textures.Implicit-ConstFloatTexture3-bfe1f3bb-43ec-4f4a-8819-a80fd83365cd.value = 0.00471933186 0.172631368 0.0235267561
scene.textures.Pointer_Material_pointer.type = "checkerboard3d"
scene.textures.Pointer_Material_pointer.texture1 = "Implicit-ConstFloatTexture3-881ae599-dec1-4f30-989a-c692d3b184a4"
scene.textures.Pointer_Material_pointer.texture2 = "Implicit-ConstFloatTexture3-bfe1f3bb-43ec-4f4a-8819-a80fd83365cd"
scene.textures.Pointer_Material_pointer.mapping.type = "globalmapping3d"
scene.textures.Pointer_Material_pointer.mapping.transformation = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
scene.textures.Implicit-ConstFloatTexture-ef69bdff-1bc3-4be7-bb2e-bca6b79eebd1.type = "constfloat1"
scene.textures.Implicit-ConstFloatTexture-ef69bdff-1bc3-4be7-bb2e-bca6b79eebd1.value = 0
scene.textures.Implicit-ConstFloatTexture3-2e1ede90-1938-43ab-b806-1e383e697382.type = "constfloat3"
scene.textures.Implicit-ConstFloatTexture3-2e1ede90-1938-43ab-b806-1e383e697382.value = 0 0 0
scene.textures.Implicit-ConstFloatTexture-2cd14307-e916-48fa-aa61-d1e35aba96d3.type = "constfloat1"
scene.textures.Implicit-ConstFloatTexture-2cd14307-e916-48fa-aa61-d1e35aba96d3.value = 0
scene.textures.Implicit-ConstFloatTexture3-923c287d-2942-43ea-941c-0c3b1d55e840.type = "constfloat3"
scene.textures.Implicit-ConstFloatTexture3-923c287d-2942-43ea-941c-0c3b1d55e840.value = 1 1 1
scene.textures.Implicit-ConstFloatTexture-474db1a5-3fc1-4334-b5e6-3ee09ed9fa07.type = "constfloat1"
scene.textures.Implicit-ConstFloatTexture-474db1a5-3fc1-4334-b5e6-3ee09ed9fa07.value = 0.504559278
scene.materials.groundSURFACE.type = "roughmatte"
scene.materials.groundSURFACE.kd = "Imagemap_ground_tex"
scene.materials.groundSURFACE.sigma = "Implicit-ConstFloatTexture-ef69bdff-1bc3-4be7-bb2e-bca6b79eebd1"
scene.materials.groundSURFACE.id = 3364224
scene.materials.groundSURFACE.emission.gain = 1 1 1
scene.materials.groundSURFACE.emission.power = 0
scene.materials.groundSURFACE.emission.efficency = 0
scene.materials.groundSURFACE.emission.theta = 90
scene.materials.groundSURFACE.emission.samples = -1
scene.materials.groundSURFACE.emission.id = 0
scene.materials.groundSURFACE.visibility.indirect.diffuse.enable = 1
scene.materials.groundSURFACE.visibility.indirect.glossy.enable = 1
scene.materials.groundSURFACE.visibility.indirect.specular.enable = 1
scene.materials.groundSURFACE.shadowcatcher.enable = 0
scene.materials.groundSURFACE.shadowcatcher.onlyinfinitelights = 0
scene.materials.__BLACK__.type = "matte"
scene.materials.__BLACK__.kd = "Implicit-ConstFloatTexture3-2e1ede90-1938-43ab-b806-1e383e697382"
scene.materials.__BLACK__.id = 6728256
scene.materials.__BLACK__.emission.gain = 1 1 1
scene.materials.__BLACK__.emission.power = 0
scene.materials.__BLACK__.emission.efficency = 0
scene.materials.__BLACK__.emission.theta = 90
scene.materials.__BLACK__.emission.samples = -1
scene.materials.__BLACK__.emission.id = 0
scene.materials.__BLACK__.visibility.indirect.diffuse.enable = 1
scene.materials.__BLACK__.visibility.indirect.glossy.enable = 1
scene.materials.__BLACK__.visibility.indirect.specular.enable = 1
scene.materials.__BLACK__.shadowcatcher.enable = 0
scene.materials.__BLACK__.shadowcatcher.onlyinfinitelights = 0
scene.materials.Matte__Material_Material_mat.type = "roughmatte"
scene.materials.Matte__Material_Material_mat.kd = "Pointer_Material_pointer"
scene.materials.Matte__Material_Material_mat.sigma = "Implicit-ConstFloatTexture-2cd14307-e916-48fa-aa61-d1e35aba96d3"
scene.materials.Matte__Material_Material_mat.id = 10034367
scene.materials.Matte__Material_Material_mat.emission.gain = 1 1 1
scene.materials.Matte__Material_Material_mat.emission.power = 0
scene.materials.Matte__Material_Material_mat.emission.efficency = 0
scene.materials.Matte__Material_Material_mat.emission.theta = 90
scene.materials.Matte__Material_Material_mat.emission.samples = -1
scene.materials.Matte__Material_Material_mat.emission.id = 0
scene.materials.Matte__Material_Material_mat.visibility.indirect.diffuse.enable = 1
scene.materials.Matte__Material_Material_mat.visibility.indirect.glossy.enable = 1
scene.materials.Matte__Material_Material_mat.visibility.indirect.specular.enable = 1
scene.materials.Matte__Material_Material_mat.shadowcatcher.enable = 0
scene.materials.Matte__Material_Material_mat.shadowcatcher.onlyinfinitelights = 0
scene.materials.MaterialSURFACE.type = "mix"
scene.materials.MaterialSURFACE.material1 = "__BLACK__"
scene.materials.MaterialSURFACE.material2 = "Matte__Material_Material_mat"
scene.materials.MaterialSURFACE.amount = "Implicit-ConstFloatTexture-474db1a5-3fc1-4334-b5e6-3ee09ed9fa07"
scene.materials.MaterialSURFACE.id = 13398304
scene.materials.MaterialSURFACE.emission.gain = 1 1 1
scene.materials.MaterialSURFACE.emission.power = 100
scene.materials.MaterialSURFACE.emission.efficency = 17
scene.materials.MaterialSURFACE.emission.theta = 90
scene.materials.MaterialSURFACE.emission.samples = -1
scene.materials.MaterialSURFACE.emission.id = 0
scene.materials.MaterialSURFACE.emission = "Implicit-ConstFloatTexture3-923c287d-2942-43ea-941c-0c3b1d55e840"
scene.materials.MaterialSURFACE.visibility.indirect.diffuse.enable = 1
scene.materials.MaterialSURFACE.visibility.indirect.glossy.enable = 1
scene.materials.MaterialSURFACE.visibility.indirect.specular.enable = 1
scene.materials.MaterialSURFACE.shadowcatcher.enable = 0
scene.materials.MaterialSURFACE.shadowcatcher.onlyinfinitelights = 0
scene.objects.Plane000.material = "groundSURFACE"
scene.objects.Plane000.ply = "mesh-00000.ply"
scene.objects.Plane000.transformation = 2.6944859 0 0 0 0 2.6944859 0 0 0 0 2.6944859 0 0 0 0 1
scene.objects.Sphere000.material = "MaterialSURFACE"
scene.objects.Sphere000.ply = "mesh-00001.ply"
scene.objects.Sphere000.transformation = 0.658479452 0 0 0 0 0.658479452 0 0 0 0 0.658479452 0 -0.595433474 -0.957952261 0.484843493 1
I just updated to the latest LuxCore and somewhere in the last commits this regression happened I think.
I don't know what the last working commit was, but I think the one I had before was around 208f71b.
The problem: When I put a light emitting material on the LuxBall, the intialization takes a very long time (singlethreaded apparently). Before the regression this was instant, no noticeable difference between light emitting materials and non-light-emitting.
Here's a test scene:
testscene.zip
And here's the CPU usage during the startup (on the left it starts, on the right the render starts with all cores)
This is the log:
[SDL][4.850] Material definition: Material__001SURFACE
[SDL][4.852] The Luxball000 object is a light sources with 85824 triangles
[SDL][36.040] Scene objects count: 1
[SDL][36.041] The Luxball__ring000 object is a light sources with 12386 triangles
[SDL][40.490] Scene objects count: 3
Tested on Linux 64 bit no OpenCL.
P.S. once the render runs, I can move around the scene normally (very fast).
Continued from: https://forums.luxcorerender.org/viewtopic.php?f=5&t=19&p=323#p320
Any scene I try crashes when I use TILEPATH engine.
Example: testfile.zip
I exported this simple scene with FILESAVER. When I try to start it with luxcoreui, it closes and the end of the log shows this:
[LuxRays][0.059] Adding DataSet accelerator: EMBREE
[LuxRays][0.059] Total vertex count: 4
[LuxRays][0.059] Total triangle count: 2
./bin/luxcoreui: symbol lookup error: ./bin/luxcoreui: undefined symbol: rtcNewInstance2
Maybe my build is messed up? I'll try a full rebuild.
edit: Did not help.
When started from Blender it crashes with a SIGSEGV when I try to stop the render.
By the way, it would make my life much easier if LuxCore would try to find files with incorrect filepaths in the current directory as a fallback.
(E.g. if "scene.scn" is not at the specified path that was set by FILESAVER, try to find it in the folder where the root render.cfg lies)
Video: https://youtu.be/rsjq0loY-y0 (I try to move a face of the cube)
Scene: crash.zip
Happens on Windows and Linux.
Write a command line tool for merging .flm (and .rsm).
LuxCoreRender standalone version is missing pyluxcore.so
Move most of serialization Boost code form header to source files.
LuxCoreUI restart rendering doesn't reset pass count with PATHCPU.
Add the support for periodic save of a resume rendering file.
Add also "safe" save (i.e. save on a temporary name, rename the old file, rename the temporary file).
Add the imagemap wrapping modes that were supported in Classic Lux: http://www.luxrender.net/wiki/Scene_file_format_1.0#imagemap
How to wrap the texture using "repeat", "black" (black beyond texture) or "clamp" (clamps to border color)
Add the support for saving the complete scene definition in a binary format.
Use boost::bimap instead of 2 hast tables, sets, etc. in all definition repositories inside Scene class.
Python crashes when calling sys.exit() if pyluxcore.Init() was called with an call back. This is due to pyluxcore keeping a reference to the callback in a static boost::python::object. Everything works fine if python code exit normally without calling sys.exit().
I haven't yet found a work around to this problem.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
I just discovered that Travis CI can upload the compiled binaries to create releases on github:
Now all we need is a cross compiler so Travis can also build Windows binaries for us and we'll never again have to package a release by hand...
Since the merge with the new spectral rendering code I get a syntax error message with fresnelpreset and fresnelsopra textures .
Example material (tex 1 works, tex2 and tex 3 Syntax error):
scene.textures.tex3.type = fresnelsopra
scene.textures.tex3.file = scenes/luxball/Au.nk
scene.textures.tex2.type = fresnelpreset
scene.textures.tex2.name = copper
scene.textures.tex1.type = fresnelcolor
scene.textures.tex1.kr = 0.7 0.0 0.0
scene.materials.shell.type = metal2
scene.materials.shell.fresnel = tex3
scene.materials.shell.uroughness = 0.05
scene.materials.shell.vroughness = 0.05
accelerator.bvh.builder.type = EMBREE_MORTON doesn't work with the latest Embree. It may be a Embree bug.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Centralize the code for opening/creating the streams used for serialization in a single place to avoid to repeat always the same code.
When I start a final render in Blender, LuxCore can't write the output image after a certain render time (approx. 10 minutes).
Blender LuxCore Log:
[...]
[LuxCore][25.531] [LinearToneMap] Kernels compilation time: 47ms
[LuxCore][623.922] Outputting film: RGB_IMAGEPIPELINE.png type: 2
Traceback (most recent call last):
File "F:\Users\Michael\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\BlendLuxCore\engine\__init__.py", line 115, in render
stats = utils_render.refresh(self, scene, config, draw_film, time_until_film_refresh)
File "F:\Users\Michael\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons\BlendLuxCore\utils\render.py", line 25, in refresh
engine._session.UpdateStats()
RuntimeError: Error while writing an output type in Film::Output(): e0594766-e2cf-4246-b4ba-84bb197a903c.png
ERROR: Error while writing an output type in Film::Output(): e0594766-e2cf-4246-b4ba-84bb197a903c.png
[LuxCore][624.343] [GeForce GTX 1080 Intersect] Memory used for OpenCL image pipeline: 81076Kbytes
LuxCoreRenderEngine del
Error: Error while writing an output type in Film::Output(): e0594766-e2cf-4246-b4ba-84bb197a903c.png
Test scene:
full_export.zip
Add the support for motion blurred instanced objects.
I noticed a red fringe on a sphere with dispersion enabled (cauchyc 0.05).
Higher cauchy c value (0.2) makes it stronger:
I went back to 765fb61 and it shows the same red fringe.
So I do not think it was introduced in the latest glass sampling changes.
Classic API does not show this kind of fringe.
Testscene:
00019.zip
Calling Scene::RemoveUnused*() on a scene loaded form a resume rendering file trigger a crash.
Add the support for new Embree multi-keys motion blur.
Add an image plugin to write over the rendered image custom text and statistics.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
LuxCoreUI should not use call OpenCL render engines when LuxCore is compiled without OpenCL support. For instance by pressing "1".
Add the support for an option for saving binary file format (i.e. .bcf, serialized RenderConfig) with FILESAVER render engine.
Embree supports both displacement and subdivision: https://embree.github.io/api.html
Would it be a good idea to make that usable in LuxCore?
Probably with dedicated shapes as wrappers.
During my online research I also stumbled about this issue: RenderKit/embree#163
Might be something to look out for if LuxCore uses dynamic scenes.
Hi, it would be great if LuxCore would output a message that the right sampler is TILEPATHSAMPLER and not simply crash without output.
Similar to the other engines that require a special sampler.
Edit: the same happens with TILEPATHOCL and TILEPATHCPU engines.
Edit 2: weird, when I do a final render and use TILEPATHOCL with incorrect sampler, I get the desired runtime error:
RuntimeError: (RT)TILEPATHOCL render engine can use only TILEPATHSAMPLER
Seems I'm handling the error wrong during viewport renders, let me check.
During viewport render it also prints the runtime error to console, but afterwards Blender crashes:
Traceback (most recent call last):
File "F:\Users\Simon_2\AppData\Roaming\Blender Foundation\Blender\2.79\scripts
\addons\BlendLuxCore\engine\__init__.py", line 82, in view_update_lux
self._session.Start()
RuntimeError: (RT)TILEPATHOCL render engine can use only TILEPATHSAMPLER
Error: EXCEPTION_ACCESS_VIOLATION
F:\Users\Simon_2>
This is the code:
try:
self.update_stats("Creating Render Session...", "")
self._session = self._exporter.create_session(context.scene, context)
self._session.Start()
self.update_stats("Viewport Render", "")
return
except Exception as error:
self.update_stats("Error: ", str(error))
import traceback
traceback.print_exc()
Add the support for editing halt conditions while the rendering is ongoing.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.