Discussion related to the LuxCore functionality, implementations and API.
-
Dade
- Posts: 4888
- Joined: Mon Dec 04, 2017 8:36 pm
- Location: Italy
Post
by Dade » Sun Dec 31, 2017 10:44 am
Spectral rendering done in LuxCore
(who is used to old LuxRender renderings can easily spot the rainbow-ish white on early stage of the rendering)
This is just the result of a test (direct light only) to check if the general idea can work. I think it is worth some further investigation. It would be the perfect solution:
- it is optional (no cost for normal RGB rendering);
- it does require very little code changes;
- it works on GPUs;
- it works with path, bidir and everything else.
P.S. The pink elephant is a quote from:
http://www.luxrender.net/forum/viewtopi ... =8&t=12454
-
Sharlybg
- Posts: 2528
- Joined: Mon Dec 04, 2017 10:11 pm
- Location: Ivory Coast
Post
by Sharlybg » Sun Dec 31, 2017 1:27 pm
- it is optional (no cost for normal RGB rendering);
- it does require very little code changes;
- it works on GPUs;
- it works with path, bidir and everything else.
Wow incredible move ! thanks you so much for sharing such juicy news with us. can't wait to see more screenshots with this (indirect light/ glass render). But take your time. with such great features it's worth to be patient.

.
the pink elephant is going to be a small white mouse in your labs
-
Piita
- Supporting Users
- Posts: 64
- Joined: Tue Dec 05, 2017 4:54 pm
Post
by Piita » Sun Dec 31, 2017 3:15 pm
Ah, spectral, old friend. I missed you. You do require a lot of render time in order to look good but when you are done you sure are gorgeous
Awesome work, Dade!
-
neo2068
- Posts: 232
- Joined: Tue Dec 05, 2017 6:06 pm
- Location: Germany
Post
by neo2068 » Sun Dec 31, 2017 6:25 pm

wow, great news. Looking forward for next year development.

i7 5820K, 32 GB RAM, NVIDIA Geforce RTX 2080 SUPER + GTX 1080, Windows 10 64bit, Blender 2.83.5
Support LuxCoreRender project with
salts and
bounties
-
Dade
- Posts: 4888
- Joined: Mon Dec 04, 2017 8:36 pm
- Location: Italy
Post
by Dade » Mon Jan 01, 2018 10:57 am
Normal rendering (BIDIRCPU):
Spectral rendering (BIDIRCPU):
P.S. at the moment, I'm not even sure if it is theoretically correct, for sure, it is damn good at faking it.
-
Dade
- Posts: 4888
- Joined: Mon Dec 04, 2017 8:36 pm
- Location: Italy
Post
by Dade » Mon Jan 01, 2018 12:08 pm
-
Sharlybg
- Posts: 2528
- Joined: Mon Dec 04, 2017 10:11 pm
- Location: Ivory Coast
Post
by Sharlybg » Mon Jan 01, 2018 11:01 pm
P.S. at the moment, I'm not even sure if it is theoretically correct, for sure, it is damn good at faking it.

wow it is very very beautifull and very real. And i also think it is a very well integrated code. I ve never seen this before with a renderer ( the possible to activate and desactivate spectral rendering on the fly). Bravo .
-
Dade
- Posts: 4888
- Joined: Mon Dec 04, 2017 8:36 pm
- Location: Italy
Post
by Dade » Tue Jan 02, 2018 11:30 am
Added the support glass dispersion on GPUs:
I have merged the experimental branch with the main one.
Glass dispersion can be enabled using the ".dispersion" flag in Glass material definition. Volumes/Glass IORs can now accept 3 values instead of 1 (red IOR, green IOR, blue IOR). For instance:
Code: Select all
scene.materials.Cubo_Prism_01_MAT.type = glass
scene.materials.Cubo_Prism_01_MAT.kr = 1. 1. 1.
scene.materials.Cubo_Prism_01_MAT.kt = 0.8 0.8 0.8
scene.materials.Cubo_Prism_01_MAT.ioroutside = 1.0 1.0 1.0
scene.materials.Cubo_Prism_01_MAT.iorinside = 1.28 1.4 1.52
scene.materials.Cubo_Prism_01_MAT.dispersion = 1
P.S. you can still use a single value for IORs (but indeed there will be not dispersion).
-
B.Y.O.B.
- Posts: 3912
- Joined: Mon Dec 04, 2017 10:08 pm
- Location: Germany
-
Contact:
Post
by B.Y.O.B. » Tue Jan 02, 2018 3:50 pm
This is pretty cool.
It's not even much slower than without dispersion, both attached images were rendered for 16 minutes.
Dade wrote: ↑Tue Jan 02, 2018 11:30 am
Volumes/Glass IORs can now accept 3 values instead of 1 (red IOR, green IOR, blue IOR).
How should we expose this in exporters?
Should we allow the user to set 3 separate values?
Or would it be better to have only one IOR-value in the UI and have a "Dispersion Strength"-slider which specifies the diverting IORs?
For example:
IOR: 1.5
Dispersion Strength: 0.02
-> exported as
iorinside = 1.48 1.5 1.52
By the way, I'm getting a crash when using Tiled Path + dispersion when I stop the render.
-
Attachments
-

-

-
Dade
- Posts: 4888
- Joined: Mon Dec 04, 2017 8:36 pm
- Location: Italy
Post
by Dade » Tue Jan 02, 2018 5:08 pm
B.Y.O.B. wrote: ↑Tue Jan 02, 2018 3:50 pm
How should we expose this in exporters?
Should we allow the user to set 3 separate values?
Or would it be better to have only one IOR-value in the UI and have a "Dispersion Strength"-slider which specifies the diverting IORs?
For example:
IOR: 1.5
Dispersion Strength: 0.02
-> exported as
iorinside = 1.48 1.5 1.52
The "strength" solution sounds a lot easier to use (and more artist oriented).
I could potentially add, in the future, the support for tabulated texture in order to potentially have a different IOR for each visible wave length (at the moment, the IOR is just interpolated between the 3 RGB wave lengths). But it is frankly the kind of feature that 99.999999999% of Blender users are never going to use.
B.Y.O.B. wrote: ↑Tue Jan 02, 2018 3:50 pm
By the way, I'm getting a crash when using Tiled Path + dispersion when I stop the render.
Uh, I never tried with TILEPATH, strange, going to check ... it doesn't seems to happen here (it may be a different problem, not related to dispersion), can you post how reproduce the problem.