1

对不起我的英语不好。我在使用 Three.js 时遇到了问题。在加载纹理的每个示例中,我都会看到以下代码:

var map = THREE.ImageUtils.loadTexture( "obj/textures/textures38.jpg" );
    map.wrapS   = map.wrapT = THREE.RepeatWrapping;
    map.repeat.set( 3, 3 );

你能告诉我,为什么我会收到这样的消息

Uncaught TypeError: Cannot call method 'loadTexture' of undefined 

这很好用:

var material=new THREE.MeshPhongMaterial({color:16777215,map:ImageUtils.loadTexture("obj/textures/textures38.jpg")});

我目前使用的 PS Three.js 版本不是最后一个

谢谢你。

4

2 回答 2

1

我目前使用的 PS Three.js 版本不是最后一个

你刚刚回答了你自己的问题。可能那个版本还没有ImageUtils命名空间。始终建议使用最新版本。

于 2012-07-03T10:32:11.353 回答
0

我用了

import { BasisTextureLoader } from './jsm/loaders.basisTexureLoader.js'; 
const loadersvariable = BasisTextureLoader.load("img.jpg");

您需要更改文件夹和文件的权限,否则会403 forbidden出错。将导入路径指向three.js加载程序文件夹的依赖项,但它们必须在一起,因为所有文件链接在一起,然后您必须从文件中调用变量才能使其生效,而无需从您获得的文件中调用变量uncaught referenceError: BasisTextureLoader is not defined

或者你可以做

<script type="module"> import { TextureLoader } from './src/loaders/TextureLoader.js';
const imagevariablename = new Textureloader.load("image.jpg");
also the displacementmap of examples folder in three.js has a working texture.loader already to copy
于 2021-11-17T20:35:31.910 回答