ShaderMaterial.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /**
  2. * @author alteredq / http://alteredqualia.com/
  3. *
  4. * parameters = {
  5. * fragmentShader: <string>,
  6. * vertexShader: <string>,
  7. *
  8. * uniforms: { "parameter1": { type: "f", value: 1.0 }, "parameter2": { type: "i" value2: 2 } },
  9. *
  10. * shading: THREE.SmoothShading,
  11. * blending: THREE.NormalBlending,
  12. * depthTest: <bool>,
  13. *
  14. * wireframe: <boolean>,
  15. * wireframeLinewidth: <float>,
  16. *
  17. * lights: <bool>,
  18. *
  19. * vertexColors: THREE.NoColors / THREE.VertexColors / THREE.FaceColors,
  20. *
  21. * skinning: <bool>,
  22. * morphTargets: <bool>,
  23. * morphNormals: <bool>,
  24. *
  25. * fog: <bool>
  26. * }
  27. */
  28. THREE.ShaderMaterial = function ( parameters ) {
  29. THREE.Material.call( this );
  30. this.fragmentShader = "void main() {}";
  31. this.vertexShader = "void main() {}";
  32. this.uniforms = {};
  33. this.attributes = null;
  34. this.shading = THREE.SmoothShading;
  35. this.wireframe = false;
  36. this.wireframeLinewidth = 1;
  37. this.fog = false; // set to use scene fog
  38. this.lights = false; // set to use scene lights
  39. this.vertexColors = THREE.NoColors; // set to use "color" attribute stream
  40. this.skinning = false; // set to use skinning attribute streams
  41. this.morphTargets = false; // set to use morph targets
  42. this.morphNormals = false; // set to use morph normals
  43. this.setValues( parameters );
  44. };
  45. THREE.ShaderMaterial.prototype = Object.create( THREE.Material.prototype );
  46. THREE.ShaderMaterial.prototype.clone = function () {
  47. var material = new THREE.ShaderMaterial();
  48. THREE.Material.prototype.clone.call( this, material );
  49. material.fragmentShader = this.fragmentShader;
  50. material.vertexShader = this.vertexShader;
  51. material.uniforms = this.uniforms;
  52. material.attributes = this.attributes;
  53. material.shading = this.shading;
  54. material.wireframe = this.wireframe;
  55. material.wireframeLinewidth = this.wireframeLinewidth;
  56. material.fog = this.fog;
  57. material.lights = this.lights;
  58. material.vertexColors = this.vertexColors;
  59. material.skinning = this.skinning;
  60. material.morphTargets = this.morphTargets;
  61. material.morphNormals = this.morphNormals;
  62. return material;
  63. };