#define PHYSICAL uniform vec3 diffuse; uniform vec3 emissive; #ifdef STANDARD_SG uniform float glossiness; uniform vec3 specular2; #else uniform float roughness; uniform float metalness; #endif uniform float opacity; #ifndef STANDARD uniform float clearCoat; uniform float clearCoatRoughness; #endif varying vec3 vViewPosition; #ifndef FLAT_SHADED varying vec3 vNormal; #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef STANDARD_SG #include #include #else #include #include #endif #include #include void main() { #include vec4 diffuseColor = vec4( diffuse, opacity ); ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); vec3 totalEmissiveRadiance = emissive; #include #include #include #include #include #include #ifdef STANDARD_SG #include #include #else #include #include #endif #include #include #include // accumulation #include #include // modulation #include vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; gl_FragColor = vec4( outgoingLight, diffuseColor.a ); #include #include #include #include }