์ฑŒ๋ฆฐ์ง€

์•ˆ๋…•ํ•˜์„ธ์š”... ์•„์‰ฝ๊ฒŒ๋„ ๋ฏธ์…˜ ์‹คํŒจ ํ›„๊ธฐ๋ฅผ ์˜ฌ๋ฆฌ๊ฒŒ๋๋„ค์š” ใ…  ํ•˜.. ํ•ด์ปค์Šค ํ™˜๊ธ‰ ์ฑŒ๋ฆฐ์ง€๋„ ์„ฑ๊ณตํ–ˆ๋˜ ์ €์˜€๋Š”๋ฐ,, ์—ญ์‹œ ์ง์žฅ์„ ๋‹ค๋‹ˆ๋ฉด์„œ ์ฑŒ๋ฆฐ์ง€๋ฅผ ํ•˜๊ธฐ๋ž€ ์‰ฝ์ง€์•Š๊ตฐ์š”.. 26์ผ, ์•ผ๊ทผ์— ์ง€์นœ ๋‚˜๋จธ์ง€ ์ง‘ ๋„์ฐฉํ•ด์„œ ์นจ๋Œ€์— ์ž ๊น ๋ˆ•๋Š”๋‹ค๋Š” ๊ฒŒ ๊ทธ๋Œ€๋กœ ์ž ๋“ค์–ด๋ฒ„๋ ธ๋„ค์š” ๐Ÿฅฒ ๋ธ”๋กœ๊ทธ ์ž„์‹œ ๊ธ€์€ ๋‚จ๊ฒจ๋†จ๋Š”๋ฐ ใ…  ๊ฐ•์˜๋ฅผ ๋ชป๋“ค์–ด์„œ ์‹คํŒจ์ผ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.. ํฌํ•ญํ•ญ ์•„์‰ฝ์ง€๋งŒ ์ฑŒ๋ฆฐ์ง€ ๋ธ”๋กœ๊ทธ ๊ธ€์€ ์—ฌ๊ธฐ๊นŒ์ง€ ์˜ฌ๋ฆฌ๊ฒŒ ๋  ๊ฒƒ ๊ฐ™์•„์š”. ๊ทธ๋ž˜๋‘ ๊ฐ•์˜๋Š” ๋๊นŒ์ง€ ๋“ค์„ ์˜ˆ์ •์ด๋ผ ๋“ค์œผ๋ฉด์„œ ์ข…์ข… ๊ธ€์€ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ๊ทธ๋Ÿผ ์•ˆ๋…•..๐Ÿ˜Œ
Part3 [Three.js]์˜ Chapter03 3D ํ…์ŠคํŠธ ๊ฐ•์˜ ํ›„๊ธฐ(10~11๊ฐ•) ์˜ค๋Š˜์€ ํ…์ŠคํŠธ์— ๊ทธ๋ฆผ์ž๋ฅผ ๋งŒ๋“ค๊ณ  ์ง€๋‚œ๋ฒˆ์— ํ…์ŠคํŠธ์— ํ…์Šค์ณ๋ฅผ ์ž…ํ˜”๋“ฏ์ด ๊ด‘์›์—๋„ ํ…์Šค์ณ๋ฅผ ์ž…ํ˜€๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์ž๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด renderer์˜ ์„ค์ •๋ถ€ํ„ฐ! ๋ณ€๊ฒฝํ•ด์ฃผ์…”์•ผํ•ฉ๋‹ˆ๋‹ค. Three.js๋Š” ์–ด๋–ค ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ ๋ฐ”๋กœ ์ ์šฉ์ด ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์•„๋ž˜์ฒ˜๋Ÿผ ํ•ญ์ƒ ํŠน์ • ์†์„ฑ๊ฐ’์„ true๋กœ ์„ค์ •ํ•ด์ค˜์•ผ ์ ์šฉ์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”.. renderer.shadowMap.enabled = true; ์ดํ›„์—๋Š” ๊ทธ๋ฆผ์ž๋ฅผ ๋“œ๋ฆฌ์šธ ๊ฐ์ฒด์™€ ๊ทธ๋ฆผ์ž๋ฅผ ๋ฐ›์„ ๊ฐ์ฒด๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ•์˜์—์„œ๋Š” ํ…์ŠคํŠธ์— ๊ทธ๋ฆผ์ž๋ฅผ ๋“œ๋ฆฌ์šฐ๊ณ  ํ…์ŠคํŠธ ๋’ค์—์žˆ๋Š” ํ”Œ๋ ˆ์ธ๋ฉ”์„œ๋“œ๊ฐ€ ๊ทธ๋ฆผ์ž๋ฅผ ๋ฐ›๊ฒŒ ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. text.castShadow = true; ... plain.receiveShado..
Part3 [Three.js]์˜ Chapter03 3D ํ…์ŠคํŠธ ๊ฐ•์˜ ํ›„๊ธฐ(08~09๊ฐ•) ์˜ค๋Š˜์€ spolight ์กฐ๋ช…์„ ์ถ”๊ฐ€ํ•ด์„œ ํ…์ŠคํŠธ ๋’ค์ชฝ์— ์กฐ๋ช…์ด ํ–ฅํ•˜๋Š” ๋ชจ์Šต์„ ๊ตฌํ˜„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. spolight ์กฐ๋ช…์€ ์ดฌ์˜์žฅ์—์„œ ๋ฐฐ์šฐ๋“ค์„ ๋น„์ถœ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ทธ ์กฐ๋ช…์„ ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋˜๋Š”๋ฐ์š”, target๊ฐ’์„ ๊ฐ€์ง€๊ณ ์žˆ์–ด์„œ ์–ด๋А๊ณณ์„ ํ–ฅํ•ด ์กฐ๋ช…์„ ๋น„์ถœ์ง€ ๋”ฐ๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. spolight ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•˜๋Š” ๊ฑด ๋‹ค๋ฅธ ambient, point light์ฒ˜๋Ÿผ new THREE.Spolight๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”, props๊ฐ€ ๋‹ค๋ฅธ ์กฐ๋ช…๋“ค๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ข€ ๋งŽ์•„ ๋ณด์ž…๋‹ˆ๋‹ค. ์ฐจ๋ก€๋Œ€๋กœ ๋น›์˜ ์ƒ‰์ƒ, ๊ฐ•๋„, ๊ฑฐ๋ฆฌ, ํผ์ง€๋Š” ๊ฐ๋„, ๋ฐ˜๊ทธ๋ฆผ์ž..?, ๊ฑฐ๋ฆฌ์—๋”ฐ๋ผ ๋น›์ด ํฌ๋ฏธํ•ด์ง€๋Š” ์ •๋„ ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. Three.js ๊ณต๋ถ€ํ•  ๋•Œ๋งˆ๋‹ค ๋ชจ๋ฅด๋Š” ๋‹จ์–ด๋“ค์ด..
Part3 [Three.js]์˜ Chapter03 3D ํ…์ŠคํŠธ ๊ฐ•์˜ ํ›„๊ธฐ(06~07๊ฐ•) ์˜ค๋Š˜์€ Text Geometry๋ฅผ ์ „๋ฐ˜์ ์œผ๋กœ ๋‹ค๋“ฌ๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. bevel๊ฐ’์„ ์กฐ์ •ํ•˜๊ณ  texture๋ฅผ ์ž…ํ˜€์„œ ์ข€ ๋” ๋‹ค์ฑ„๋กญ๊ฒŒ ๋ณด์ด๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. bevel์€ ์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ๋„ ์—ฌ๋Ÿฌ๋ฒˆ ์‚ฌ์šฉํ–ˆ์—ˆ๋Š”๋ฐ์š”, bevel๊ณผ ๊ด€๋ จ๋œ ์†์„ฑ์€ geometry์˜ ๊ฒฝ์‚ฌ๋ฉด์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ depth, bevelThickness, bevelSize, bevelOffset, bevelSegments ๋“ฑ์˜ ์†์„ฑ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ bevelSegments๋ฅผ ํฌ๊ฒŒํ•˜๋ฉด ๋ ˆ์ด์•„์›ƒ์ด ๋งŽ์•„์ ธ์„œ ์ข€ ๋” ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋ณด์ด๊ฒŒ ๋˜๋Š”๋ฐ์š”, ๋‹น์—ฐํžˆ ๋ Œ๋”๋ง ๋น„์šฉ๋„ ๋งŽ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„ ๊ทธ๋ฆฌ๊ณ  bevel ์„ค์ •์„..
Part3 [Three.js]์˜ Chapter03 3D ํ…์ŠคํŠธ ๊ฐ•์˜ ํ›„๊ธฐ(04~05๊ฐ•) ์˜ค๋Š˜์€ ํฐํŠธ๋ฅผ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋กœ๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ Text Geometry๋ฅผ ํ™”๋ฉด ๊ฐ€์šด๋ฐ๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ์ง€๋‚œ ์‹œ๊ฐ„์— ๊ธฐ๋ณธ์ ์ธ otf, ttf ํฐํŠธ๋ฅผ typeFont๋กœ ๋ณ€๊ฒฝ ํ›„ Three.js๊ฐ€ ์ œ๊ณตํ•˜๋Š” FontLoader class๋ฅผ ์‚ฌ์šฉํ•ด์„œ three.js์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” font ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ด๋ฅผ TextGeometry์— font ์˜ต์…˜์œผ๋กœ ์ถ”๊ฐ€ํ•˜์—ฌ ์ ์šฉํ•˜๋Š” ๊ฒƒ๊นŒ์ง€ ํ–ˆ๋Š”๋ฐ์š”, ์ด๋•Œ ์ฝ”๋“œ๋ฅผ ๋ณด์‹œ๋ฉด ํ…์ŠคํŠธ๋กœ ์ถ”๊ฐ€ํ•œ ๊ฐ’์ด onLoad cb scope ์—์„œ๋งŒ ์œ ํšจํ•˜๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. const fontLoader = new FontLoader(); // 1. load method fontLoa..
์˜ค๋Š˜์€ ์ด์–ด์„œ Part3 [Three.js]์˜ Chapter03 3D ํ…์ŠคํŠธ ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.(01~03๊ฐ•) ๊ทธ๋Ÿผ ์˜ค๋Š˜ ๊ฐ•์˜์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ๋“ค๊ณผ ๋А๋‚€์ ์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ž‘์„ฑํ•ด ๋ณผ๊ฒŒ์š”! ๐Ÿ”Ž01. ํฐํŠธ ๋ณ€ํ™˜ํ•˜๊ธฐ Three.js์—์„œ ํ…์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ค„๋•Œ๋Š” text geometry๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ์š”, ์ด๋•Œ ์ „๋‹ฌํ•˜๋Š” ํฐํŠธ์˜ ํ˜•์‹์ด ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ttf,otf ๊ฐ™์€ ํ˜•์‹์ด ์•„๋‹ˆ๋ผ TypeFace๋ผ๋Š” json ํ˜•์‹์˜ ์ฝ”๋“œ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํžˆ ์ ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ํฐํŠธ๋Š” ์•„๋ž˜์ฝ”๋“œ์ฒ˜๋Ÿผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. import typeface from 'three/examples/fonts/gentilis_bold.typeface.json' ์œ„ ํฐํŠธ๋“ค์€ ํ•œ๊ธ€์ง€์›์ด ์•ˆ๋˜๋Š”์ง€๋ผ ๊ฐ•์˜์—์„œ๋Š” ํ•œ๊ธ€ ์ง€์›์ด ๋˜๋Š” ํฐํŠธ๋ฅผ ์ƒˆ๋กœ ๋ฐ›์€ ํ›„ T..
์–‘๋‚˜๋‹ˆ
'์ฑŒ๋ฆฐ์ง€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก