123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /**
- * @author mrdoob / http://mrdoob.com/
- */
- THREE.MaterialExporter = function () {};
- THREE.MaterialExporter.prototype = {
- constructor: THREE.MaterialExporter,
- parse: function ( material ) {
- var output = {
- metadata: {
- version: 4.2,
- type: 'material',
- generator: 'MaterialExporter'
- }
- };
- output.uuid = material.uuid;
- if ( material.name !== "" ) output.name = material.name;
- if ( material instanceof THREE.MeshBasicMaterial ) {
- output.type = 'MeshBasicMaterial';
- output.color = material.color.getHex();
- if ( material.vertexColors !== THREE.NoColors ) output.vertexColors = material.vertexColors;
- if ( material.blending !== THREE.NormalBlending ) output.blending = material.blending;
- if ( material.side !== THREE.FrontSide ) output.side = material.side;
- output.opacity = material.opacity;
- output.transparent = material.transparent;
- output.wireframe = material.wireframe;
- } else if ( material instanceof THREE.MeshLambertMaterial ) {
- output.type = 'MeshLambertMaterial';
- output.color = material.color.getHex();
- output.ambient = material.ambient.getHex();
- output.emissive = material.emissive.getHex();
- if ( material.vertexColors !== THREE.NoColors ) output.vertexColors = material.vertexColors;
- if ( material.blending !== THREE.NormalBlending ) output.blending = material.blending;
- if ( material.side !== THREE.FrontSide ) output.side = material.side;
- output.opacity = material.opacity;
- output.transparent = material.transparent;
- output.wireframe = material.wireframe;
- } else if ( material instanceof THREE.MeshPhongMaterial ) {
- output.type = 'MeshPhongMaterial';
- output.color = material.color.getHex();
- output.ambient = material.ambient.getHex();
- output.emissive = material.emissive.getHex();
- output.specular = material.specular.getHex();
- output.shininess = material.shininess;
- if ( material.vertexColors !== THREE.NoColors ) output.vertexColors = material.vertexColors;
- if ( material.blending !== THREE.NormalBlending ) output.blending = material.blending;
- if ( material.side !== THREE.FrontSide ) output.side = material.side;
- output.opacity = material.opacity;
- output.transparent = material.transparent;
- output.wireframe = material.wireframe;
- } else if ( material instanceof THREE.MeshNormalMaterial ) {
- output.type = 'MeshNormalMaterial';
- if ( material.blending !== THREE.NormalBlending ) output.blending = material.blending;
- if ( material.side !== THREE.FrontSide ) output.side = material.side;
- output.opacity = material.opacity;
- output.transparent = material.transparent;
- output.wireframe = material.wireframe;
- } else if ( material instanceof THREE.MeshDepthMaterial ) {
- output.type = 'MeshDepthMaterial';
- if ( material.blending !== THREE.NormalBlending ) output.blending = material.blending;
- if ( material.side !== THREE.FrontSide ) output.side = material.side;
- output.opacity = material.opacity;
- output.transparent = material.transparent;
- output.wireframe = material.wireframe;
- } else if ( material instanceof THREE.MeshFaceMaterial ) {
- output.type = 'MeshFaceMaterial';
- output.materials = [];
- for ( var i = 0, l = material.materials.length; i < l; i ++ ) {
- output.materials.push( this.parse( material.materials[ i ] ) );
- }
- } else if ( material instanceof THREE.ShaderMaterial ) {
- output.type = 'ShaderMaterial';
- output.uniforms = material.uniforms;
- output.vertexShader = material.vertexShader;
- output.fragmentShader = material.fragmentShader;
- } else if ( material instanceof THREE.SpriteMaterial ) {
- output.type = 'SpriteMaterial';
- output.color = material.color.getHex();
- output.opacity = material.opacity;
- output.transparent = material.transparent;
- }
- return output;
- }
- };
|