Fresnel fonction & layer weight node

Discussion related to the LuxCore functionality, implementations and API.
Post Reply
User avatar
Sharlybg
Donor
Posts: 2569
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Fresnel fonction & layer weight node

Post by Sharlybg » Wed Jan 13, 2021 2:11 pm

Hi guys !

Here is the situation : we are trying to create a nice Velvet shader with Luxcore engine but we are stopped by some issues.

__We first try with the original velvet shader in side Luxcore. it was good and have control we need like smoothness of transition between color in the middle and color of the velvet at the tangent. But what we want to fix here for our need is a less saturated tangent color :
velvet.jpg

__Switching to the disney with the sheen fonction we are able to get a good saturation level at the tangent but we can't tweak the transition curve (sharp or smooth ) between center color and tangent color.
disney_velvet_cloth.jpg

__Finally here is a cycles try but with frenel fonction node : But if we want that in Luxcore i fear the fresnel/facing node can break other stuff in the engine.
cycles_disney_velvet_cloth.jpg

So is it possible to add a parameter to desaturate luxcore original velvet tangent color ? or make the color in tangent less saturated with the velvet.
Or a bit harder a i think make possible to affect the sheen transition curve in the disney shader.
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA

daros
Posts: 75
Joined: Thu Dec 12, 2019 3:25 pm

Re: Fresnel fonction & layer weight node

Post by daros » Wed Jan 27, 2021 1:40 pm

Hi, I'm struggling to create in LuxCore a velvet similar to the one i got in Maxwell.
In order to archive this kind of velvet (which is far from perfect!) it was necessary to us Maxwell's R2 function, which gives a decent control over the Fresnel curves. Basically i was able to tell Maxwell that the perpendicular reflection is very dark and then, within a certain angle range, it has to fade to strong diffuse reflection with a certain amount of tint.
In Lux, nor by using the Disney (which do not has any control over the sheen activity angles), nor using the velvet shader (which do not has a control over the tangent reflection tint color), i have been able to create something similar to Maxwell's velvet.
By the way i think it's difficult to make a "physical correct" material model of a velvet. Velvet can be synthetic and natural and each type has many variants. Nylon, polyester, viscose...many different kinds of cottons, many different types of silks. Velvet can be handmade and industrially made and each kind of material and manufacturing process delivers completely different optical effects. Industrially made have a strong liner anisotropy effect instead hand made velvet have a more randomic Fresnel effect (depends from the combing of the tiny hairs). It seems to me almost impossible to create a universally valid physical velvet model.

A "mixer" ruled by a Fresnel curve, possibly a spline curve control too (in cycles it seems there is something like that), would make the creation of certain materials much easier. With such a mixer, i could mix multiple shaders together, disney, metal, velvet...each influencing only a certain fresnel range.

Any ideas about how i could get closer to the maxwell look with the actual luxcore?
Thanks for your suggestions.

Maxwell
velvet maxwell.jpg

Luxcore Velvet shader. Tangent reflection's tint is too saturated.
luxcore-velvet.jpg

Luxcore Disney shader. Looks washed out
disney.jpg

here is the scene to download:
https://drive.google.com/file/d/1AgFNG4 ... sp=sharing
Last edited by daros on Wed Jan 27, 2021 7:53 pm, edited 2 times in total.

daros
Posts: 75
Joined: Thu Dec 12, 2019 3:25 pm

Re: Fresnel fonction & layer weight node

Post by daros » Wed Jan 27, 2021 1:53 pm

Here an example of the maxwell and luxcore (disney) in action:


Maxwell
max-velvet sofa.jpg

Luxcore Disney using sheen
lux-velvet sofa.jpg

Post Reply