undefined

9๊ฐ• ๊ทธ๋ฆผ์ž

three.js๋Š” ๋™์ ์œผ๋กœ ๊ทธ๋ฆผ์ž๋ฅผ ๋ Œ๋”๋ง ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‚ด๋ถ€์ ์œผ๋กœ ํ…์Šค์ณ ๋งตํ•‘์„ ํ†ตํ•ด ๊ทธ๋ฆผ์ž๋ฅผ ์œ„ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด ์ด๋ฏธ์ง€๋ฅผ ์ด์šฉํ•ด ๊ทธ๋ฆผ์ž๋ฅผ ์‹œ๊ฐํ™” ํ•ด๋ณด์ž.


๊ทธ๋ฆผ์ž๋ฅผ ๋ Œ๋”๋งํ•˜๊ธฐ ์œ„ํ•œ ์„ธ ๊ฐ€์ง€ ๊ฐ์ฒด ์„ค์ •

1. Renderer ๊ฐ์ฒด

renderer.shadowMap.enabled = true

 

2. ๊ด‘์›

๊ทธ๋ฆผ์ž๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ด‘์›

  • DirectionalLight
  • PointLight
  • SpotLight

์ด ๊ด‘์›๋“ค์€ ๋ชจ๋‘ shadow.camera ์†์„ฑ์„ ๊ฐ–๋Š”๋‹ค.

์ด ์†์„ฑ์ด ๊ทธ๋ฆผ์ž์— ๋Œ€ํ•œ ํ…์Šค์ณ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

๊ทธ๋ฆผ์ž๋ฅผ ์ค„ ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€๋ฅผ ๋‹ค์Œ์ฒ˜๋Ÿผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

light.castShadow = true;  // ํ™œ์„ฑํ™”

 

3. ๋ชจ๋ธ

๊ทธ๋ฆผ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ชจ๋ธ์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

mesh.receiveShadow = true; // ๊ทธ๋ฆผ์ž๋ฅผ ๋ฐ›์•„์„œ ํ‘œํ˜„ํ•˜๋Š” ๋ชจ๋ธ
mesh.castShadow = true; // ๊ทธ๋ฆผ์ž๋ฅผ ๋‹ค๋ฅธ ๊ฐ์ฒด์— ์ฃผ๋Š” ๋ชจ๋ธ

 

DirectionalLight์˜ ๊ทธ๋ฆผ์ž

shadow.camera ์„ค์ •

DirectionalLight์˜ ๊ทธ๋ฆผ์ž๋ฅผ ์œ„ํ•œ ์นด๋ฉ”๋ผ๋Š” OrthographicCamera

⇒ ์นด๋ฉ”๋ผ์˜ ์ ˆ๋‘์ฒด๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๊ทธ๋ฆผ์ž๊ฐ€ ์งค๋ฆฌ๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ฆผ์ž๊ฐ€ ์ ˆ๋‘์ฒด๋ฅผ ๋ฒ—์–ด๋‚˜ ์งค๋ฆฌ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์นด๋ฉ”๋ผ์˜ ์ ˆ๋‘์ฒด๋ฅผ ๊ทธ๋ฆผ์ž๊ฐ€ ์ง€๋‚˜๋Š” ์œ„์น˜๋ณด๋‹ค ํฌ๊ฒŒ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

light.shadow.camera.top = light.shadow.camera.right = 6;
light.shadow.camera.bottom = light.shadow.camera.left = -6;

๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •ํ–ˆ์„ ๋•Œ ์ ˆ๋‘์ฒด๋ฅผ ๋ฒ—์–ด๋‚จ

๋””ํดํŠธ ๊ฐ’์ผ ๋•Œ ์ ˆ๋‘์ฒด๋ฅผ ๋ฒ—์–ด๋‚œ๋‹ค.
์ ˆ๋‘์ฒด๋ฅผ ํฌ๊ฒŒ ์„ค์ •ํ–ˆ์„ ๋•Œ

 

๊ทธ๋ฆผ์ž์˜ ํ’ˆ์งˆ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ

๊ทธ๋ฆผ์ž๋Š” ํ…์Šค์ณ ๋งตํ•‘ ์ด๋ฏธ์ง€๋ฅผ ์ด์šฉํ•ด ํ‘œํ˜„๋œ๋‹ค.

ํ…์Šค์ณ ๋งตํ•‘ ์ด๋ฏธ์ง€์˜ ๋””ํดํŠธ ํฌ๊ธฐ๋Š” 512 * 512์ธ๋ฐ, ์ด ํฌ๊ธฐ๋ฅผ ํฌ๊ฒŒ ํ•  ์ˆ˜๋ก ํ’ˆ์งˆ์ด ํ–ฅ์ƒ๋œ๋‹ค.

 

๊ทธ๋ฆผ์ž์˜ ๊ฒฝ๊ณ„ ๋ธ”๋Ÿฌ๋ง ์ฒ˜๋ฆฌํ•˜๊ธฐ

shadow.radius: ๊ฐ’์ด ํด์ˆ˜๋ก ๋ธ”๋Ÿฌ๋ง ํšจ๊ณผ๊ฐ€ ๊ฐ•ํ•ด์ง„๋‹ค. (๊ธฐ๋ณธ๊ฐ’: 1)

light.shadow.radius = 30;

 

๊ธฐ๋ณธ๊ฐ’์ผ ๋•Œ (=1)
ํฌ๊ฒŒ ์„ค์ • ํ–ˆ์„ ๋•Œ (=30)

 

PointLight์˜ ๊ทธ๋ฆผ์ž

์‚ฌ๋ฐฉ์œผ๋กœ ๋น›์„ ๋˜์ง€๋Š” ๊ด‘์›์ด๋ฏ€๋กœ ๊ทธ์— ๋งž๊ฒŒ ๊ทธ๋ฆผ์ž๊ฐ€ ํผ์ง€๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

SpotLight์˜ ๊ทธ๋ฆผ์ž