如何正确导入three.js outlinepass jsm?

jaxagkaj  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(471)

我正在从使用普通的JavaScriptThreeJS过渡到使用节点版本,一开始我就被卡住了。
orbitcontrols在某种程度上是好的,但是当我导入任何后处理时,我总是得到以下错误:

以下是相关代码:

import * as THREE from 'three';
import {OutlinePass} from 'three/examples/jsm/postprocessing/OutlinePass';
import {OrbitControls} from 'three/examples/jsm/controls/OrbitControls';
import Stats from 'three/examples/jsm/libs/stats.module';

const scene = new THREE.Scene();

const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 100);
camera.position.z = 2;

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

var outline = new OutlinePass(new THREE.Vector2(window.innerWidth, window.innerHeight), scene, camera);

正如你所看到的,我还没有对outlinepass做任何事情,因为我无法将其导入。我也尝试过以同样的方式导入effectscomposer,但它也没有移动。目录应该是正确的,因为它是在intellisense中建议的。
我做错什么了吗?

bf1o4zei

bf1o4zei1#

如果直接从本地服务器打开网站,则不能以这种方式使用es6导入。相反,你需要一个构建工具,将你的应用与其依赖项捆绑到一个构建文件中。然后可以将此文件导入到中 index.html .
我建议您使用一个像ThreeJSM这样的启动项目来演示一个非常基本的构建设置。

相关问题