2
0

meshlambert_frag.glsl 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. uniform vec3 diffuse;
  2. uniform vec3 emissive;
  3. uniform float opacity;
  4. varying vec3 vLightFront;
  5. #ifdef DOUBLE_SIDED
  6. varying vec3 vLightBack;
  7. #endif
  8. #include <common>
  9. #include <color_pars_fragment>
  10. #include <uv_pars_fragment>
  11. #include <uv2_pars_fragment>
  12. #include <map_pars_fragment>
  13. #include <alphamap_pars_fragment>
  14. #include <aomap_pars_fragment>
  15. #include <lightmap_pars_fragment>
  16. #include <emissivemap_pars_fragment>
  17. #include <envmap_pars_fragment>
  18. #include <bsdfs>
  19. #include <ambient_pars>
  20. #include <lights_pars>
  21. #include <fog_pars_fragment>
  22. #include <shadowmap_pars_fragment>
  23. #include <shadowmask_pars_fragment>
  24. #include <specularmap_pars_fragment>
  25. #include <logdepthbuf_pars_fragment>
  26. void main() {
  27. vec4 diffuseColor = vec4( diffuse, opacity );
  28. ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
  29. vec3 totalEmissiveLight = emissive;
  30. #include <logdepthbuf_fragment>
  31. #include <map_fragment>
  32. #include <color_fragment>
  33. #include <alphamap_fragment>
  34. #include <alphatest_fragment>
  35. #include <specularmap_fragment>
  36. #include <emissivemap_fragment>
  37. // accumulation
  38. reflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );
  39. #include <lightmap_fragment>
  40. reflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );
  41. #ifdef DOUBLE_SIDED
  42. reflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;
  43. #else
  44. reflectedLight.directDiffuse = vLightFront;
  45. #endif
  46. reflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();
  47. // modulation
  48. #include <aomap_fragment>
  49. vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveLight;
  50. #include <envmap_fragment>
  51. gl_FragColor = vec4( outgoingLight, diffuseColor.a );
  52. #include <tonemapping_fragment>
  53. #include <encodings_fragment>
  54. #include <fog_fragment>
  55. #include <premultiplied_alpha_fragment>
  56. }