Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 如何动态更改GLTF模型的纹理?_Three.js_Aframe - Fatal编程技术网

Three.js 如何动态更改GLTF模型的纹理?

Three.js 如何动态更改GLTF模型的纹理?,three.js,aframe,Three.js,Aframe,在我的场景中,我加载了一个.gltf模型,它渲染得很好。。它有一个.png纹理,在3d模型的表面上渲染。是否可以通过编程方式交换纹理?我正在使用aframe(a-asset-item和a-entity来加载gltf资产)一旦你在a-Frame或three.js中加载了一个模型,它以前是什么格式都不重要1。对于A-Frame,可以在加载模型后使用JS修改模型 var tex = new THREE.TextureLoader().load('diffuse.png'); tex.flipY = f

在我的场景中,我加载了一个.gltf模型,它渲染得很好。。它有一个.png纹理,在3d模型的表面上渲染。是否可以通过编程方式交换纹理?我正在使用aframe(a-asset-item和a-entity来加载gltf资产)

一旦你在a-Frame或three.js中加载了一个模型,它以前是什么格式都不重要1。对于A-Frame,可以在加载模型后使用JS修改模型

var tex = new THREE.TextureLoader().load('diffuse.png');
tex.flipY = false; // for glTF models.

el.addEventListener('model-loaded', function (e {
  e.detail.model.traverse(function(node) {
    if (node.isMesh) node.material.map = tex;
  });
});
请参阅上的文档以了解要编辑的属性,尽管这可能因加载的模型而异


1一个例外是上面的
tex.flipY=false
设置-您(可能)只需要glTF设置,其中UV的方向与three.js默认方向不同。

在这里也找到了我的解决方案: