我导入了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 :(得分:0)
传递给函数的材质参数实际上是所有材质的数组。您可以做的是遍历该数组并为每个数组设置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 );
} );
这应该可以解决问题。