2013-07-29 30 views
0

我已经导入了一个JSON模型,导入了几何体和材质。是否可以编辑从JSON模型导入的纹理?

loader = new THREE.JSONLoader(); 

      loader.load("alisopoli/alisopoli.js", function(geometry, materials) { 
       for (var i = 0; i < materials.length; i ++) { 
        materials[ i ].side = THREE.DoubleSide; 
        materials[ i ].alphaTest = 0.75; 
        materials[ i ].overdraw = true; 
       } 
       mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials)); 
       mesh.overdraw = true; 
       scene.add(mesh); 
      }); 

该模型有很多的材料(超过30),我需要“THREE.nearestFilter”添加到每个质感他们的。 是否有可能做这样的事情?

loader.load("model.js", function(geometry, materials) { 
    var modelMaterials = new THREE.MeshFaceMaterial(materials); 
    var modelTextures = modelMaterials.map 
    moderTextures.minFilter = THREE.nearestFilter; 
    mesh = new THREE.Mesh(geometry, modelMaterials); 
    scene.add(mesh); 
}); 

我要编辑的“minFilter”和模型的每个纹理的“magFilter”(如果可能的话,所有的渲染场景的)。 在此先感谢!

回答

0

传入函数的materials参数实际上是一个包含所有材质的数组。你可以做的是循环通过该阵列,并设置每个minFilter,如下所示:

loader.load("model.js", function(geometry, materials) { 
    for (var i = 0; i < materials.length; i++) { 
     materials[i].map.minFilter = THREE.NearestFilter; 
     materials[i].map.magFilter = THREE.NearestFilter; 
    } 
    mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials)); 
    scene.add(mesh); 
}); 

这应该做的伎俩。

+0

材料数组中没有贴图。有mapAmbient和mapDiffuse,其中包含纹理名称 – Tarun

相关问题