【问题标题】:Three.js - Apply anisotropy to a texture in a loaded js modelThree.js - 将各向异性应用于加载的 js 模型中的纹理
【发布时间】:2017-08-27 07:04:09
【问题描述】:

我正在加载一个具有纹理的 *.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 材质中的纹理吗?

【问题讨论】:

  • 请不要破坏您自己的帖子。当您在此处发帖时,您授予 SO 根据 CC-by SA 4.0 分发内容的权利。任何破坏行为都将被撤销。

标签: json three.js textures


【解决方案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 的加载函数。
或者分别加载模型和纹理。

【讨论】:

    猜你喜欢
    • 2019-10-18
    • 1970-01-01
    • 2017-06-25
    • 2012-10-06
    • 2019-09-19
    • 2013-07-30
    • 2013-06-28
    • 1970-01-01
    • 2014-03-10
    相关资源
    最近更新 更多