Browse Source

Moved sheen to PhysicalMaterial struct

Daniel Sturk 6 years ago
parent
commit
9428b70c05

+ 0 - 1
src/renderers/shaders/ShaderChunk.d.ts

@@ -88,7 +88,6 @@ export let ShaderChunk: {
 	points_vert: string;
 	shadow_frag: string;
 	shadow_vert: string;
-	sheen_pars_fragment: sheen_pars_fragment;
 
 	premultiplied_alpha_fragment: string;
 	project_vertex: string;

+ 0 - 2
src/renderers/shaders/ShaderChunk.js

@@ -87,7 +87,6 @@ import uv2_pars_fragment from './ShaderChunk/uv2_pars_fragment.glsl.js';
 import uv2_pars_vertex from './ShaderChunk/uv2_pars_vertex.glsl.js';
 import uv2_vertex from './ShaderChunk/uv2_vertex.glsl.js';
 import worldpos_vertex from './ShaderChunk/worldpos_vertex.glsl.js';
-import sheen_pars_fragment from './ShaderChunk/sheen_pars_fragment.glsl';
 
 import background_frag from './ShaderLib/background_frag.glsl.js';
 import background_vert from './ShaderLib/background_vert.glsl.js';
@@ -210,7 +209,6 @@ export var ShaderChunk = {
 	uv2_pars_vertex: uv2_pars_vertex,
 	uv2_vertex: uv2_vertex,
 	worldpos_vertex: worldpos_vertex,
-	sheen_pars_fragment: sheen_pars_fragment,
 
 	background_frag: background_frag,
 	background_vert: background_vert,

+ 1 - 0
src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js

@@ -8,5 +8,6 @@ material.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );
 	material.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );
 	material.clearCoat = saturate( clearCoat ); // Burley clearcoat model
 	material.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );
+	material.sheen = sheen;
 #endif
 `;

+ 4 - 3
src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js

@@ -8,6 +8,7 @@ struct PhysicalMaterial {
 	#ifndef STANDARD
 		float clearCoat;
 		float clearCoatRoughness;
+		float sheen;
 	#endif
 
 };
@@ -86,15 +87,15 @@ void RE_Direct_Physical( const in IncidentLight directLight, const in GeometricC
 
 
 	float sheenMix;
-	#ifdef SHEEN
+	#ifndef STANDARD
 		if(sheen == 0.) sheenMix = 0.;
-		else sheenMix = 1. - pow(1. - sheen, 5.);
+		else sheenMix = 1. - pow(1. - material.sheen, 5.);
 	#else
 		sheenMix = 0.;
 	#endif
 
 	reflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor ) * (1. - sheenMix);
-	#ifdef SHEEN
+	#ifndef STANDARD
 		// avoid expensive calculation
 		if(sheenMix > 0.) reflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * material.diffuseColor * irradiance * sheenMix * BDRF_Diffuse_Sheen( sheen, directLight, geometry );
 	#endif

+ 0 - 5
src/renderers/shaders/ShaderChunk/sheen_pars_fragment.glsl.js

@@ -1,5 +0,0 @@
-export default /* glsl */`
-
-#define SHEEN
-uniform float sheen;
-`;

+ 1 - 1
src/renderers/shaders/ShaderLib/meshphysical_frag.glsl.js

@@ -6,6 +6,7 @@ uniform vec3 emissive;
 uniform float roughness;
 uniform float metalness;
 uniform float opacity;
+uniform float sheen;
 
 #ifndef STANDARD
 	uniform float clearCoat;
@@ -33,7 +34,6 @@ varying vec3 vViewPosition;
 #include <color_pars_fragment>
 #include <uv_pars_fragment>
 #include <uv2_pars_fragment>
-#include <sheen_pars_fragment>
 #include <map_pars_fragment>
 #include <alphamap_pars_fragment>
 #include <aomap_pars_fragment>