MaterialExporter.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /**
  2. * @author mrdoob / http://mrdoob.com/
  3. */
  4. THREE.MaterialExporter = function () {};
  5. THREE.MaterialExporter.prototype = {
  6. constructor: THREE.MaterialExporter,
  7. parse: function ( material ) {
  8. var output = {
  9. metadata: {
  10. version: 4.0,
  11. type: 'material',
  12. generator: 'MaterialExporter'
  13. }
  14. };
  15. if ( material.name !== "" ) output.name = material.name;
  16. if ( material instanceof THREE.MeshBasicMaterial ) {
  17. output.type = 'MeshBasicMaterial';
  18. output.color = material.color.getHex();
  19. output.opacity = material.opacity;
  20. output.transparent = material.transparent;
  21. output.wireframe = material.wireframe;
  22. } else if ( material instanceof THREE.MeshLambertMaterial ) {
  23. output.type = 'MeshLambertMaterial';
  24. output.color = material.color.getHex();
  25. output.ambient = material.ambient.getHex();
  26. output.emissive = material.emissive.getHex();
  27. output.opacity = material.opacity;
  28. output.transparent = material.transparent;
  29. output.wireframe = material.wireframe;
  30. } else if ( material instanceof THREE.MeshPhongMaterial ) {
  31. output.type = 'MeshPhongMaterial';
  32. output.color = material.color.getHex();
  33. output.ambient = material.ambient.getHex();
  34. output.emissive = material.emissive.getHex();
  35. output.specular = material.specular.getHex();
  36. output.shininess = material.shininess;
  37. output.opacity = material.opacity;
  38. output.transparent = material.transparent;
  39. output.wireframe = material.wireframe;
  40. } else if ( material instanceof THREE.MeshNormalMaterial ) {
  41. output.type = 'MeshNormalMaterial';
  42. output.opacity = material.opacity;
  43. output.transparent = material.transparent;
  44. output.wireframe = material.wireframe;
  45. } else if ( material instanceof THREE.MeshDepthMaterial ) {
  46. output.type = 'MeshDepthMaterial';
  47. output.opacity = material.opacity;
  48. output.transparent = material.transparent;
  49. output.wireframe = material.wireframe;
  50. }
  51. return output;
  52. }
  53. };