์ฑŒ๋ฆฐ์ง€

์˜ค๋Š˜์€ ์ด์–ด์„œ Part3 [Three.js ๊ธฐ์ดˆ]์˜ Chapter02 3Dํ๋ธŒ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.(13~14๊ฐ•) ๊ทธ๋Ÿผ ์˜ค๋Š˜ ๊ฐ•์˜์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ๋“ค์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ž‘์„ฑํ•ด ๋ณผ๊ฒŒ์š”! ๐Ÿ”Ž01. OrbitControls ํ™”๋ฉด์ƒ์—์„œ ์ธํ„ฐ๋ ‰ํ‹ฐ๋ธŒํ•˜๊ฒŒ ์นด๋ฉ”๋ผ ์ปจํŠธ๋กค์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” threejs ๋นŒํŠธ์ธ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์นด๋ฉ”๋ผ๊ฐ€ ๋ฌผ์ฒด ์ฃผ๋ณ€์—์„œ ๊ถค๋„๋ฅผ ๊ทธ๋ฆฌ๋ฉฐ ๋Œ๊ณ ์žˆ๋Š” ๊ฑธ ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค. https://threejs.org/docs/index.html?q=Orbit#examples/en/controls/OrbitControls three.js docs threejs.org OrbitControls๋Š” three/addons ํŒจํ‚ค์ง€์—์„œ ์ง์ ‘ importํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. import { OrbitControls } fro..
์˜ค๋Š˜์€ ์ด์–ด์„œ Part3 [Three.js ๊ธฐ์ดˆ]์˜ Chapter02 3Dํ๋ธŒ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.(11~12๊ฐ•) ๊ทธ๋Ÿผ ์˜ค๋Š˜ ๊ฐ•์˜์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ๋“ค์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ž‘์„ฑํ•ด ๋ณผ๊ฒŒ์š”! ๐Ÿ”Ž01. ํ๋ธŒ์— ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ ์šฉํ•˜๊ธฐ ์• ๋‹ˆ๋ฉ”์ด์…˜์€ ์ •์ ์ธ ์žฅ๋ฉด์„ ์‹œ๊ฐ„์˜ ํ๋ฆ„์—๋”ฐ๋ผ ์—ฐ์†์œผ๋กœ ์—ฌ๋Ÿฌ ์žฅ ์ฐ์€ ๋‹ค์Œ ํ•˜๋‚˜๋กœ ์ด์–ด๋ถ™์ธ ๊ฒƒ์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์—ฌ๊ธฐ์„œ ์ •์ ์ธ ์‚ฌ์ง„ ์ฐ๊ธฐ = render ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ) FPS : 1์ดˆ์— ๋ช‡๋ฒˆ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์œ„. - ์˜ˆ๋กœ FPS=24๋Š” 1์ดˆ์— ์ด 24์žฅ์˜ ์‚ฌ์ง„์„ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ - ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ์ฐจ์ด๊ฐ€ ์žˆ์œผ๋‚˜ ๋ณดํ†ต 60FPS ์ง€์› window.requestAnimationFrame : ์งง์€ ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ render ๋ฉ”์„œ๋“œ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € API ์›น์—์„œ ์‚ฌ์šฉํ•  ์• ..
์˜ค๋Š˜์€ ์ด์–ด์„œ Part3 [Three.js ๊ธฐ์ดˆ]์˜ Chapter02 3Dํ๋ธŒ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.(08~10๊ฐ•) ๊ทธ๋Ÿผ ์˜ค๋Š˜ ๊ฐ•์˜์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ๋“ค์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ž‘์„ฑํ•ด ๋ณผ๊ฒŒ์š”! 8, 9 ๊ฐ•์€ threejs ๋ฌธ์„œ์—์„œ Material๊ณผ Camera ์‚ฌ์šฉ๋ฒ•๊ณผ ์˜ˆ์‹œ๋ฅผ ๊ฐ™์ด ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. https://threejs.org/docs/index.html#api/en/materials/LineBasicMaterial three.js docs threejs.org ๐Ÿ”Ž01. Material ์‚ดํŽด๋ณด๊ธฐ LineBasicMaterial - ์„ ํ˜•ํƒœ์˜ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MeshBasicMaterial - ์กฐ๋ช…์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋น› ์œ ๋ฌด์™€ ์ƒ๊ด€์—†์ด ์ž˜ ๋ณด์ด๋‚˜ ์Œ์˜ํ‘œํ˜„์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. MeshMate..
์˜ค๋Š˜์€ ์ด์–ด์„œ Part3 [Three.js ๊ธฐ์ดˆ]์˜ Chapter02 3Dํ๋ธŒ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.(06~07๊ฐ•) ๊ทธ๋Ÿผ ์˜ค๋Š˜ ๊ฐ•์˜์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ๋“ค์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ž‘์„ฑํ•ด ๋ณผ๊ฒŒ์š”! ์กฐ๋ช… ์ถ”๊ฐ€ํ•˜๊ธฐ scene์— ์กฐ๋ช…์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฌผ์ฒด์— ์ž…์ฒด๊ฐ์„ ๋”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Three.js์—๋Š” ์นด๋ฉ”๋ผ์ฒ˜๋Ÿผ ๋‹ค์–‘ํ•œ ์กฐ๋ช… ๊ฐ์ฒด๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์˜ค๋Š˜์€ ๊ทธ ์ค‘ directionalLight์™€ ambientLight ์กฐ๋ช…์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. directionalLight : ํŠน์ •ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ์ง์‚ฌ๊ด‘์„ ์„ ๋‚ด๋ ค์ฃผ๋Š” ์กฐ๋ช…์œผ๋กœ 3D ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•ด ๊ทธ๋ฆผ์ž ์Œ์˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ambientLight: scene์˜ ์€์€ํ•œ ๋ฐ๊ธฐ๋งŒ ์กฐ์ •ํ•  ์ˆ˜์žˆ๊ณ  ๊ทธ๋ฆผ์ž ์Œ์˜์€ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. *์ฃผ์˜ํ•  ์  : ์ด์ „์— ์‚ฌ์šฉํ–ˆ๋˜ MeshBasicMateria..
์˜ค๋Š˜์€ ์ด์–ด์„œ Part3 [Three.js ๊ธฐ์ดˆ]์˜ Chapter02 3Dํ๋ธŒ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.(01~05๊ฐ•) ๊ทธ๋Ÿผ ์˜ค๋Š˜ ๊ฐ•์˜์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ๋“ค์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ž‘์„ฑํ•ด ๋ณผ๊ฒŒ์š”! Three.js์˜ ๊ธฐ๋ณธ 4์š”์†Œ Three.js๋Š” ํฌ๊ฒŒ Renderer, Scene, Camera ๊ทธ๋ฆฌ๊ณ  3D Objects๋ฅผ ์‚ฌ์šฉํ•ด์„œ 3์ฐจ์› ๋ฌผ์ฒด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ฐ•์˜์—์„œ๋Š” ์ด๋Ÿฐ ๊ธฐ๋ณธ ์š”์†Œ๋“ค์„ ์˜ํ™” ์ดฌ์˜์— ๋น—๋Œ€์–ด ์„ค๋ช…ํ•ด์ฃผ์…จ์Šต๋‹ˆ๋‹ค. Scene์€ ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์žฅ๋ฉด์„ ์˜๋ฏธํ•˜๋ฉฐ ์”ฌ์— ๋ฐฐ์šฐ, ์ฃผ๋ณ€ ํ’๊ฒฝ ๋“ฑ์„ ๋‹ด๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Three.js์—์„œ๋Š” Mesh, Object, Light์™€ ๊ฐ™์€ 3์ฐจ์› ์˜ค๋ธŒ์ ํŠธ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์”ฌ๋“ค์„ ์นด๋ฉ”๋ผ๋ฅผ ํ†ตํ•ด ์ดฌ์˜ํ•˜๊ณ , Renderer๋ฅผ ํ†ตํ•ด ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ์ฒด๋ฅผ ๋ณด์—ฌ์ฃผ๋ ค๋ฉด ์šฐ์„  rend..
์˜ค๋Š˜์€ ์ด์–ด์„œ ํŒŒํŠธ3 [Three.js ๊ธฐ์ดˆ] ์ฑ•ํ„ฐ 01์˜ 4, 5๊ฐ•์„ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค! ๋ถ„๋ช… ์˜ค๋Š˜์€ ๊ผญ ๋งŽ์ด ๋“ค์–ด์•ผ์ง€์‹ถ์—ˆ๋Š”๋ฐ ์—ญ์‹œ ํ‰์ผ์— ๊ฐ•์˜๋ฅผ ๋“ฃ๋Š” ๊ฒƒ์€ ์‰ฌ์šด์ผ์ด ์•„๋‹ˆ๊ตฐ์š”..ใ…‹-ใ…‹ ๊ทธ๋Ÿผ ์˜ค๋Š˜ ๊ฐ•์˜์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ๋“ค์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ž‘์„ฑํ•ด ๋ณผ๊ฒŒ์š”! Three.js๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜์ง€๋งŒ(cdn, ์ง์ ‘๋‹ค์šด๋กœ๋“œ ๋“ฑ) ๊ฐ•์˜์—์„œ๋Š” ๋ชจ๋˜ ๋นŒ๋“œ ํˆด์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  npm์œผ๋กœ three.js๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•œ ๋นŒ๋“œ ๋„๊ตฌ์ธ ๋น„ํŠธ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Vite(๋น„ํŠธ) - Vue ์ฐฝ์‹œ์ž์ธ Evan You๊ฐ€ ๋งŒ๋“  ๋นŒ๋“œ ๋„๊ตฌ๋กœ ๊ธฐ์กด ๋ฒˆ๋“ค๋Ÿฌ์™€ esbuild์˜ ์žฅ์ ์„ ํ•ฉ์ณ ๋น ๋ฅธ ๋นŒ๋“œ ์†๋„ ์ œ๊ณต * esbuild๋Š” Go๋กœ ์ž‘์„ฑ๋œ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ๋กœ Webpack, percel๊ณผ ๊ฐ™์€ ๊ธฐ์กด ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ..
์–‘๋‚˜๋‹ˆ
'์ฑŒ๋ฆฐ์ง€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)