JSONLoader的纹理不起作用

时间:2014-05-27 09:35:54

标签: json three.js blender

我通过Three.js-Exporter从带有纹理的搅拌机中导出一个简单的圆柱体,并尝试在我的项目中实现它。但是没有显示圆柱体。

所以这是我的JSON-File mystuff.js:

{

"metadata" :
{
    "formatVersion" : 3.1,
    "generatedBy"   : "Blender 2.65 Exporter",
    "vertices"      : 220,
    "faces"         : 326,
    "normals"       : 220,
    "colors"        : 0,
    "uvs"           : [414],
    "materials"     : 1,
    "morphTargets"  : 0,
    "bones"         : 0
},

"scale" : 1.000000,

"materials" : [ {
    "DbgColor" : 15658734,
    "DbgIndex" : 0,
    "DbgName" : "myMaterial",
    "blending" : "NormalBlending",
    "colorAmbient" : [0.6400000190734865, 0.6400000190734865, 0.6400000190734865],
    "colorDiffuse" : [0.6400000190734865, 0.6400000190734865, 0.6400000190734865],
    "colorSpecular" : [0.5, 0.5, 0.5],
    "depthTest" : true,
    "depthWrite" : true,
    "mapDiffuse" : "kirschbaum_kgl_hor.jpg",
    "mapDiffuseWrap" : ["repeat", "repeat"],
    "shading" : "Lambert",
    "specularCoef" : 50,
    "transparency" : 1.0,
    "transparent" : false,
    "vertexColors" : false
}],

"vertices" : [0,-0.5,-1.5,0,0.5,-1.5,0.0570888,-0.5,-1.49837,0.0570888,0.5,-1.49837,0.113991,-0.5,-1.49348,0.113991,0.5,-1.49348,0.170522,-0.5,-1.48535,0.170522,0.5,-1.48535,0.226497,-0.5,-1.47401,0.226497,0.5,-1.47401,0.281733,-0.5,-1.45949,0.281733,0.5,-1.45949,0.336049,-0.5,-1.44184,0.336049,0.5,-1.44184,0.38927,-0.5,-1.42112,0.38927,0.5,-1.42112,0.441221,-0.5,-1.3974,0.441221,0.5,-1.3974,0.491733,-0.5,-1.37075,0.491733,0.5,-1.37075,0.540641,-0.5,-1.34125,0.540641,0.5,-1.34125,0.587785,-0.5,-1.30902,0.587785,0.5,-1.30902,0.633012,-0.5,-1.27414,0.633012,0.5,-1.27414,0.676175,-0.5,...// a lot more ...],

"morphTargets" : [],

"normals" : [0,-0.700705,-0.713401,0,0.700705,-0.713401,0.040712,0.700736,-0.712241,0.040712,-0.700736,-0.712241,0.081301,0.700736,-0.708762,0.081301,-0.700736,-0.708762,0.121647,0.700736,-0.702963,0.121647,-0.700736,-0.702963,0.161565,0.700736,-0.694876,0.161565,-0.700736,-0.694876,0.200964,0.700736,-0.6845,0.200964,-0.700736,-0.6845,0.239723,0.700736,-0.671926,0.239723,-0.700736,-0.671926,0.277688,0.700736,-0.657125,0.277688,-0.700736,-0.657125,0.314768,0.700705,-0.640217,0.314768,-0.700705,-0.640217,0.35081,0.700705,-0.621204,0.35081,-0.700705,-0.621204,0.385693,0.700736,-0.600146,0.385693,-0.700736,-0.600146,0.419324,0.700736,-0.577166,0.419324,-0.700736,-0.577166,0.451582,0.700736,-0.552263,0.451582,-0.700705,-0.552263,0.482376,0.700736,-0.52559,0.482376,-0.700736,-0.52559,0.511612,// a lot more ...],

"colors" : [],

"uvs" : [[1,0.569264,0.749949,0.569264,0.749949,0.557335,1,0.557335,0.749949,0.545426,1,0.545426,0.749949,0.533575,1,0.533575,0.749949,0.521821,1,0.52182,0.749949,0.510202,1,0.510202,0.749949,0.498756,1,0.498756,0.749949,0.487521,1,0.487521,0.749949,0.476533,1,0.476533,0.749949,0.465828,1,0.465828,0.749949,0.455441,1,0.455441,0.749949,0.445406,1,0.445406,0.749949,0.435756,1,0.435756,0.749949,0.426521,1,0.426521,0.749949,0.417733,1,0.417733,1,1,0.749949,1,0.749949,0.991212,1,0.991212,0.749949,0.981977,1,0.981977,0.749949,0.972326,1,0.972326,0.749949,0.962291,1,0.962291,0.749949,0.951904,1,0.951904,0.749949,0.941199,1,0.941199,0.749949,0.930212,1,0.930211,0.749949,0.918976,1,0.918976,0.749949,0.907531,1,0.907531,0.749949,0.895912,1,0.895912,0.749949,0.884158,1,0.884158,0.749949,0.872307,1,0.872307,0.749949,0.860398,1,0.860398,0.749949,0.848469,1,0.848469,0.749949,0.83656,1,0.836559,0.749949,0.824708,1,0.824708,0.749949,0.812954,1,0.812954,0.749949,0.801336,1,0.801336,0.749949,0.78989,1,0.78989,0.749949,0.778655,1,0.778655,0.749949,0.767667,1,0.767667,0.749949,0.756962,1,0.756962,0.749949,0.746575,1,0.746575,0.749949,0.73654,1,0.73654,0.749949,0.726889,1,0.726889,0.749949,0.717655,1,0.717655,0.749949,0.708866,1,0.708866,0.499898,0.71718,0.249847// a lot more ...]],

"faces" : [43,0,1,3,2,0,0,1,2,3,0,1,2,3,43,2,3,5,4,0,3,2,4,5,3,2,4,5,43,4,5,7,6,0,5,4,6,7,5,4,6,7,43,6,7,9,8,0,7,6,8,9,7,6,8,9,43,8,9,11,10,0,9,8,10,11,9,8,10,11,43,10,11,13,12,0,11,10,12,13,11,10,12,13,43,12,13,15,14,0,13,12,14,15,13,12,14,15,43,14,15,17,16,0,15,14,16,17,15,14,16,17,43,16,17,19,18,0,17,16,18,19,17,16,18,19,43,18,19,21,20,0,19,18,20,21,19,18,20,21,43,20,21,23,22,0,21,20,22,23,21,20,22,23,43,22,23,25,24,0,23,22,24,25,23,22,24,25,43,24,25,27,26,0,25,24,26,27,25,24,26,27,43,26,27,29,28,0,27,26,28,29,27,26,28,29,43,28,29,31,30,0,30,31,32,33,29,28,30,31,43,30,31,33,32,0,33,32,34,35,31,30,32,33,43,32,33,35,34,0,35,34,36,37,33,32,34,35,43,34,35,37,36,0,37,36,38,39,35,34,36,37,43,36,37,39,38,0,39,38,40,41,37,36,38,39,43,38,39,41,40,0,41,40,42,43,39,38,40,41,43,40,41,43,42,0,43,42,44,45,41,40,42,43,43,42,43,45,44,0,45,44,46,47,43,42,44,45,43,44,45,47,46,0,47,46,48,49,45,44,46,47,43,46,47,49,48,0,49,48,50,51,47,46,48,49,43,48,49,51,50,0,51,50,52,53,49,48,50,51,43,50,51,53,52,0,53,52,54,55,51,50,52,53,43,52,53,55,54,0,55,54,56,57,53,52,54,55,43,54,55,57,56,0,57,56,58,59,55,54,56,57,43,56,57,59,58,0,59,58,60,61,57,56,58,59,43,58,59,61,60,0,61,60,62,63,59,58,60,61,43,60,61,63,62,0,63,62,64,65,61,60,62,63,43,62,63,65,64,0,65,64,66,67,63,62,64,65,43,64,65,67,66,0,67,66,68,69,65,64,66,67,43,66,67,69,68,0,69,68,70,71,67,66,68,69,43,68,69,71,70,0,71,70,72,73,69,68,70,71,43,70,71,73,72,0,73,72,74,75,71,70,72,73,43,72,73,75,74,0,75,74,76,77,73,72,74,75,43,74,75,77,76,0,77,76,78,79,75,74,76,77,43,76,77,79,78,0,79,78,80,81,77,76,78,79,43,78,79,81,80,0,81,80,82,83,79,78,80,81,43,80,81,83,82,0,83,82,84,85,81,80,82,83,43,82,83,85,84,0,86,87,88,89,83,82,84,85,43,84,85,87,86,0,89,88,90,91,85,84,86,87,43,86,87,89,88,0,91,90,92,93,87,86,88,89,43,88,89,91,90,0,93,92,94,95,89,88,90,91,43,90,91,93,92,0,95,94,96,97,91,90,92,93,43,92,93,95,94,0,97,96,98,99,93,92,94,95,43,94,95,97,96,0,99,98,100,101,95,94,96,97,43,96,97,99,98,0,101,100,102,103,97,96,98,99,43,98,99,101,100,0,103,102,104,105,99,98,100,101,43,100,101,103,102,0,105,104,106,107,101,100,102,103,// a lot more ...],

"bones" : [],

"skinIndices" : [],

"skinWeights" : [],

"animations" : []

}

这是我加载对象的代码片段:

var loader = new THREE.JSONLoader();
            loader.load('/OBJModels/mystuff.js', function(geo, mat){
                var materials = new THREE.MeshFaceMaterial( mat );

                var mesh = new THREE.Mesh(geo, materials);

                mesh.position.y=0;
                mesh.position.x=5;
                OBJECT3D.scene.add( mesh );
            });

没有错误,但对象未显示在浏览器中。有人有想法吗?谢谢! :)

还有一个问题:是否可以在loader-block中设置一个新材料?

1 个答案:

答案 0 :(得分:1)

好的,我有解决方案。对象太小了,所以我不得不缩放它。所以这是我的代码:

            var material2 = new THREE.MeshLambertMaterial( { map: OBJECT3D.tableLegTexture, ambient: 0x999999, shading: THREE.FlatShading } );
            var matBase = [material2]; // putting in Array for MeshFaceMaterial

            var loader = new THREE.JSONLoader();
            loader.load('/OBJModels/mystuff.js', function(geo, mat){
                var materials = new THREE.MeshFaceMaterial( matBase );

                var mesh = new THREE.Mesh(geo, materials);

                mesh.scale.set( 100, 100, 100 ); // that did the work ;-)
                mesh.position.y=5;
                OBJECT3D.scene.add( mesh );
            });

也许它可以帮助其他人有同样的愚蠢问题; - )

相关问题