2013-07-29 55 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

相關問題