uniform vec3 psColor; uniform float opacity; #include common #include color_pars_fragment #include map_particle_pars_fragment #include fog_pars_fragment #include shadowmap_pars_fragment #include logdepthbuf_pars_fragment void main() { vec3 outgoingLight = vec3( 0.0 ); // outgoing light does not have an alpha, the surface does vec4 diffuseColor = vec4( psColor, opacity ); #include logdepthbuf_fragment #include map_particle_fragment #include color_fragment #include alphatest_fragment outgoingLight = diffuseColor.rgb; // simple shader #include shadowmap_fragment #include fog_fragment fragColor = vec4( outgoingLight, diffuseColor.a ); // TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects }