【问题标题】:Three js Texture Loader can't load a texture三 js Texture Loader 无法加载纹理
【发布时间】:2020-06-10 20:22:51
【问题描述】:

我正在尝试使用三个 js 加载图像(我想要与此项目相同的结果:https://github.com/brunoimbrizi/interactive-particles)。 但是当我运行项目时,代码不想加载图像并直接显示错误。 这是我的代码:

init(src) {
        const loader = new THREE.TextureLoader();

        loader.load('images/sample-01.png',
            (texture) => {
                console.log('YOOOO');
                this.texture = texture;
                this.texture.minFilter = THREE.LinearFilter;
                this.texture.magFilter = THREE.LinearFilter;
                this.texture.format = THREE.RGBFormat;

                this.width = texture.image.width;
                this.height = texture.image.height;

                this.initPoints(true);
                this.initHitArea();
                this.initTouch();
                this.resize();
                this.show();
            },
            function (err) {
                console.log('LOADING');
            },

            // onError callback
            function (err) {
                console.error('An error happened.', err);
            });
    }

我确信图像路径是正确的,所以很遗憾我对这个问题有所了解。 这是错误:

我在 Vue js 上运行这个项目,使用 npm run dev 所以我在服务器上。

我希望有人能够帮助我,我正在为此工作 3 天......

谢谢!

【问题讨论】:

  • “网络”选项卡向您显示了什么? sample-01.png 图像是否正在加载,还是在“状态”列下显示 404 错误?

标签: google-chrome vue.js three.js textures loader


【解决方案1】:

尝试在不调用任何外围方法的情况下分配加载的纹理。像这样简单的事情:

const loader = new THREE.TextureLoader();
const texMap = loader.load('images/sample-01.png');

new MeshBasicMaterial({map: texMap});

我很确定如果图像 URL 正确,并且上面的简单测试有效,那么问题来自以下额外方法之一:

this.initPoints(true);
this.initHitArea();
this.initTouch();
this.resize();
this.show();

【讨论】:

  • 感谢您的回答。我尝试以一种简单的方式加载纹理,但看起来它也不起作用。当我 console.log 网格材质贴图时,图像被声明为未定义,并且没有出现纹理路径.. 似乎是同样的错误:(
  • @DavyJacquemaard 您是否检查了“网络”选项卡以查看图像是否正在加载?
  • 是的,图片在网络标签中,没有错误404!
  • 那我不知道还能是什么。如果您可以通过 code snippet 或 JSFiddle 展示一个工作示例,那么诊断问题会更容易。
  • 是的,我尝试制作一个 JSFiddle(我对此并不满意),但这是一个包含很多模块的复杂 VueJS 项目,所以我只是将主要方法放在了 Javascript 部分。当然,这个例子不起作用,所以我认为它不会帮助你帮助我。但是为什么不呢,可能有一个巨大的代码错误:jsfiddle.net/davy_j11/r8vepkjd
猜你喜欢
  • 2017-09-11
  • 1970-01-01
  • 2012-09-15
  • 2015-08-31
  • 2018-04-04
  • 2022-01-25
  • 1970-01-01
  • 2021-12-15
  • 2021-10-08
相关资源
最近更新 更多