three.js 模型实现动态切换纹理贴图
程序员文章站
2024-03-16 22:52:28
...
three.js 模型实现动态切换纹理贴图
如果按照下图官网这种写法,会报错“Texture marked for update but image is undefined”,
const texture = new THREE.TextureLoader().load( "textures/water.jpg" );
原因是:纹理加载是异步的。需要将大部分代码放入加载器回调函数中,所以采取下面这种写法把改变纹理的代码放在回调函数中
/**obj: 代表3d模型**/
/**map: 代表图片地址**/
function changeModelMap(obj, map){
new THREE.TextureLoader().load(map, function(texture){
//以便在下次使用纹理时触发一次更新
texture.needsUpdate = true;
obj.material.map = texture;
});
}
希望对小伙伴们有所帮助~
下一篇: php基础第二天