Spaces:
Running
Running
| export default /* glsl */` | |
| uniform vec3 diffuse; | |
| uniform vec3 emissive; | |
| uniform float opacity; | |
| varying vec3 vLightFront; | |
| varying vec3 vIndirectFront; | |
| #ifdef DOUBLE_SIDED | |
| varying vec3 vLightBack; | |
| varying vec3 vIndirectBack; | |
| #endif | |
| #include <common> | |
| #include <packing> | |
| #include <dithering_pars_fragment> | |
| #include <color_pars_fragment> | |
| #include <uv_pars_fragment> | |
| #include <uv2_pars_fragment> | |
| #include <map_pars_fragment> | |
| #include <alphamap_pars_fragment> | |
| #include <aomap_pars_fragment> | |
| #include <lightmap_pars_fragment> | |
| #include <emissivemap_pars_fragment> | |
| #include <envmap_pars_fragment> | |
| #include <bsdfs> | |
| #include <lights_pars_begin> | |
| #include <fog_pars_fragment> | |
| #include <shadowmap_pars_fragment> | |
| #include <shadowmask_pars_fragment> | |
| #include <specularmap_pars_fragment> | |
| #include <logdepthbuf_pars_fragment> | |
| #include <clipping_planes_pars_fragment> | |
| void main() { | |
| #include <clipping_planes_fragment> | |
| vec4 diffuseColor = vec4( diffuse, opacity ); | |
| ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); | |
| vec3 totalEmissiveRadiance = emissive; | |
| #include <logdepthbuf_fragment> | |
| #include <map_fragment> | |
| #include <color_fragment> | |
| #include <alphamap_fragment> | |
| #include <alphatest_fragment> | |
| #include <specularmap_fragment> | |
| #include <emissivemap_fragment> | |
| // accumulation | |
| reflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor ); | |
| #ifdef DOUBLE_SIDED | |
| reflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack; | |
| #else | |
| reflectedLight.indirectDiffuse += vIndirectFront; | |
| #endif | |
| #include <lightmap_fragment> | |
| reflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ); | |
| #ifdef DOUBLE_SIDED | |
| reflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack; | |
| #else | |
| reflectedLight.directDiffuse = vLightFront; | |
| #endif | |
| reflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask(); | |
| // modulation | |
| #include <aomap_fragment> | |
| vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; | |
| #include <envmap_fragment> | |
| gl_FragColor = vec4( outgoingLight, diffuseColor.a ); | |
| #include <tonemapping_fragment> | |
| #include <encodings_fragment> | |
| #include <fog_fragment> | |
| #include <premultiplied_alpha_fragment> | |
| #include <dithering_fragment> | |
| } | |
| `; | |