MeshShaderMaterial.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /**
  2. * @author alteredq / http://alteredqualia.com/
  3. *
  4. * parameters = {
  5. * fragment_shader: <string>,
  6. * vertex_shader: <string>,
  7. * uniforms: { "parameter1": { type: "f", value: 1.0 }, "parameter2": { type: "i" value2: 2 } },
  8. * shading: THREE.SmoothShading,
  9. * blending: THREE.NormalBlending,
  10. * wireframe: <boolean>,
  11. * wireframe_linewidth: <float>
  12. * }
  13. */
  14. THREE.MeshShaderMaterial = function ( parameters ) {
  15. this.id = THREE.MeshShaderMaterialCounter.value ++;
  16. this.fragment_shader = "void main() {}";
  17. this.vertex_shader = "void main() {}";
  18. this.uniforms = {};
  19. this.shading = THREE.SmoothShading;
  20. this.blending = THREE.NormalBlending;
  21. this.wireframe = false;
  22. this.wireframe_linewidth = 1;
  23. this.wireframe_linecap = 'round';
  24. this.wireframe_linejoin = 'round';
  25. if ( parameters ) {
  26. if ( parameters.fragment_shader !== undefined ) this.fragment_shader = parameters.fragment_shader;
  27. if ( parameters.vertex_shader !== undefined ) this.vertex_shader = parameters.vertex_shader;
  28. if ( parameters.uniforms !== undefined ) this.uniforms = parameters.uniforms;
  29. if ( parameters.shading !== undefined ) this.shading = parameters.shading;
  30. if ( parameters.blending !== undefined ) this.blending = parameters.blending;
  31. if ( parameters.wireframe !== undefined ) this.wireframe = parameters.wireframe;
  32. if ( parameters.wireframe_linewidth !== undefined ) this.wireframe_linewidth = parameters.wireframe_linewidth;
  33. if ( parameters.wireframe_linecap !== undefined ) this.wireframe_linecap = parameters.wireframe_linecap;
  34. if ( parameters.wireframe_linejoin !== undefined ) this.wireframe_linejoin = parameters.wireframe_linejoin;
  35. }
  36. this.toString = function () {
  37. return 'THREE.MeshShaderMaterial (<br/>' +
  38. 'id: ' + this.id + '<br/>' +
  39. 'blending: ' + this.blending + '<br/>' +
  40. 'wireframe: ' + this.wireframe + '<br/>' +
  41. 'wireframe_linewidth: ' + this.wireframe_linewidth +'<br/>' +
  42. 'wireframe_linecap: ' + this.wireframe_linecap +'<br/>' +
  43. 'wireframe_linejoin: ' + this.wireframe_linejoin +'<br/>' +
  44. ')';
  45. };
  46. }
  47. THREE.MeshShaderMaterialCounter = { value: 0 };
粤ICP备19079148号