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

Three.js - Apply anisotropy to a texture in a loaded js model

我正在加载具有纹理的 *.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,将纹理加载到其中,应用各向异性,然后将此纹理变量添加到网格或其 material[0].

或者我可以直接访问 aMesh material 中的纹理吗?

这可能有效,未经测试。

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 的加载函数。
或者分别加载模型和贴图