The pink elefant

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

The pink elefant

Post by Dade » Sun Dec 31, 2017 10:44 am

Spectral rendering done in LuxCore :o
spectral1.jpg
(who is used to old LuxRender renderings can easily spot the rainbow-ish white on early stage of the rendering)
spectral2.jpg
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
Support LuxCoreRender project with salts and bounties

User avatar
Sharlybg
Supporting Users
Posts: 684
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: The pink elefant

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. :D .

the pink elephant is going to be a small white mouse in your labs :lol:
Support LuxCoreRender project with salts and bounties

User avatar
Piita
Supporting Users
Posts: 23
Joined: Tue Dec 05, 2017 4:54 pm

Re: The pink elefant

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
Developer
Posts: 85
Joined: Tue Dec 05, 2017 6:06 pm

Re: The pink elefant

Post by neo2068 » Sun Dec 31, 2017 6:25 pm

:o wow, great news. Looking forward for next year development. 😊
i7 5820K, 32 GB RAM, NVIDIA Geforce GTX 1080 + GTX 780, Windows 10 64bit, Blender 2.79b
Support LuxCoreRender project with salts and bounties

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

Re: The pink elefant

Post by Dade » Mon Jan 01, 2018 10:57 am

Normal rendering (BIDIRCPU):
spectral2.png
Spectral rendering (BIDIRCPU):
spectral1.png
:lol: :lol: :lol:

P.S. at the moment, I'm not even sure if it is theoretically correct, for sure, it is damn good at faking it.
Support LuxCoreRender project with salts and bounties

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

Re: The pink elefant

Post by Dade » Mon Jan 01, 2018 12:08 pm

psor.png
Support LuxCoreRender project with salts and bounties

User avatar
Sharlybg
Supporting Users
Posts: 684
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: The pink elefant

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.
:shock: :shock: 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 .
Support LuxCoreRender project with salts and bounties

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

Re: The pink elefant

Post by Dade » Tue Jan 02, 2018 11:30 am

Added the support glass dispersion on GPUs:
dispgpu.png
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).
Support LuxCoreRender project with salts and bounties

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

Re: The pink elefant

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
untitled.jpg
untitled2.jpg
Support LuxCoreRender project with salts and bounties

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

Re: The pink elefant

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.
Support LuxCoreRender project with salts and bounties

Post Reply