diff --git a/examples/webgl_materials_variations_physical2.html b/examples/webgl_materials_variations_physical2.html new file mode 100644 index 00000000000000..47b7ddb6d7974e --- /dev/null +++ b/examples/webgl_materials_variations_physical2.html @@ -0,0 +1,250 @@ + + + + three.js webgl - materials + + + + + + +
+
three.js - Physical Material Variantions v2 by Ben Houston.
+ + + + + + + + + + + + + + diff --git a/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl b/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl index d9471ded079e2e..81d6b55a6da2f8 100644 --- a/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl +++ b/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl @@ -1,6 +1,8 @@ -#ifdef USE_ENVMAP +#if defined( USE_ENVMAP ) || defined( PHYSICAL ) uniform float reflectivity; +#endif +#ifdef USE_ENVMAP #ifdef ENVMAP_TYPE_CUBE uniform samplerCube envMap; #else diff --git a/src/renderers/shaders/ShaderChunk/lights_pars.glsl b/src/renderers/shaders/ShaderChunk/lights_pars.glsl index 67abcf6127d239..050fac92b17ea3 100644 --- a/src/renderers/shaders/ShaderChunk/lights_pars.glsl +++ b/src/renderers/shaders/ShaderChunk/lights_pars.glsl @@ -159,7 +159,7 @@ uniform vec3 ambientLightColor; envMapColor.rgb = inputToLinear( envMapColor.rgb ); - return envMapColor.rgb * reflectivity; + return envMapColor.rgb; } diff --git a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl index 66f6591150b329..75cbe1bf47e728 100644 --- a/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl +++ b/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl @@ -1,4 +1,4 @@ PhysicalMaterial material; material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); material.specularRoughness = roughnessFactor * 0.5 + 0.5; // disney's remapping of [ 0, 1 ] roughness to [ 0.5, 1 ] -material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); +material.specularColor = mix( vec3( 0.08 ) * reflectivity, diffuseColor.rgb, metalnessFactor );