Three.js: JSM / GLTFLoader : jsm์„ ์‚ฌ์šฉํ•˜๋Š” Webpack ์˜ค๋ฅ˜

์— ๋งŒ๋“  2019๋…„ 03์›” 09์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: mrdoob/three.js

๋ฌธ์ œ์— ๋Œ€ํ•œ ์„ค๋ช…

๋‚˜๋Š” ๋ฒˆ ๋“ค๋Ÿฌ๋กœ webpack์„ ์‚ฌ์šฉํ•˜๋Š” Angular ํ”„๋กœ์ ํŠธ์—์„œ three.js๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
GLTF ํŒŒ์ผ์„๋กœ๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ReferenceError๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ERROR Error: Uncaught (in promise): ReferenceError: THREE is not defined ReferenceError: THREE is not defined at GLTFLoader.js:2715

์ด ์ฝ”๋“œ ์ค„์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

https://github.com/mrdoob/three.js/blob/1bb6d19805a30e6edb5650d40ab248a3f9ce918e/examples/jsm/loaders/GLTFLoader.js#L2715

TypeScript ์ฝ”๋“œ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋กœ๋”๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

import { GLTFLoader} from 'three/examples/jsm/loaders/GLTFLoader';

_BufferGeometryUtils_๋ฅผ _three.module.js_๋กœ ๋‚ด๋ณด๋‚ด๊ฑฐ๋‚˜ ์ „์—ญ _THREE_ ๊ฐœ์ฒด๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์ฝ”๋“œ ๋ธ”๋ก์„ GLTFLoader์˜ jsm ๋ฒ„์ „์—์„œ ์ œ๊ฑฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ _BufferGeometryUtils_๊ฐ€ _modularize_ ์Šคํฌ๋ฆฝํŠธ์—์„œ ์˜ˆ์™ธ๋ผ๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/mrdoob/three.js/blob/e88edaa2caea2b61c7ccfc00d1a4f8870399642a/utils/modularize.js#L15

Three.js ๋ฒ„์ „
  • [] ๊ฐœ๋ฐœ์ž
  • [x] r102
  • [] ...
๋ธŒ๋ผ์šฐ์ €
  • [x] ๋ชจ๋‘
  • [] ํฌ๋กฌ
  • [] Firefox
  • [ ] ์ธํ„ฐ๋„ท ์ต์Šคํ”Œ๋กœ๋Ÿฌ
OS
  • [x] ๋ชจ๋‘
  • [] Windows
  • [ ] ๋งฅ OS
  • [] Linux
  • [] Android
  • [] iOS
ํ•˜๋“œ์›จ์–ด ์š”๊ตฌ ์‚ฌํ•ญ (๊ทธ๋ž˜ํ”ฝ ์นด๋“œ, VR ์žฅ์น˜ ๋“ฑ)

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” dev ๋ธŒ๋žœ์น˜์—์„œ ์—…๋ฐ์ดํŠธ ๋œ GLTFLoader๋ฅผ ์‹œ๋„ํ•ด ๋ณด์•˜๊ณ , ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋ฉด์„œ ์ž˜ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ˆ˜์ • ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๊ธด๊ธ‰ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ์‚ฌ๋žŒ์€ 'three-gltf-loader'npm ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

import GLTFLoader from 'three-gltf-loader';

๋ชจ๋“  3 ๋Œ“๊ธ€

์•ˆํƒ€๊น๊ฒŒ๋„ examples/jsm ๋ชจ๋“ˆ์€ ์•„์ง ์™„์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„์ง ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ๊ธฐ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ๋ณด๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

https://discourse.threejs.org/t/importing-three-r102-examples-jsm-gltfloader-into-angular-7-project/6484

# 15582๋ฅผ ๋ณ‘ํ•ฉํ•˜๋ฉด์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” dev ๋ธŒ๋žœ์น˜์—์„œ ์—…๋ฐ์ดํŠธ ๋œ GLTFLoader๋ฅผ ์‹œ๋„ํ•ด ๋ณด์•˜๊ณ , ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋ฉด์„œ ์ž˜ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ˆ˜์ • ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๊ธด๊ธ‰ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ์‚ฌ๋žŒ์€ 'three-gltf-loader'npm ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

import GLTFLoader from 'three-gltf-loader';

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰