diff options
Diffstat (limited to 'res/effectlib/funcspecularBSDF.glsllib')
-rw-r--r-- | res/effectlib/funcspecularBSDF.glsllib | 40 |
1 files changed, 9 insertions, 31 deletions
diff --git a/res/effectlib/funcspecularBSDF.glsllib b/res/effectlib/funcspecularBSDF.glsllib index e9450bf..f774b0b 100644 --- a/res/effectlib/funcspecularBSDF.glsllib +++ b/res/effectlib/funcspecularBSDF.glsllib @@ -6,37 +6,15 @@ #define scatter_reflect_transmit 2 #endif -vec4 specularBSDF(in vec3 N, in vec3 L, in vec3 viewDir, in vec3 lightSpecular, - in float ior, in float shininess, in vec3 tint, int mode) +vec4 specularBSDF(in vec3 N, in vec3 L, in vec3 viewDir, in vec3 lightSpecular, in float shininess) { - vec4 rgba = vec4( 0.0, 0.0, 0.0, 1.0 ); - float cosTheta = dot( N, L ); - if ( 0.0 < cosTheta ) - { - if ( ( mode == scatter_reflect ) || ( mode == scatter_reflect_transmit ) ) - { - vec3 R = reflect( -L, N ); - float cosAlpha = max( 0.0, dot( R, viewDir ) ); - float shine = pow( cosAlpha, shininess ); - rgba.rgb = shine * lightSpecular; - } + vec4 rgba = vec4(0.0, 0.0, 0.0, 1.0); + float cosTheta = dot(N, L); + if (0.0 < cosTheta) { + vec3 R = reflect(-L, N); + float cosAlpha = max(0.0, dot(R, viewDir)); + float shine = pow(cosAlpha, shininess); + rgba.rgb = shine * lightSpecular; } - if ( ( mode == scatter_transmit ) || ( mode == scatter_reflect_transmit ) ) - { - // check against total reflection - vec3 R = refract( -viewDir, N, ior ); - if ( R == vec3( 0.0, 0.0, 0.0 ) ) - { - rgba.a = 1.0; - } - else if ( mode == scatter_transmit ) - { - rgba.a = 0.0; - } - else - { - rgba.a = 1.0 - luminance( tint ); - } - } - return( rgba ); + return rgba; } |