Unity/Shader

[Unity][Shader][UTS][URP] ์›์‹  ๋ชจ๋ธ๋ง์„ ์‚ฌ์šฉํ•œ ์œ ๋‹ˆํ‹ฐ ํˆฐ์‰์ด๋” ์‹ค์Šต

์˜ฅ์ฒœ์ง€ํ–ฅ์‚ฌ 2023. 9. 2. 13:30
728x90

 
 

์•ˆ๋…•ํ•˜์„ธ์š”? ํ˜ธ์•„์ž„์ž…๋‹ˆ๋‹ค.๐Ÿช๐Ÿญ

 
์˜ค๋Š˜์„ ์›์‹  ๋ชจ๋ธ๋ง์„ ํ†ตํ•ด UTS( ์œ ๋‹ˆํ‹ฐ ํˆฐ ์‰์ด๋”) ์‹ค์Šต์„ ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.
์›์‹  ๋ชจ๋ธ๋ง ๋ถˆ๋Ÿฌ์˜ค๊ธฐ.... ์ •๋ง ์‰ฝ์ง€ ์•Š์•˜๋‹ค.. 
 
Read me ํŒŒ์ผ๋„ ,, Texture ํŒŒ์ผ๋„ ๋ชจ๋‘ ์ค‘๊ตญ์–ด๋กœ ๋˜์–ด์žˆ์–ด์„œ ํŒŒํŒŒ๊ณ  ๋Œ๋ ค๊ฐ€๋ฉฐ ์—ด์‹ฌํžˆ Meterial์„ ๋งŒ๋“ค์–ด์คฌ๋‹ค.

์šฐ์’ธ

 
PMX ํŒŒ์ผ -> ๋ธ”๋žœ๋” -> FbxํŒŒ์ผ -> ์œ ๋‹ˆํ‹ฐ๋กœ ์˜ค๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •์€ ๊ฝค ๊ธธ์–ด์„œ ๋‹ค๋ฅธ ๊ธ€ ๋งํฌ๋ฅผ ํ†ตํ•ด ๋ณด๊ณ ์˜ค๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค.

 
 
๐Ÿ‘‡์›์‹  ๋ชจ๋ธ๋ง  -> ๋ธ”๋žœ๋”

[์›์‹ ][Blender] ๋ธ”๋žœ๋”๋กœ ์›์‹  ๋ชจ๋ธ๋ง ๊ฐ€์ ธ์˜ค๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”, ์›์‹ ์บ๋ฆญํ„ฐ ๋ชจ๋ธ๋ง์„ ํ†ตํ•ด 3D๊ณต๋ถ€๋ฅผ ํ•ด๋ณด๊ณ  ์‹ถ์€๋ฐ ์ž๋ฃŒ๊ฐ€ ์—†์–ด ํ—ค๋ฉ”๋‹ค ๋“๋„ ํ•˜๊ณ  ํ‹ฐ์Šคํ† ๋ฆฌ์— ๊ธฐ๋กํ•˜๋Š” ํ˜ธ์•„์ž„์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์›์‹ ์บ๋ฆญํ„ฐ ๋ชจ๋ธ๋ง์„ ๋‹ค์šด๋ฐ›์•„ ๋ธ”๋žœ๋”๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜

heo-aim.tistory.com

๐Ÿ‘‡์›์‹  ๋ชจ๋ธ๋ง: ๋ธ”๋žœ๋” -> ์œ ๋‹ˆํ‹ฐ

[์›์‹ ][Unity][Blender] ์›์‹  ๋ชจ๋ธ๋ง์„ ๋ธ”๋žœ๋”์—์„œ ์œ ๋‹ˆํ‹ฐ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š” ํ˜ธ์•„์ž„์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ๋ธ”๋žœ๋”๋กœ ๊ฐ€์ ธ์˜จ ์›์‹  ๋ชจ๋ธ๋ง์„ fbx๋กœ ์ถ”์ถœํ•˜์—ฌ ์œ ๋‹ˆํ‹ฐ์— ๋„ฃ๋Š” ๊ณผ์ •์„ ์ ์–ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋ธ”๋žœ๋”๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„์€ ์•„๋ž˜ ์ด์ „ ๊ธ€์„ ์ฐธ๊ณ ํ•˜์‹œ

heo-aim.tistory.com

 
 


 
์‚ฌ์‹ค์„ ์›๋ž˜ ์œ ๋‹ˆํ‹ฐ ์งฑ์„ ๋“ค๊ณ ์™€์„œ ์‹ค์Šต์„ ํ•ด๋ณผ๊นŒ ํ–ˆ์ง€๋งŒ 
์œ ๋‹ˆํ‹ฐ์งฑ์€ ๋‚ด ์„œํƒ€์ผ๋„ ์•„๋‹ˆ๊ณ ... ์ „ํ˜€ ํฅ๋ฏธ๊ฐ€ ์•ˆ์ƒ๊ธฐ๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ๋‹ค.
 
๊ทธ๋ž˜์„œ ์—ด์‹ฌํžˆ ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ ์›์‹  ๋ชจ๋ธ๋ง์„ ๊ฒŸ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
 
๋จผ์ € ๋‚ด ๋‹ค์ด๋ฃจํฌ๋ฅผ ๋“ค๊ณ ์™”๋‹ค. ๋‹ค๋ฅธ ๋ฉค๋ฒ„๋„ ์ฐจ์ฐจ ์‚ฌ์šฉํ•ด์ค„ ์˜ˆ์ •์ด๋‹ค.
์˜ค๋Š˜๋„ ๊ทผ์—„ ํ•ธ์„ฌํ•œ ๋‹ค์ด๋ฃจํฌ์”จ์˜ ๋ชจ์Šต.

๋‹ค์ด๋ฃจํฌ์”จ์˜ ๋ชจ๋ธ๋ง ์›๋ณธ

์šฐ๋ฆฌ๋Š” ์ด๊ณณ์— ํˆฐ ์‰์ด๋”๋ฅผ ์ ์šฉ์‹œ์ผœ์ค„ ์˜ˆ์ •์ด๋‹ค.
 
๐Ÿ‘‡ํˆฐ์‰์ด๋”์˜ ํ•ต์‹ฌ ์š”์†Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
 
    1. ์•„์›ƒ๋ผ์ธ ์ƒ์„ฑ
    2. ๋ช…์•”์˜ ๊ฒฝ๊ณ„์„ ์ด ์„ ๋ช…ํ•จ
 


 

1๏ธโƒฃ์‰์ด๋” Unlit ๋ณ€๊ฒฝ

 
์šฐ๋ฆฌ๋Š” ์ด๊ณณ์— ํˆฐ ์‰์ด๋”๋ฅผ ์ ์šฉ์‹œ์ผœ์ค„ ์˜ˆ์ •์ด๋‹ค.

์ขŒ : Standard Shader / ์šฐ : Unlit Shader

 
์•„๋ž˜๋Š” Unlit Shader๋ฅผ ๋ชจ๋‘ ์ ์šฉ์‹œํ‚จ ๋ชจ์Šต์ด๋‹ค.

์™œ.... ์™œ ์ž˜์ƒ๊ฒผ๋ƒ๊ณ .. ์ด ์˜์•ค๋ฆฌ์น˜์•คํ•ธ์„ฌ์•คํํ‹ฐ์•ค....์–ด์ฉŒ๊ตฌ ๋งจ...

์šฐ๋ฆฌ๋Š” ์ž‘์—…ํ•  ๋•Œ ๋‚ด๊ฐ€ ๊ฐ ๋ฉ”ํ…Œ๋ฆฌ์–ผ ๋‹น ์–ด๋–ค ์‰์ด๋”๋ฅผ ์ ์šฉํ–ˆ๋Š”์ง€ ์žŠ์ง€ ๋ง์ง€์–ด๋‹ค.
 
 


 

 

2๏ธโƒฃOutline Unllit Shader Graph ๊ตฌํ˜„

 
์ฒซ๋ฒˆ์งธ๋กœ ์šฐ๋ฆฌ๋Š” ๋งŒํ™” ํ•˜๋ฉด ๋ฐ”๋กœ ๋– ์˜ฌ๋ฆด [์„ ๋”ฐ๊ธฐ]๋ฅผ ๊ตฌํ˜„ํ•ด ์ค„๊ฒƒ์ด๋‹ค.
 
์•„์›ƒ๋ผ์ธ ์ƒ์„ฑ์˜ ๊ธฐ๋ณธ ์ ์ธ ์›๋ฆฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

[์ถœ์ฒ˜ : ๋„์„œ] Unity Shader Startup

๊ธฐ์กด์˜ ๋ชจ๋ธ๋ง ํด๋ฆฌ๊ณค์„ ๊ฑฐ๊พธ๋กœ ๋’ค์ง‘์–ด์„œ ์Šค์ผ€์ผ์„ ํ‚ค์šฐ๋ฉด ๋˜๋Š” ๊ฑฐ๋‹ค.
์šฐ๋ฆฌ๋Š” ์ด ๋’ค์ง‘์–ด์ง„ ๋ฉด์„ ์•„์›ƒ๋ผ์ธ์œผ๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋˜๋Š” ๊ฑฐ๋‹ค.
 
์ด๋•Œ ์ค‘์š”ํ•œ ๊ฒƒ์€
1. ๋’ค์ง‘ํžŒ ๋ฉด์ด ์•ž์— ์žˆ์„๋•Œ๋Š” ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ
2. ๊ทธ๋ƒฅ Scale์ด ์ปค์ง€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋…ธ๋ง ๋ฒกํ„ฐ๊ฐ€ ํ™•์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค.
 

[์ถœ์ฒ˜] ํ˜ธ์•„์ž„์˜ ๊ณผ์ œ;; ใ…Žใ„ทใ„ท

3D ๋ชจ๋ธ๋ง ์ข€ ๊น”์ง๊ฑฐ๋ ค๋ดค๋‹ค ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด๋ผ๋ฉด ์ด๋Ÿฐ์žฅ๋ฉด ์‚ฌ์‹ค ๋ณธ ์  ์žˆ์„๊ฒƒ์ด๋‹ค.
๊ฐ€๋”๊ฐ€๋‹ค๊ฐ€ ์™€์ด์–ดํ”„๋ ˆ์ž„์œผ๋กœ๋งŒ ๋ชจ๋ธ๋ง์„ ํ•˜๊ณ ์žˆ์—ˆ๋Š”๋ฐ ์•Œ๊ณ ๋ณด๋‹ˆ ๋’ค์ง‘ํžŒ ๋ฉด์ด์—ˆ๋˜ ์ .... ์žˆ๋Š”๊ฐ€..?
์ด๋Ÿด๋• ์‹น์‹น ๋นŒ๋ฉด์„œ X-form ๋ˆŒ๋Ÿฌ์•ผํ•˜๋Š”๋ฐ
 
์œ ๋‹ˆํ‹ฐ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ํ˜„์ƒ์„ ํ™œ์šฉํ•ด Outline์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
 


 
์ด์ œ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณผ ์‹œ๊ฐ„์ด๋‹ค.
๋‚˜๋Š” ์ด๊ฒƒ์„ URP๋ฅผ ํ†ตํ•ด ์†์‰ฝ๊ฒŒ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

Unlit Shader Graph ์ƒ์„ฑ

 
URP๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌํ˜„ํ–ˆ๋‹ค.

ํ”„๋กœํผํ‹ฐ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ์ขŒ์ƒ๋‹จ์˜ '+' ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์›ํ•˜๋Š” ์ž๋ฃŒํ˜•์— ๋”ฐ๋ผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ณ„๊ฑฐ๋Š” ์—†๊ณ  ์„ค๋ช…ํ•ด๋ณด์ž๋ฉด
๊ธฐ์กด ์˜ค๋ธŒ์ ํŠธ์˜ ํฌ์ง€์…˜์— ๋…ธ๋ง๋ฒกํ„ฐ๋ฅผ Thickness๋ฅผ ํ†ตํ•ด ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํ™•์žฅ์‹œ์ผœ ๋”ํ•ด์ค€๋‹ค.
ํ”„๋ž˜๊ทธ๋จผํŠธ๋ฅผ ํ†ตํ•ด ์™ธ๊ณฝ์„ ์œผ๋กœ ์‚ฌ์šฉํ•  ๋…ธ๋ง์˜ BaseColor๋ฅผ ์„ค์ •์‹œ์ผœ์ฃผ๋ฉด ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ ํฌ์ธํŠธ๋Š” Space๋ฅผ ๋ชจ๋‘ Object Space๋กœ ๋งž์ถฐ์ฃผ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์—ฐ์‚ฐ ๊ณต๊ฐ„ ๊ธฐ์ค€์„ ๋™์ผํ•˜๊ฒŒ ๋งž์ถฐ์ฃผ์–ด์•ผ ์ ์ ˆํ•œ ์—ฐ์‚ฐ์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๋Š” ์œ„์™€๊ฐ™์€ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋ณด๋ฉฐ ์˜๋ฌธ์ ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
๋ถ„๋ช… ๋…ธ๋ง์„ ๋’ค์ง‘์–ด์ค€๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ ์œ„ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ๋Š” ๊ทธ์ € ๋…ธ๋ง๋ฒกํ„ฐ๋ฅผ ํ™•์žฅํ•ด ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ๋‚ด์šฉ๋ฐ–์— ์—†๋‹ค.
 
์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ ์žˆ๋Š” ๋ฉด ๋’ค์ง‘๊ธฐ๋Š” ์‚ฌ์‹ค 3D MAX์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋‚ด์šฉ์œผ๋กœ ์œ ๋‹ˆํ‹ฐ ๋‚ด์—์„œ๋Šฌ '๋ฉด์„ ๋’ค์ง‘๋Š” ํ–‰์œ„' ๋Š”
'๋…ธ๋ฉ€์„ ๋’ค์ง‘์ง€ ์•Š๊ณ  ์•ž๋ฉด์„ ๋‚ ๋ฆฌ๊ณ  ๋’ท๋ฉด๋งŒ ๊ทธ๋ฆฌ๋Š” ํ–‰์œ„'๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
 
๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

OutLine ์ „์ฒด ๋ชจ์Šต

isFront๋…ธ๋“œ๋กœ ์•ž๋ฉด์ธ์ง€ ํ™•์ธ ํ•œ๋’ค, ์•ž๋ฉด์ด๋ฉด ๋น„๊ฐ€์‹œ / ๋’ท๋ฉด์ด๋ฉด ๋ณด์ด๋„๋ก ์„ค์ •ํ•ด์ฃผ์–ด '๋ฉด์„ ๋’ค์ง‘๋Š”๋‹ค'๋Š” ์กฐ๊ฑด์„ ์ˆ˜ํ–‰์‹œํ‚ค๊ณ 
์ถ”๊ฐ€์ ์œผ๋กœ๋Š” Color ํ”„๋กœํผํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•œ ๋’ค ์•„์›ƒ๋ผ์ธ ์ƒ‰์ƒ์„ ์ง€์ •ํ•ด์ฃผ์—ˆ๋‹ค.

 

ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌํ˜„์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด ๋ฉ”ํ…Œ๋ฆฌ์–ผ์„ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด ํ•ด๋‹น ์‰์ด๋”๊ฐ€ ์ ์šฉ๋˜๋„๋ก ๋“œ๋ž˜๊ทธ์•ค ๋“œ๋ž ํ•ด๋„ฃ๋Š”๋‹ค.
๊ทธ ํ›„ ํ•ด๋‹น ์บ๋ฆญํ„ฐ์˜ ๋ฉ”ํ…Œ๋ฆฌ์–ผ์— ์ ์šฉํ•ด ๋„ฃ๋Š”๊ฒƒ๋„์žŠ์ง€๋ง๊ธฐ
 
 
 
์™„์„ฑ๋œ ๋ชจ์Šต์ด๋‹ค.

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

Plane์œผ๋กœ ๋๋‚œ ์˜ค๋ธŒ์ ํŠธ๋Š” ์•„์›ƒ๋ผ์ธ์ด ์ƒ๊ธฐ์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ๋„ ์•Œ๊ณ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.


์‚ฌ์‹ค ์ด๋ ‡๊ฒŒ ์ ์šฉ์„ ํ•˜๊ฒŒ๋˜๋ฉด ํ•˜๋‚˜์˜ ์˜ค๋ธŒ์ ํŠธ๋งˆ๋‹ค ํ•ด๋‹น ๋ฉ”ํ…Œ๋ฆฌ์–ผ์„ ์ ์šฉ์‹œ์ผœ์ฃผ๊ณ  ์–ผ๊ตด์„ ํ™•๋Œ€ํ•ด์„œ ๋ดค์„ ๋•Œ
์•„์›ƒ๋ผ์ธ์ด ๊ฐ™์ด ํ™•๋Œ€๋˜์–ด Storke์˜ ๋‘๊ป˜๊ฐ์ด ๋” ๋‘๊ป๊ฒŒ ๋А๊ปด์ง€๋Š” ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ๋””ํ…Œ์ผ์€
ํ–ฅํ›„์— ๋‹ค๋ฅธ ๊ฒŒ์‹œ๊ธ€๋กœ ๋‹ค๋ค„๋ณผ ์˜ˆ์ •์ด๋‹ค.


 




3๏ธโƒฃ Diffuse Wrap Shader Graph ๊ตฌํ˜„

 
๋‘๋ฒˆ์งธ ํŠน์ง•์ธ ๋งŒํ™”์˜ ๊ฒฝ๊ณ„์„ ์žˆ๋Š” ๋ฉด์„ ์žฌํ˜„ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค.
 
๐Ÿช์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ํฌ์ธํŠธ๋Š” 
 
1. ์กฐ๋ช…๋ฒกํ„ฐ๊ฐ’์„ ๋ฐ›์•„์˜ฌ ๊ฒƒ 
2. ๋…ธ๋ฉ€๋ฒกํ„ฐ๋ฅผ ์ž˜๊ฒŒ ์ชผ๊ฐœ ์ค„ ๊ฒƒ
3. ํˆฐ ๋А๋‚Œ์„ ๋‚ผ ํ…์Šค์ณ์™€ ๋ฒ ์ด์Šค ํ…์Šค์ณ๋ฅผ ๊ฐ€์ ธ์™€ ์ž˜ ์„ž์ผ ์ˆ˜ ์žˆ๋„๋ก ํ•  ๊ฒƒ
 
๋“ฑ๋“ฑ์ด ์žˆ๋‹ค.
 
์ด ๊ธฐ๋ฒ•์˜ ํ•ต์‹ฌ ๊ตฌํ˜„ ๊ธฐ๋ฒ•์€ ๋น› ๊ณ„์‚ฐ ๊ธฐ๋ฒ•์œผ๋กœ ์“ฐ๋Š” ๊ณต์‹์ธ ๋…ธ๋ฉ€๊ณผ ๋ฒกํ„ฐ์˜ ๋‚ด์ ์„ UV๋กœ ์ด์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ตฌํ˜„์— ์•ž์„œ ์šฐ๋ฆฌ๋Š” UV์ขŒํ‘œ์˜ ๊ฐœ๋…์„ ์•Œ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.
UV์ขŒํ‘œ๋Š” ํ…์Šค์ฒ˜์˜ ์œ„์น˜์ขŒํ‘œ๋ฅผ ์•Œ๋ ค์ฃผ๋Š”๋ฐ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์ด์šฉํ•ด์„œ ์บ๋ฆญํ„ฐ์˜ ๋ช…์•”์„ ๊ฒฝ๊ณ„์„ ์ด ๋งŒ๋“ค์–ด์ง€๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.

์šฐ์ธก ์ด๋ฏธ์ง€์˜ ์„ ๋ช…ํ•œ ๊ฒฝ๊ณ„์„ ์ด ํˆฐ์‰์ด๋”์˜ ๋ช…ํ™•ํ•œ ๊ฒฝ๊ณ„์„ ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ์ค€๋‹ค.

 

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ์•„์›ƒ๋ผ์ธ๊ณผ๋Š” ๋‹ค๋ฅธ Space๋กœ ๋งž์ถฐ์ค˜์•ผํ•˜๋Š”๋ฐ
์บ๋ฆญํ„ฐ์˜ ๋ช…์•”์„ ๊ฒฐ์ •์ง“๋Š” Directional Light๊ฐ€ ์ด๋ฏธ World์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋„ World๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์—ฐ์‚ฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค˜์•ผ ํ•œ๋‹ค.


 Dot Product ์ œ๊ณตํ•˜๋Š” ๋ฒ”์œ„๋Š” -1 ~ 1 ์‚ฌ์ด์˜ ๊ฐ’์ด์ง€๋งŒ ์šฐ๋ฆฌ๋Š” UV๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•   0~1 ์‚ฌ์ด์˜ ๊ฐ’์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
( -1 ~ +1 ์‚ฌ์ด์˜ ๊ฐ’ ) * 0.5 +0.5 = ( 0 ~ +1 ์‚ฌ์ด์˜ ๊ฐ’ ) ์ด ๋˜๋Š” ๊ฒƒ์„ ์ด์šฉํ•ด ํŒŒ์ดํ”„๋ฅผ ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ฐ€์ ธ์˜จ ๋ฒกํ„ฐ๊ฐ’์„ ToonRamp๋งต์˜ UV๊ฐ’์œผ๋กœ ๋„ฃ์–ด์ฃผ๊ณ , BaseMap(๊ธฐ์กด ์บ๋ฆญํ„ฐ์˜ ํ…์Šค์ณ)๋ฅผ ๊ฐ€์ ธ์™€ ๋‘ ํ…์Šค์ณ๋ฅผ Multiply๋ฃฐ ํ†ตํ•ด ์„ž์–ด์ค€ ๋’ค
BaseColor ํ”„๋ ˆ๊ทธ๋จผํŠธ ๊ฐ’์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค.

 
 

Toon Ramp ํŒŒ์ดํ”„๋ผ์ธ ์™„์„ฑ๋œ ๋ชจ์Šต

๋ณต์žกํ•ด๋ณด์ด์ง€๋งŒ ์›๋ฆฌ์™€ ์ˆœ์„œ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋‹น์—ฐํ•˜๋ฉด์„œ๋„ ์ƒ๊ฐ๋ณด๋‹ค ๋‹จ์ˆœํ•˜๋‹ค.

์ด์ œ ๋‹ค์ด๋ฃจํฌ์˜ ๋ชจ๋“  ๋ฉ”ํ…Œ๋ฆฌ์–ผ์— ToonRamp ์‰์ด๋”๋ฅผ ์ ์šฉ์‹œํ‚จ๋‹ค.
 
 
์™„์„ฑ๋œ ๋ชจ์Šต์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๐Ÿ‘‡

๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” Directional Light๋ฅผ ์•„๋ฌด๋ฆฌ ์›€์ง์—ฌ๋ด๋„ ํˆฐ๋žจํ”„๊ฐ€ ์›€์ง์ด์ง€ ์•Š๋Š” ๋ชจ์Šต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ญ๊ฐ€ ๋ฌธ์ ค๊นŒ? ๋ฐ”๋กœ ๊ธฐ์กด ์‰์ด๋” ํŒŒ์ดํ”„๋ผ์ธ์—์„œ LightDir๊ฐ’์„ ํ”„๋กœํผํ‹ฐ๋กœ ๋†“์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ( ๋Œ€์ถฉ Const๋ผ๋Š” ๋œป )
 
์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์ง์ ‘ ์‰์ด๋” ์ฝ”๋“œ๋ฅผ ์งœ์„œ Light Dir ์˜ ๋กœํ…Œ์ด์…˜ ๊ฐ’์„ ๋ฐ›์•„์™€์•ผ ํ•œ๋‹ค.
 

๋‚˜๋Š” C#์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Updateํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด Directional Light์˜ ํŠธ๋žœ์Šคํผ๊ฐ’์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค.
์ฐธ๊ณ ๋กœ ๊ฒŒ์ž„์”ฌ์ด ์•„๋‹ˆ๋ผ ๋ทฐํฌ์ธํŠธ๋กœ๋„ ๋ผ์ดํŠธ์— ๋”ฐ๋ฅธ ํˆฐ๋žจํ”„ ๋ณ€ํ™”๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ๋ฅผ ์งœ๋Š”๊ฒƒ์ด ํฌ์ธํŠธ์ธ๊ฒƒ ๊ฐ™๋‹ค.
 

 
 
๊ทธ๋ฆฌ๊ณ  ๋งˆ์ฐธ๋‚ด! ์ ์šฉ๋œ ๋ชจ์Šต๐Ÿ‘‡

Directional Light์˜ Rotation๊ฐ’์— ๋”ฐ๋ผ ๊ฒฝ๊ณ„์„ ์ด ๊ณ„์†ํ•ด์„œ ๋ณ€ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 
 


 
์˜ค๋Š˜์€ ํˆฐ์‰์ด๋” ์‹ค์Šต์„ ํ•ด๋ดค๋‹ค.
 
์ด์™€ ๊ฐ™์ด ์‚ฌ์‹ค์ ์ด์ง€ ์•Š์€ ๋ Œ๋”๋ง ๋ฐฉ์‹์„ NPR( Non - Photo Realistic )๋ Œ๋”๋ง์ด๋ผ๊ณ  ํ•œ๋‹จ๋‹ค.
์˜ค๋Š˜์€ npr์˜ ๋Œ€ํ‘œ์ ์ธ ํŠน์ง•์„ ๊ตฌํ˜„ํ•ด๋ดค๋‹ค.
์ด๋Ÿฌํ•œ ์…€ ์‰์ด๋”ฉ์˜ ์ •๋„๋Š” ์—†๊ณ  ์˜ค๋Š˜ ๋ฐฐ์›Œ๋ณธ ๊ธฐ๋ณธ์„ ์‘์šฉํ•ด ๋” ์˜ˆ์œ ์‰์ด๋”ฉ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„ํ‹ฐ์ŠคํŠธ์˜ ๊ณผ์—…์ด ์•„๋‹Œ๊ฐ€ ์‹ถ๋‹ค.

์›์‹ ์„ ํ”Œ๋ ˆ์ดํ•˜๋ฉด์„œ ๋งŽ์ด ๋†€๋ผ๊ธด ํ–ˆ์ง€๋งŒ ์˜ค๋Š˜ ์‹ค์Šต์„ ํ•˜๋ฉด์„œ๋Š” ๋†€๋ผ์›€์„ ๋„˜์–ด ๊ฒฝ์ด๋กœ์šธ ์ง€๊ฒฝ์ด๋‹ค.
์ž‘์—…์„ ํ•˜๋‹ค๋ณด๋‹ˆ ํ™˜๊ฒฝ ์…‹ํŒ…์ด๋‚˜ ์‹œ๋„ค๋งˆํ‹ฑ ์นด๋ฉ”๋ผ, ์บ๋ฆญํ„ฐ์— Emission์ฃผ๊ธฐ ๋“ฑ๋“ฑ ์š•์‹ฌ์ด ์ž๊พธ ์ƒ๊ธด๋‹ค.
 
์ž‘์—…์ด ๋๋‚˜๊ณ ๋Š” ํˆฐ ํ…์Šค์ณ๋ฅผ ํฌํ† ์ƒต์œผ๋กœ ์ˆ˜์ •ํ•ด ์ƒ‰๊ฐ์„ ๋ฐ”๊ฟ”๋ณด๋Š” ์‹œ๊ฐ„๋„ ๊ฐ€์กŒ๋‹ค.

ํˆฐ ํ…์Šค์ณ๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ์ ์šฉ์‹œ์ผœ๋ณธ ๊ฒฐ๊ณผ

ํ…์Šค์ณ์˜ ์ƒ‰์ƒ๋งŒ ๋ณ€ํ™˜์‹œ์ผฐ์Œ์—๋„ ๋‹ค์–‘ํ•œ ๋ถ„์œ„๊ธฐ๋กœ ์—ฐ์ถœ๋˜๋Š” ๊ฒƒ์ด ์‹ ๊ธฐํ•˜๋‹ค.
 
๋” ์•„๋ฆ„๋‹ค์šด ์‰์ด๋”๋ฅผ ์œ„ํ•œ ์ •๋‹ต์€ ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

728x90