Page 1 of 2
The pink elefant
Posted: Sun Dec 31, 2017 10:44 am
by Dade
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
Re: The pink elefant
Posted: Sun Dec 31, 2017 1:27 pm
by Sharlybg
- 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
Re: The pink elefant
Posted: Sun Dec 31, 2017 3:15 pm
by Piita
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!
Re: The pink elefant
Posted: Sun Dec 31, 2017 6:25 pm
by neo2068
wow, great news. Looking forward for next year development.
Re: The pink elefant
Posted: Mon Jan 01, 2018 10:57 am
by Dade
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.
Re: The pink elefant
Posted: Mon Jan 01, 2018 12:08 pm
by Dade
Re: The pink elefant
Posted: Mon Jan 01, 2018 11:01 pm
by Sharlybg
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 .
Re: The pink elefant
Posted: Tue Jan 02, 2018 11:30 am
by Dade
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).
Re: The pink elefant
Posted: Tue Jan 02, 2018 3:50 pm
by B.Y.O.B.
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.
Re: The pink elefant
Posted: Tue Jan 02, 2018 5:08 pm
by Dade
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.