我正在从使用普通的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中建议的。
我做错什么了吗?
1条答案
按热度按时间bf1o4zei1#
如果直接从本地服务器打开网站,则不能以这种方式使用es6导入。相反,你需要一个构建工具,将你的应用与其依赖项捆绑到一个构建文件中。然后可以将此文件导入到中
index.html
.我建议您使用一个像ThreeJSM这样的启动项目来演示一个非常基本的构建设置。