The pink elefant

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

The pink elefant

Post by Dade »

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
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: The pink elefant

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

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

Portfolio : https://www.behance.net/DRAVIA
User avatar
Piita
Supporting Users
Posts: 64
Joined: Tue Dec 05, 2017 4:54 pm

Re: The pink elefant

Post 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!
Piitas.blog
Librem 5 - The privacy focused smart phone
neo2068
Developer
Developer
Posts: 260
Joined: Tue Dec 05, 2017 6:06 pm
Location: Germany

Re: The pink elefant

Post by neo2068 »

:o 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
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: The pink elefant

Post by Dade »

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
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: The pink elefant

Post by Dade »

psor.png
Support LuxCoreRender project with salts and bounties
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: The pink elefant

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

Portfolio : https://www.behance.net/DRAVIA
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: The pink elefant

Post by Dade »

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
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: The pink elefant

Post 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.
Attachments
untitled.jpg
untitled2.jpg
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: The pink elefant

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