๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐ŸŒฅํ˜ธ์•„์ž„์˜ GamLog

[Unity][Shader] ์œ ๋‹ˆํ‹ฐ์‰์ด๋” ์Šคํƒ€ํŠธ์—… : ch10.๋””์ง€ํ„ธ๋ผ์ดํŠธ ์ด๋ก  ๋ณธ๋ฌธ

Unity/Shader

[Unity][Shader] ์œ ๋‹ˆํ‹ฐ์‰์ด๋” ์Šคํƒ€ํŠธ์—… : ch10.๋””์ง€ํ„ธ๋ผ์ดํŠธ ์ด๋ก 

์˜ฅ์ฒœ์ง€ํ–ฅ์‚ฌ 2023. 9. 5. 23:16
728x90

 

 

 

 

์˜ค๋Š˜์€ [์œ ๋‹ˆํ‹ฐ ์‰์ด๋” ์Šคํƒ€ํŠธ์—…]์„ ์ฝ๊ณ  ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ˜น์‹œ ๋ชฐ๋ผ ์ฐธ๊ณ  ๊ต์žฌ ์•„๋ž˜์— ์ฒจ๋ถ€ํ•ด ๋‘๋„๋ก ํ•จ ๐Ÿ‘‡

[์œ ๋‹ˆํ‹ฐ ์‰์ด๋” ์Šคํƒ€ํŠธ์—…]


๐Ÿช ๋ชฉ์ฐจ

 

  • ๋””์ง€ํ„ธ ๋ผ์ดํŠธ์˜ ๋ถ„๋ฅ˜์™€ ์›๋ฆฌ
  • ๋ฒกํ„ฐ์˜ ๊ฐœ๋…๊ณผ ํŠน์„ฑ
  • ๋…ธ๋ฉ€๋ฒกํ„ฐ
  • ๋ฒกํ„ฐ์˜ ์—ฐ์‚ฐ
  • ๋ฒกํ„ฐ ์—ฐ์‚ฐ์„ ์ด์šฉํ•œ ๋””์ง€ํ„ธ ์กฐ๋ช…์—ฐ์‚ฐ

 

๋””์ง€ํ„ธ ๋ผ์ดํŠธ์˜ ๋ถ„๋ฅ˜์™€ ์›๋ฆฌ

 

๋จผ์ € ์—”์ง„์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” 3๊ฐ€์ง€์˜ ๋ผ์ดํŠธ๋ฅผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ขŒ์ธก๋ถ€ํ„ฐ :  ์ŠคํŒŸ ๋ผ์ดํŠธ / ๋””๋ ‰์…”๋„ ๋ผ์ดํŠธ / ํฌ์ธํŠธ ๋ผ์ดํŠธ

1. ์ŠคํŒŸ ๋ผ์ดํŠธ

: ํŠน์ • ๋ถ€๋ถ„์„ ๊ฐ•์กฐํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์กฐ๋ช…

2. ํฌ์ธํŠธ ๋ผ์ดํŠธ

: ๋‘ฅ๊ทผ๋ชจ์–‘์˜ ์กฐ๋ช… ๋””๋ ‰์…”๋„ ๋ผ์ดํŠธ๋ณด๋‹ค ๋ฌด๊ฒ๋‹ค.

3. ๋””๋ ‰์…”๋„ ๋ผ์ดํŠธ

: ์ง์ง„์„ฑ์„ ๊ฐ€์ง„ ์กฐ๋ช… range๊ฐ€ ์—†๊ณ  '๋ฐฉํ–ฅ'๋งŒ์ด ์กด์žฌ, ๊ฐ€์žฅ ๊ฐ€๋ฒผ์šด ๋ผ์ดํŠธ, ํƒœ์–‘๋Œ€์‹  ์‚ฌ์šฉ

 

 


 

์ขŒ : ์กฐ๋ช…๊ณผ ๋ฉด์ด ๋งˆ์ฃผ๋ณผ ๋•Œ, ์กฐ๋ช…๊ณผ ๋ฉด์ด 90๋„๊ฐ€ ๋  ๋•Œ

๋ผ์ดํŠธ๊ฐ€ ์žˆ๋Š” ๋ทฐํฌํŠธ์— Plane์„ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” Directional Light๋ฅผ ํšŒ์ „ํ•ด๋ณด๋ฉฐ ์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ํ†ตํ•ด "๋ฉด๊ณผ ๋น›์˜ ๋ฐฉํ–ฅ์ด ๋งˆ์ฃผ๋ณผ๋•Œ ๊ฐ€์žฅ ๋ฐ๊ณ , ๋ช…๊ณผ ๋น›์˜ ๋ฐฉํ–ฅ์ด 90๋„์— ๊ฐ€๊นŒ์›Œ์งˆ ์ˆ˜๋ก ์ ์  ์–ด๋‘์›Œ์ง„๋‹ค"๋Š” ์‚ฌ์‹ค์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 


 

 

 

๋ฒกํ„ฐ์˜ ๊ฐœ๋…๊ณผ ํŠน์„ฑ

 

์•ž์„œ ๋งํ•œ ๋ฐฉํ–ฅ์„ ์šฐ๋ฆฌ๋Š” ์•ž์œผ๋กœ ๋ฒกํ„ฐ๋ผ๋Š” ๊ฐœ๋…์œผ๋กœ ๋งํ•˜๊ฒŒ ๋  ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

 

( ๋ฒกํ„ฐ ) = ( ๋ฐฉํ–ฅ ) + ( ํฌ๊ธฐ )

* ๋‹จ์œ„ ๋ฒกํ„ฐ = ํฌ๊ธฐ๊ฐ€ 1์ธ ๋ฒกํ„ฐ

 

์•ž์„œ ๋ผ์ดํŠธ ํŒŒํŠธ์—์„œ ํ–ˆ๋˜ ๋ง์„ ์šฐ๋ฆฌ๋Š” ๋™์ผํ•œ ์˜๋ฏธ๋กœ ๋‹ค๋ฅด๊ฒŒ ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"ํ‘œ๋ฉด๋ฒกํ„ฐ์™€ ์กฐ๋ช…๋ฒกํ„ฐ๊ฐ€ ์„œ๋กœ ๋งˆ์ฃผ๋ณผ๋•Œ ๊ฐ€์žฅ ๋ฐ๊ณ , ๋‘ ๋ฒกํ„ฐ์˜ ๊ฐ๋„๊ฐ€ ๋ฒŒ์–ด์งˆ ์ˆ˜๋ก ์ ์  ์–ด๋‘์›Œ์ง„๋‹ค"

 

 

๋ฒกํ„ฐ๋Š” ๋ฐฉํ–ฅ๊ณผ ํฌ๊ธฐ๊ฐ€ ๊ฐ™์œผ๋ฉด ๋™์ผ ๋ฒกํ„ฐ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์œ„์น˜๊ฐ’์ด ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๋Š” ๋ง์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ๋ฒกํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์„๊นŒ?

์œ„์—์„œ ์„ค๋ช…ํ–ˆ๋“ฏ, ๋ฒกํ„ฐ๋Š” ์œ„์น˜๊ฐ’์ด ๋‹ฌ๋ผ๋„ ๋™์ผ ๋ฒกํ„ฐ๋กœ ๋ณด๊ธฐ ๋•Œ๋ฌธ์— ์˜์ ์œผ๋กœ ํ‰ํ–‰์ด๋™ ์‹œํ‚จ ๋’ค ๋ฐฉํ–ฅ๊ณผ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•œ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ขŒ์ธก์˜ ๋ฒกํ„ฐ๋ฅผ ํ‰ํ–‰์ด๋™์‹œ์ผœ ์šฐ์ธก์˜ ๋ฒกํ„ฐ์™€ ๊ฐ™์ด ๋งŒ๋“ค์–ด ์ค€ ๋’ค ๋ฒกํ„ฐ๊ฐ’์ด float2( 0.5, 0.5 ) ๋ผ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฌผ๋ก  ์ด๋Š” 2์ฐจ์› ๋ฒกํ„ฐ๊ฐ’์ด๊ณ  3์ฐจ์›์ด๋‚˜ ์Œ์ˆ˜๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

์ขŒ(3์ฐจ์›) : float3 ( x, y, z)  / ์šฐ(์Œ์ˆ˜) : float2 ( -0.5, -0.5 )

 

 

 


 

 

๋…ธ๋ง ๋ฒกํ„ฐ

 

์•ž์„œ ์ด์•ผ๊ธฐ ํ•œ ๋‚ด์šฉ ์ค‘ [์กฐ๋ช…๋ฒกํ„ฐ]์™€ [ํ‘œ๋ฉด๋ฒกํ„ฐ]์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ๋‚˜์™”๋Š”๋ฐ ํ‘œ๋ฉด๋ฒกํ„ฐ๋Š” ๋ฉด์˜ ๋ฐฉํ–ฅ์„ ํ‘œํ˜„ํ•˜๋Š” ๋…ธ๋ง๋ฒกํ„ฐ๋กœ๋„ ๋ถ€๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

์š”์ฆ˜์˜ ๋…ธ๋ฉ€๋ฒกํ„ฐ๋Š” ๋ฉด์ด ์•„๋‹ˆ๋ผ  ๋ฒ„ํ…์Šค๊ฐ€ ๊ฐ–๊ณ ์žˆ์–ด ํ•œ ๋ฒ„ํ…์Šค๋Š” ๊ฐ์ง„ ๋ฉด๋“ค์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์ˆ˜์˜ ๋ฒกํ„ฐ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

3๋ฉด์œผ๋กœ ๋‘˜๋Ÿฌ์‹ธ์ธ ๋ฒ„ํ…์Šค๊ฐ€ ๊ฐ–๋Š” 3๊ฐœ์˜ ๋ฒกํ„ฐ๊ฐ’

 

 


 

 

๋ฒกํ„ฐ์˜ ์—ฐ์‚ฐ

 

(์ž‘์„ฑ์ค‘)


 

 

๋ฒกํ„ฐ ์—ฐ์‚ฐ์„ ์ด์šฉํ•œ ๋””์ง€ํ„ธ ์กฐ๋ช… ์—ฐ์‚ฐ

 

์•ž์„œ ๋ฐฐ์šด ๋‚ด์šฉ์— ๋”ฐ๋ผ ์šฐ๋ฆฌ๋Š” ๋…ธ๋ง ๋ฒกํ„ฐ์™€ ์กฐ๋ช…๋ฒกํ„ฐ๊ฐ€ ๋งˆ์ฃผ๋ณด๋Š” ์ƒํ™ฉ, ์ฆ‰ ๋น›์ด ๊ฐ€์žฅ ๋ฐ์„ ๊ฒฝ์šฐ๋ฅผ ๊ณ„์‚ฐํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒกํ„ฐ๋Š” 180๋„๋กœ ๋งŒ๋‚˜๋Š” ๊ด€๊ณ„์ด๋ฏ€๋กœ -1์˜ ๊ฐ’์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

 ๊ฐ€์žฅ ๋ฐ์€ ์ƒํ™ฉ์˜ ๊ฐ’์ด -1์ด๋ผ๋‹ˆ ์–ด์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์—ฐ์‚ฐํ•˜๊ธฐ ์ „ ์กฐ๋ช…๋ฒกํ„ฐ์˜ ๊ฐ’์„ ๋ฐ˜๋Œ€๋กœ ํ•ด์ค๋‹ˆ๋‹ค.

์ด์ œ ์กฐ๋ช…์˜ ์ ํ„ฐ๊ฐ€ ๊ฐ™์•„์กŒ๊ณ  ๋‘ ๋ฒกํ„ฐ๋ฅผ ๋‚ด์ ํ•˜๋ฉด 1์ด ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ์ด๋ฏธ์ง€๋Š” ์ด๋ฅผ 3D ์˜ค๋ธŒ์ ํŠธ ์ค‘ Sphere์— ์ ์šฉํ•ด ๋ณธ ๊ฒฝ์šฐ๋ฅผ ๊ทธ๋ฆฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๊ฐ ๋ฒ„ํ…์Šค๋Š” ๋‚ด์ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ–๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

 

 


 

์‰์ด๋” ์‹ค์Šต์„ ์•ž์„œ ํ•ด๋ณธ ๋’ค ์ด๋ก  ๊ณต๋ถ€๋ฅผ ํ•˜๊ฒŒ ๋๋Š”๋ฐ

์กฐ๋ช…/๋…ธ๋ฉ€ ๋ฒกํ„ฐ์— ๋Œ€ํ•ด ๋ช…ํ™•ํžˆ ์•Œ๊ณ  ๋‚˜๋‹ˆ ํŒŒ์ดํ”„ ๋ผ์ธ์„ ์—ฐ๊ฒฐํ•˜๋ฉฐ ๊ฐ€์กŒ๋˜ ๊ถ๊ธˆ์ฆ์ด ํ’€๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

 

ํ™•์‹คํžˆ ์‹ค์Šต์„ ๋ณ‘ํ–‰ํ•˜๋ฉฐ ์ด๋ก ์˜ ๋ชฉ์ ์„ฑ์„ ์•Œ์•„์•ผ ํ˜ธ๊ธฐ์‹ฌ์„ ๊ฐ–๊ณ  ๊นŠ๊ฒŒ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜๋Š” ๋“ฏ ํ•˜๋‹ค.

728x90