Estoy tratando de importar módulos para poder usar el efecto de floración, pero sigo recibiendo este error. Los .js se copiaron de three/examples/js/ para que estén actualizados.
índice.html:
<script src="../module/three.js";></script> <script src="../module/EffectComposer.js"></script> <script src="../module/CopyShader.js"></script> <script src="../module/ShaderPass.js"></script> <script src="../module/RenderPass.js"></script> <script src="../module/UnrealBloomPass.js"></script> <script src="../module/MaskPass.js"></script> <script src="../module/Pass.js"></script> <script src="../module/LuminosityHighPassShader.js"></script> <script type="module" src="index.js"></script>índice.js:
import * as THREE from "../module/three.module.js"; ... //bloom renderer const renderScene = new THREE.RenderPass(scene, camera);y da como resultado el siguiente error: TypeError no detectado: TRES.RenderPass no es un constructor
¿Cómo se supone que debo hacerlo de la manera correcta?
Estás importando three.js dos veces. Una vez a través de la etiqueta de secuencia de comandos y otra vez a través de la declaración de importación ES6. Este es un patrón incorrecto y definitivamente debe evitarse.
La importación ES6 redefine el espacio de nombres THREE en su aplicación y, por lo tanto, sobrescribe las importaciones anteriores a través de la etiqueta del script . Por lo tanto, elimine la siguiente línea y vuelva a intentarlo:
import * as THREE from "../module/three.module.js";