meshphysical_frag.glsl.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. export default /* glsl */`
  2. #define PHYSICAL
  3. uniform vec3 diffuse;
  4. uniform vec3 emissive;
  5. uniform float roughness;
  6. uniform float metalness;
  7. uniform float opacity;
  8. #ifndef STANDARD
  9. uniform float clearCoat;
  10. uniform float clearCoatRoughness;
  11. #endif
  12. varying vec3 vViewPosition;
  13. #ifndef FLAT_SHADED
  14. varying vec3 vNormal;
  15. #ifdef USE_TANGENT
  16. varying vec3 vTangent;
  17. varying vec3 vBitangent;
  18. #endif
  19. #endif
  20. #include <common>
  21. #include <packing>
  22. #include <dithering_pars_fragment>
  23. #include <color_pars_fragment>
  24. #include <uv_pars_fragment>
  25. #include <uv2_pars_fragment>
  26. #include <map_pars_fragment>
  27. #include <alphamap_pars_fragment>
  28. #include <aomap_pars_fragment>
  29. #include <lightmap_pars_fragment>
  30. #include <emissivemap_pars_fragment>
  31. #include <bsdfs>
  32. #include <cube_uv_reflection_fragment>
  33. #include <envmap_pars_fragment>
  34. #include <envmap_physical_pars_fragment>
  35. #include <fog_pars_fragment>
  36. #include <lights_pars_begin>
  37. #include <lights_physical_pars_fragment>
  38. #include <shadowmap_pars_fragment>
  39. #include <bumpmap_pars_fragment>
  40. #include <normalmap_pars_fragment>
  41. #include <roughnessmap_pars_fragment>
  42. #include <metalnessmap_pars_fragment>
  43. #include <logdepthbuf_pars_fragment>
  44. #include <clipping_planes_pars_fragment>
  45. void main() {
  46. #include <clipping_planes_fragment>
  47. vec4 diffuseColor = vec4( diffuse, opacity );
  48. ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
  49. vec3 totalEmissiveRadiance = emissive;
  50. #include <logdepthbuf_fragment>
  51. #include <map_fragment>
  52. #include <color_fragment>
  53. #include <alphamap_fragment>
  54. #include <alphatest_fragment>
  55. #include <roughnessmap_fragment>
  56. #include <metalnessmap_fragment>
  57. #include <normal_fragment_begin>
  58. #include <normal_fragment_maps>
  59. #include <emissivemap_fragment>
  60. // accumulation
  61. #include <lights_physical_fragment>
  62. #include <lights_fragment_begin>
  63. #include <lights_fragment_maps>
  64. #include <lights_fragment_end>
  65. // modulation
  66. #include <aomap_fragment>
  67. vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
  68. gl_FragColor = vec4( outgoingLight, diffuseColor.a );
  69. #include <tonemapping_fragment>
  70. #include <encodings_fragment>
  71. #include <fog_fragment>
  72. #include <premultiplied_alpha_fragment>
  73. #include <dithering_fragment>
  74. }
  75. `;