OSDN Git Service

three.jsをThirdPartyに追加
[webglgame/webgl_framework.git] / webglFramework / Thirdparty / three.js-master / src / renderers / shaders / ShaderLib / meshlambert_frag.glsl
diff --git a/webglFramework/Thirdparty/three.js-master/src/renderers/shaders/ShaderLib/meshlambert_frag.glsl b/webglFramework/Thirdparty/three.js-master/src/renderers/shaders/ShaderLib/meshlambert_frag.glsl
new file mode 100644 (file)
index 0000000..aeb9571
--- /dev/null
@@ -0,0 +1,84 @@
+uniform vec3 diffuse;
+uniform vec3 emissive;
+uniform float opacity;
+
+varying vec3 vLightFront;
+
+#ifdef DOUBLE_SIDED
+
+       varying vec3 vLightBack;
+
+#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>
+#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 );
+
+       #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>
+
+}