Three.js - 将各向异性应用于加载的js模型中的纹理

时间:2017-04-02 10:27:46

标签: json three.js textures material

我正在加载一个具有纹理的* .js模型。纹理本身是一个单独的文件,位于与模型相同的目录中,因此加载器将此纹理添加到* .js模型中。

var loader = new THREE.JSONLoader();
        var aMesh;
        loader.load("models/mesh.js", function (geometry, materials) {
            aMesh = new THREE.Mesh(geometry, materials[0]);
            scene.add(aMesh);
        });

从某个角度观察时纹理变得模糊,因此我需要对其应用各向异性过滤。

我只能猜测我需要创建一个 var Texture ,将纹理加载到其中,应用各向异性,然后将此纹理变量添加到网格或其材质[0]。

或者我可以直接以某种方式访问​​ aMesh 材质中的纹理吗?

1 个答案:

答案 0 :(得分:1)

这可能有效,未经测试。

var loader = new THREE.JSONLoader();
var aMesh;
loader.load("models/mesh.js", function (geometry, materials) {
  var maxAnisotropy = renderer.getMaxAnisotropy();
  materials[0].map.anisotropy = maxAnisotropy;
  aMesh = new THREE.Mesh(geometry, materials[0]);
  scene.add(aMesh);
});

如果没有,您可以始终覆盖the JSONLoader class的加载功能 或者单独加载模型和纹理。