Three.js new THREE.TextureLoader()纹理贴图使用png图片显示为黑色

问题代码如下:

javascript 复制代码
  const texture = new THREE.TextureLoader().load('./image.png');
  droneGeometry = new THREE.PlaneGeometry(1, 1);
  droneMaterial = new THREE.MeshBasicMaterial({ map: texture});
  droneMesh = new THREE.Mesh(droneGeometry, droneMaterial);
  droneMesh.position.set(0, 1, 0);
  scene.add(droneMesh);
  renderer.render(scene, camera);

问题出在.TextureLoader()是一个异步函数,加载图片未完成便渲染图片了,参考网上解决方案有以下几种

1、使用回调

2、使用require请求图片

javascript 复制代码
  const texture = new THREE.TextureLoader().load(require('./image.png'));

作者使用的是vite + vue3的技术栈,未能通过上述方法解决,如下方法可以成功加载图片

javascript 复制代码
import droneTexture from '../../assets/images/大疆无人机.png';
 
const texture = new THREE.TextureLoader().load(droneTexture);
相关推荐
邹小邹-AI13 小时前
Rust + 前端:下一个十年的“王炸组合”
开发语言·前端·rust
行走在顶尖13 小时前
vue3+ant-design-vue
前端
百***354814 小时前
JavaScript在Node.js中的集群部署
开发语言·javascript·node.js
光影少年14 小时前
node.js和nest.js做智能体开发需要会哪些东西
开发语言·javascript·人工智能·node.js
华仔啊14 小时前
图片标签用 img 还是 picture?很多人彻底弄混了!
前端·html
lichong95114 小时前
XLog debug 开启打印日志,release 关闭打印日志
android·java·前端
南山安14 小时前
栈(Stack):从“弹夹”到算法面试题的进阶之路
javascript·算法·面试
烟袅14 小时前
作用域链 × 闭包:三段代码,看懂 JavaScript 的套娃人生
前端·javascript
San30.14 小时前
深入理解 JavaScript 异步编程:从 Ajax 到 Promise
开发语言·javascript·ajax·promise
风止何安啊14 小时前
收到字节的短信:Trae SOLO上线了?尝尝鲜,浅浅做个音乐播放器
前端·html·trae