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);
相关推荐
PineappleCoder2 小时前
WebP/AVIF 有多香?比 JPEG 小 30%,<picture>标签完美解决兼容性
前端·面试·性能优化
Kaze_story2 小时前
Vue第五章(1):scoped、组件通信
前端·javascript·vue.js
hayzone2 小时前
Git 配置与使用全攻略(含工作流对比与 AI 协作)
前端
匠心网络科技2 小时前
前端框架-Vue为何开发更高效?
前端·javascript·vue.js·前端框架
UpYoung!2 小时前
【截图与贴图工具推荐】截图与贴图工具——PixPin保姆级详细图文下载安装指南
图像处理·贴图·实用工具·图像编辑·截图工具·开源工具·运维必备
哆啦A梦15882 小时前
商城后台管理系统 02 添加规格参数-动态表单
javascript·vue.js·elementui
大风起兮云飞扬丶2 小时前
react大列表更新时优化
前端·react.js·前端框架
0思必得02 小时前
[Web自动化] HTML5常见新增标签
前端·python·自动化·html5·web自动化
Alair‎2 小时前
103React数据处理
开发语言·前端·javascript
黛色正浓2 小时前
【React18+TypeScript】React 18 for Beginners
javascript·react.js·typescript