ShadowMaterial.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { ShaderMaterial } from './ShaderMaterial';
  2. import { ShaderChunk } from '../renderers/shaders/ShaderChunk';
  3. import { UniformsLib } from '../renderers/shaders/UniformsLib';
  4. import { UniformsUtils } from '../renderers/shaders/UniformsUtils';
  5. /**
  6. * @author mrdoob / http://mrdoob.com/
  7. */
  8. function ShadowMaterial() {
  9. ShaderMaterial.call( this, {
  10. uniforms: UniformsUtils.merge( [
  11. UniformsLib.lights,
  12. {
  13. opacity: { value: 1.0 }
  14. }
  15. ] ),
  16. vertexShader: ShaderChunk[ 'shadow_vert' ],
  17. fragmentShader: ShaderChunk[ 'shadow_frag' ]
  18. } );
  19. this.lights = true;
  20. this.transparent = true;
  21. Object.defineProperties( this, {
  22. opacity: {
  23. enumerable: true,
  24. get: function () {
  25. return this.uniforms.opacity.value;
  26. },
  27. set: function ( value ) {
  28. this.uniforms.opacity.value = value;
  29. }
  30. }
  31. } );
  32. }
  33. ShadowMaterial.prototype = Object.create( ShaderMaterial.prototype );
  34. ShadowMaterial.prototype.constructor = ShadowMaterial;
  35. ShadowMaterial.prototype.isShadowMaterial = true;
  36. export { ShadowMaterial };
粤ICP备19079148号