【问题标题】:Import 3d model with three.js使用 three.js 导入 3d 模型
【发布时间】:2021-08-19 01:20:44
【问题描述】:

我正在尝试学习three.js,并且一直在关注他们的文档。我无法从搅拌机中导入对象。我在这里做错了什么?我有场景、相机、渲染器和加载器。

import * as THREE from "https://cdn.skypack.dev/three@0.131.3";
import { GLTFLoader } from "path/";

const scene = new THREE.Scene();

const camera = new THREE.PerspectiveCamera(
  75,
  window.innerWidth / window.innerHeight,
  0.1,
  1000
);

const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

const loader = new GLTFLoader();

loader.load(
  "path/object.glb",
  function (gltf) {
    scene.add(gltf.scene);
  },
  undefined,
  function (error) {
    console.error(error);
  }
);
renderer.render(scene, camera);

【问题讨论】:

  • Three.JS 通常非常擅长在浏览器的 Web 检查器控制台选项卡中提供有用的消息。 (F12) 如果有的话,附上这些将帮助其他人诊断您的问题。网络选项卡也可能显示有用的信息。在线托管您创建的内容会更有帮助。

标签: javascript three.js


【解决方案1】:

GLTFLoader 无法从 "path/" 导入,因为那是一个文件夹。您需要指向一个包含加载程序代码的 .js 文件。

(另外,如果您发布在控制台中看到的任何错误,将会很有帮助)

【讨论】:

  • 感谢您的回复。我将路径作为我将用于加载程序的目录(它是正确的目录),但我使用了错误的 GLTFLoader。
  • 但是import {GLTFLoader} from “path/“; 没有意义。如果您指向文件夹,则无法导入加载程序。它需要指向一个 JavaScript 文件。
  • 你是对的,我实际上切换到使用
  • 这完全是一个不同的问题。如果我的回答解决了您最初的问题,您可以接受或投票。但听起来你不明白导入是如何工作的。我建议您查看有关它的教程,这样您就不会在应用程序需要的每个模块中都遇到这些问题。
猜你喜欢
  • 1970-01-01
  • 2014-07-24
  • 2019-03-07
  • 2018-10-31
  • 2019-09-20
  • 2019-05-19
  • 1970-01-01
  • 2017-03-09
相关资源
最近更新 更多