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);
相关推荐
利刃大大16 分钟前
【Vue】props完整语法 && 非父子组件通信 && provide && inject && eventBus
前端·javascript·vue.js
萧曵 丶20 分钟前
前端工程化项目中全类型配置文件的详细解析
前端·javascript·配置文件·工程化
讯方洋哥26 分钟前
HarmonyOS App开发——鸿蒙公共事件App开发
服务器·前端·javascript
Можно30 分钟前
吃透 Vue 的 v - 指令家族:从入门到精通
前端·javascript·vue.js
光影少年41 分钟前
react的hooks优缺点、底层实现及hooks参数
前端·react.js·前端框架
weixin_456907411 小时前
2026+:html+css 生态的成型之年与平台化跃迁
前端·css·html
上海合宙LuatOS1 小时前
LuatOS框架的使用(2)
java·服务器·开发语言·前端·数据库·嵌入式硬件·php
江湖有缘1 小时前
Docker部署NextTrace Web路由工具
前端·docker·容器
wljt1 小时前
游标分页原理
java·前端·数据库
KeroroLX1 小时前
uniapp项目中使用echarts
javascript·uni-app·echarts