我试图这样从三个(节点模块)导入SSAO shader
:
import {SSAOShader} from 'three/examples/js/shaders/SSAOShader'`
但是我得到了:
ReferenceError: THREE is not defined
./node_modules/three/examples/js/shaders/SSAOShader.js
node_modules/three/examples/js/shaders/SSAOShader.js:9
6 | * https://learnopengl.com/Advanced-Lighting/SSAO
7 | *
8 | */
> 9 | THREE.SSAOShader = {
10 | defines: {
11 | "PERSPECTIVE_CAMERA": 1,
12 | "KERNEL_SIZE": 32
链接到jsm
文件没问题,但是链接到js
文件会引发错误。
import React, { Component } from 'react';
import * as THREE from 'three';
import {GLTFLoader} from 'three/examples/jsm/loaders/GLTFLoader';
import {OBJLoader} from 'three/examples/jsm/loaders/OBJLoader';
import {SSAOShader} from 'three/examples/js/shaders/SSAOShader';
希望能够使用该库而不会引发错误。
答案 0 :(得分:2)
从“三/ examples / js / shaders / SSAOShader”导入{SSAOShader};
由于SSAOShader
不是模块,因此此代码行无效。现在,您必须自己将文件转换为模块。稍后,SSAOShader
目录中将提供jsm
的模块版本。
three.js R104