summaryrefslogtreecommitdiffstats
path: root/res/effectlib/diffuseTransmissionBSDF.glsllib
blob: 27b58fcc00f1d69842af372ff9a32b8d0b467f5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
vec4 diffuseTransmissionBSDF( in vec3 N, in vec3 L, in vec3 viewDir, in vec3 lightDiffuse, in vec4 transmissiveColor, in float translucentFalloff, float lightWrap )
{
  float cosThetaI = max( 0.0f, (dot( N, L ) + lightWrap) / (1.0 + lightWrap) );
  float factor = cosThetaI;

  float l = 0.2126f * transmissiveColor.r + 0.7152f * transmissiveColor.g + 0.0722f * transmissiveColor.b;

  float translucent_thickness =  l * l;
  float translucent_thickness_exp = exp( translucent_thickness * translucentFalloff);

  return( translucent_thickness_exp * vec4( factor * lightDiffuse, 1.0f ) );
}