欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
     });
 }

希望对小伙伴们有所帮助~