MaterialExporter.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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.2,
  11. type: 'material',
  12. generator: 'MaterialExporter'
  13. }
  14. };
  15. output.uuid = material.uuid;
  16. if ( material.name !== "" ) output.name = material.name;
  17. if ( material instanceof THREE.MeshBasicMaterial ) {
  18. output.type = 'MeshBasicMaterial';
  19. output.color = material.color.getHex();
  20. if ( material.vertexColors !== THREE.NoColors ) output.vertexColors = material.vertexColors;
  21. if ( material.blending !== THREE.NormalBlending ) output.blending = material.blending;
  22. output.opacity = material.opacity;
  23. output.transparent = material.transparent;
  24. output.wireframe = material.wireframe;
  25. } else if ( material instanceof THREE.MeshLambertMaterial ) {
  26. output.type = 'MeshLambertMaterial';
  27. output.color = material.color.getHex();
  28. output.ambient = material.ambient.getHex();
  29. output.emissive = material.emissive.getHex();
  30. if ( material.vertexColors !== THREE.NoColors ) output.vertexColors = material.vertexColors;
  31. if ( material.blending !== THREE.NormalBlending ) output.blending = material.blending;
  32. output.opacity = material.opacity;
  33. output.transparent = material.transparent;
  34. output.wireframe = material.wireframe;
  35. } else if ( material instanceof THREE.MeshPhongMaterial ) {
  36. output.type = 'MeshPhongMaterial';
  37. output.color = material.color.getHex();
  38. output.ambient = material.ambient.getHex();
  39. output.emissive = material.emissive.getHex();
  40. output.specular = material.specular.getHex();
  41. output.shininess = material.shininess;
  42. if ( material.vertexColors !== THREE.NoColors ) output.vertexColors = material.vertexColors;
  43. if ( material.blending !== THREE.NormalBlending ) output.blending = material.blending;
  44. output.opacity = material.opacity;
  45. output.transparent = material.transparent;
  46. output.wireframe = material.wireframe;
  47. } else if ( material instanceof THREE.MeshNormalMaterial ) {
  48. output.type = 'MeshNormalMaterial';
  49. if ( material.blending !== THREE.NormalBlending ) output.blending = material.blending;
  50. output.opacity = material.opacity;
  51. output.transparent = material.transparent;
  52. output.wireframe = material.wireframe;
  53. } else if ( material instanceof THREE.MeshDepthMaterial ) {
  54. output.type = 'MeshDepthMaterial';
  55. if ( material.blending !== THREE.NormalBlending ) output.blending = material.blending;
  56. output.opacity = material.opacity;
  57. output.transparent = material.transparent;
  58. output.wireframe = material.wireframe;
  59. }
  60. return output;
  61. }
  62. };