MeshShaderMaterial.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /**
  2. * @author alteredq / http://alteredqualia.com/
  3. *
  4. * parameters = {
  5. * fragmentShader: <string>,
  6. * vertexShader: <string>,
  7. * uniforms: { "parameter1": { type: "f", value: 1.0 }, "parameter2": { type: "i" value2: 2 } },
  8. * shading: THREE.SmoothShading,
  9. * blending: THREE.NormalBlending,
  10. * depthTest: <bool>,
  11. * wireframe: <boolean>,
  12. * wireframeLinewidth: <float>,
  13. * lights: <bool>,
  14. * vertexColors: <bool>,
  15. * skinning: <bool>,
  16. * morphTargets: <bool>,
  17. * }
  18. */
  19. THREE.MeshShaderMaterial = function ( parameters ) {
  20. THREE.Material.call( this, parameters );
  21. parameters = parameters || {};
  22. this.fragmentShader = parameters.fragmentShader !== undefined ? parameters.fragmentShader : "void main() {}";
  23. this.vertexShader = parameters.vertexShader !== undefined ? parameters.vertexShader : "void main() {}";
  24. this.uniforms = parameters.uniforms !== undefined ? parameters.uniforms : {};
  25. this.attributes = parameters.attributes;
  26. this.shading = parameters.shading !== undefined ? parameters.shading : THREE.SmoothShading;
  27. this.wireframe = parameters.wireframe !== undefined ? parameters.wireframe : false;
  28. this.wireframeLinewidth = parameters.wireframeLinewidth !== undefined ? parameters.wireframeLinewidth : 1;
  29. this.fog = parameters.fog !== undefined ? parameters.fog : false; // set to use scene fog
  30. this.lights = parameters.lights !== undefined ? parameters.lights : false; // set to use scene lights
  31. this.vertexColors = parameters.vertexColors !== undefined ? parameters.vertexColors : false; // set to use "color" attribute stream
  32. this.skinning = parameters.skinning !== undefined ? parameters.skinning : false; // set to use skinning attribute streams
  33. this.morphTargets = parameters.morphTargets !== undefined ? parameters.morphTargets : false; // set to use morph targets
  34. };
  35. THREE.MeshShaderMaterial.prototype = new THREE.Material();
  36. THREE.MeshShaderMaterial.prototype.constructor = THREE.MeshShaderMaterial;