๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“‚ UNREAL ENGINE

๋‹ค์‹œ ๊ฐˆ์•„์—Ž์–ด์•ผํ•จ. [๋จธํ„ฐ๋ฆฌ์–ผ 7] ์–ธ๋ฆฌ์–ผ 5์›”30์ผ

by Sjungwon 2024. 5. 30.

M_Brick_Clay_Old

M_raindrip

M_raind

combinefournormals

1. M_Brick_Clay_Old ๋ฒฝ๋Œ

2. MF_wetness ๋ฉ”ํ„ฐ๋ฆฌ์–ผ ํŽ‘์…˜์œผ๋กœ ๊ทธ๊ฑฐ๋ฅผ ๋ฐ”๊พผ๋‹ค(wetness)

3. met_rain_drop (๋ฌผ๋ฐฉ์šธ

4. M_ rain drip (๋ฌผ ์ค„๊ธฐ

5. M_ ripples/ M_ripples_test 

6. MF_ combinedfournormal

7. MF_ rain_ripples

8. M_ rain test

 

 

1. M_Brick_Clay_Old ๋ฒฝ๋Œ / 2. MF_wetness ๋ฉ”ํ„ฐ๋ฆฌ์–ผ ํŽ‘์…˜์œผ๋กœ ๊ทธ๊ฑฐ๋ฅผ ๋ฐ”๊พผ๋‹ค(wetness)

์—ฌ๊ธฐ์„œ 1) Input basecolor (vector3)์œผ๋กœ ์„ค์ •ํ•ด์„œ ์™ธ๋ถ€์—์„œ basecolor๋ฅผ ๋ฐ›๋„๋กœ๊ณ  ํ–ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด MF ๋จธํ„ฐ๋ฆฌ์–ผ ํ•จ์ˆ˜๋ผ์„œ ์™ธ๋ถ€์—์„œ ๋ถˆ๋Ÿฌ์„œ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•€ ํ•œ๊ฐœ๋ฅผ ๋งŒ๋“ ๋‹ค.  Desaturation ํ•œ๊ฐœ๋ฅผ Input basecolor์— ์—ฐ๊ฒฐ์„ ํ•ด์ค€๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด์ œ Desaturation์— ์˜ํ•ด ์น™์น™ํ•ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ์–ผ๋งˆ๋‚˜ ์น™์น™ํ•˜๊ฒŒ? ๋ผ๊ณ  ๋งํ–ˆ์„๋•Œ ์Œ์ˆ˜๋ฅผ ๊ณฑํ•ด์ค˜์•ผ์ง€ ์น™์น™ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ -0.5์ •๋„ ์•ฝ๊ฐ„ ์–ด๋‘ก๊ฒŒ ๋กœ ํ–ˆ๋‹ค. ์ดํ›„ Saturate ๋Š” -๋งˆ์ด๋„ˆ์Šค๋Š” ์ „๋ถ€ 0์œผ๋กœ ๋งŒ๋“ค๊ณ  +๋Š” ์ „๋ถ€ 1๋กœ ๋งŒ๋“œ๋Š” ์• ๋กœ ๊ฒ€์€์ƒ‰์€ ๋” ๊ฒ€์€์ƒ‰์œผ๋กœ ํ•˜์–€์ƒ‰์€ ๋” ํ•˜์–€์ƒ‰์œผ๋กœ ์ข€ ๋” ๋˜๋ ทํ•˜๊ฒŒ ํ•œ๋‹ค. ๊ฑฐ๊ธฐ์— 0.5๋ฅผ ๊ณฑํ•œ๋‹ค. 

 

๊ทธ๋ ‡๋‹ค๋ฉด ์ž…๋ ฅ ๋ฐ›์€ ๊ฐ’์— ์กฐ๊ธˆ ๋” ์น™์น™ํ•˜๊ฒŒ ํ•˜๋Š” ์‹์ด ๋œ๋‹ค.

 ์ด๋ ‡๊ฒŒ ์•„๋ž˜๋กœ

Input roughness (Scalar)๋ฅผ 

Input specular (Scalar)๋ฅผ Append์— ์—ฐ๊ฒฐํ•œ๋‹ค.  

Input wetmask (Scalar)๋ฅผ 

Input prousness (Scalar)๋ฅผ Multiply์— ์—ฐ๊ฒฐํ•œ๋‹ค.  ์ด ๋‘ ๊ฐœ๋ฅผ ๊ณฑํ•ด์„œ ๋‚˜์˜จ ๊ฒƒ์„ ๋‹ค์‹œ Saturate๋กœ ๊ฒ€์€์ƒ‰์€ ๋” ๊ฒ€๊ฒŒ ํฐ์ƒ‰์€ ๋” ํ•˜์–—๊ฒŒ ํ•œ๋‹ค. 

์ด์ œ wetmask์— ๋“ค์–ด ์˜จ ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  lerp ๋Š” Alpha ๊ฐ€ 0์— ๊ฐ€๊นŒ์šฐ๋ฉด A ๊ฐ’์ด ๋‚˜์˜ค๊ณ  1์— ๊ฐ€๊นŒ์šฐ๋ฉด B์— ๋‚˜์˜จ๋‹ค.๊ทธ๋ž˜์„œ wet mask์— ๋“ค์–ด์˜จ ๊ฐ’์— ๋”ฐ๋ผ A์™€ B ๊ฐ’์ด ์ฐจ๋“ฑ ์ ์œผ๋กœ ๋‚˜์˜จ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.  

๊ฒฐ๊ณผ์ ์œผ๋กœ 

wet mask์™€ prousness์—์„œ ๋“ค์–ด์˜จ ๊ฐ’์ด ๊ณฑํ•ด์ ธ saturate ๋กœ ๊ฒ€์ •์€ ๋” ๊ฒ€๊ฒŒ ํฐ์ƒ‰์€ ๋” ํฐ์ƒ‰์œผ๋กœ ๋˜์–ด์„œ ๊ทธ๊ฒƒ์„ ๋ฐ”ํƒ•์œผ๋กœ A๋“ค์–ด๊ฐ€๋Š” ๊ฐ’๋“ค๊ณผ B์— ๋‚˜์˜ฌ ๊ฐ’๋“ค์ด ๊ฒฐ์ •์ด๋œ๋‹ค. 

 

๊ทธ๋ฆฌ๊ณ  roughness ๊ฑฐ์น ๊ธฐ์— specular ์ŠคํŽ˜ํ˜๋ผ๊ฐ€

Scalar ํ•˜๋‚˜ ๊ฐ’์ด๋‹ค. 

 

0.2๊ณผ 0.4์˜ Append๋Š” (0.2, 0.4)

(0.2, 0.4)์™€ (1.0)์˜ Append๋Š” (0.2, 0.4, 1.0)์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด append๋ฅผ ํ†ตํ•ด์„œ roughness๊ฐ’๊ณผ specular ๊ฐ’์„ ๋”ํ•ด์„œ 2๋ฐฑํ„ฐ ๋˜๋Š” 4๋ฒกํ„ฐ๊นŒ์ง€ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜จ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  A์— ๋„ฃ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋Š์ •๋„ ๋ชจ์–‘์ด ์žกํ˜”๋‹ค๋Š” ๊ฒƒ์ด ๊ฒ ์ฃ . ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ 2๋ฒกํ„ฐ 0.07, 0.3 ์œผ๋กœ ๊ทธ๋ ค์ง„ ์• ์™€ A ๋‘๊ฐœ๊ฐ€ ๋”ํ•ด์ง„ ์•  ์‚ฌ์ด์— ์–ด๋–ค ๊ฒƒ์ด ๊ณฑํ•ด์งˆ์ง€ ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค์„ ๊ฐ€์ง€๊ณ  mask (R)๊ณผ output roughness๋กœ ๊ฒฐ๊ณผ๊ฐ‘์„ ๋‚˜์˜ค๊ฒŒ ํ•˜๊ณ  ๋‹ค๋ฅธ G ๊ฐ’์€ specular๋กœ ๋‚˜์˜ค๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. 

 

๊ทธ๋ž˜์„œ ์—ฌ๊ธฐ์„œ ๋ณด๋ฉด 

MF_wetness ์—์„œ  specular ๋ถ€๋ถ„์— 1์ด ๋“ค์–ด์˜ค๋ฉด ์ด์ œ  prousness  ์— ๋“ค์–ด๊ฐ€๋Š 1์ด๋ž‘ ๊ฐ™์ด ๊ณฑํ•ด์ ธ์„œ 1์ด ๋‚˜์˜ค๊ณ  ๊ทธ๊ฒŒ saturate ์— ์˜ํ•ด์„œ 1์ด ๋œ๋‹ค. ๊ทธ ๊ฐ’์ด ์ด์ œ basecolor๋กœ ๋“ค์–ด์˜จ ๋ชจ์–‘์ด๋ž‘ roughness ๋“ค์–ด์˜จ ๋ชจ์–‘์— roughness ๋ชจ์–‘ ๊ทธ ์œ„์— 1์„ ๋”ํ•œ๋‹ค. ํ•˜์–€์ƒ‰์ธ 1์„ ์ถ”๊ฐ€๋กœ ํ•œ๋‹ค. ๋ฅผ ๋“ค์–ด๊ฐ€๊ฒŒํ•œ๋‹ค. lerp์— ๊ทธ๋Ÿผ ์•ฝ๊ฐ„ ๋ฐ์€ roughness๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ   ๊ทธ๊ฒŒ A์— ํ•ด๋‹นํ•˜๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๋˜๊ณ  wetmask๋กœ ๋ฐ›์€ 1 ๊ฐ’์„ alph์— ๋„ฃ์Œ์œผ๋กœ ์ด์ œ A ๊ฐ’์ด ๋‚˜์˜จ๋‹ค. 

 

3. met_rain_drop (๋ฌผ๋ฐฉ์šธ

4. M_ rain drip (๋ฌผ ์ค„๊ธฐ

5. M_ ripples/ M_ripples_test 

 

6. MF_ combinedfournormal

 

7. MF_ rain_ripples

8. M_ rain test

์—ฌ๋Ÿฌ๊ฐœ ๊ฒน์ณ๋‘”๊ฑฐ

 

 

๋น„ ๋จธํ„ฐ๋ฆฌ์–ผ

 

์Šคํƒ€ํŠธ ์ฝ˜ํ…์ธ ์—์„œ ๋ณต์‚ฌํ•ด์„œ ๊ฐ€์ ธ์˜จ๋‹ค. 

 

๋น„๊ฐ€ ๋‚ด๋ฆฌ๋ฉด ๋จธํ„ฐ๋ฆฌ์–ผ ์ƒ‰์ด ์ง„ํ•ด์ง€๊ณ  ์ฑ„๋„๋„ ์˜ฌ๋ผ์˜จ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ๋จธํ„ฐ๋ฆฌ์–ผ์„ ๋”๋ธ”ํด๋ฆญํ•ด์„œ ๋“ค์–ด๊ฐ„๋‹ค์Œ์— 

multiply๋ถ€๋ถ„์— Desaturation์„ ๋ˆ„๋ฅธ๋‹ค. 

 

์Œ์ˆ˜๋ฅผ ๋„ฃ์œผ๋ฉด ์ƒ‰์ƒ์ด ๋ฐ์•„์ง„๋‹ค. 

 

์ด๋ ‡๊ฒŒ ์–ด๋‘์šด ๊ฒƒ์ด ๋œ๋‹ค. 

 

 

G์—์„œ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ์ŠคํŽ˜ํ˜๋Ÿฌ์— R์—์„œ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ์ŠคํŽ˜ํ˜๋Ÿฌ์— ์—ฐ๊ฒฐ์„ ํ•˜๋ฉด 

์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐ์„ ํ•œ๋‹ค. 

 

 

append๋กœ ๋‘๊ฐœ์˜ ๊ฐ’์œผ๋กœ ๋งŒ๋“ค์–ด์„œ lerp ๋กœ ํ•œ๊ฐœ ํ•œ๊ฐœ๋กœ ๋‚˜๋ˆ ๋‘”๊ฑฐ๋‹ค. 

ํ•œ ์ค„๋กœ ์ฃผ๋ฅด๋ฅต ์—ฐ๊ฒฐํ•จ์œผ๋กœ ๊ณต๊ฐ„์„ ์•„๋‚Œ

 

์ด๋ ‡๊ฒŒ ๋จธํ„ฐ๋ฆฌ์–ผ ํŽ‘์…˜์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ ์•„๊นŒ ๋งŒ๋“  ๊ฒƒ์„ ๋ณต ๋ถ™ ํ•ด ์ค€๋‹ค. 

 

์ด๋ ‡๊ฒŒ ํŽ‘์…˜ ์ธํ’‹๊ณผ ํŽ‘์…˜ ์•„์›ƒํ’‹์„ ๋งŒ๋“ค์–ด์ค€๋‹ค. 

 

์ด๋ ‡๊ฒŒ ์ด๋ฆ„ ์ง€์–ด์ฃผ๊ณ  prousness๋Š” ํƒ€๊ณต์„ฑ์ด๋ผ๋Š” ๊ฑด๋ฐ ์Šคํฐ์ง€ ๊ฐ™์€ ๊ฑฐ๋ผ๊ณ  ๋ณด๋ฉด๋œ๋‹ค. ์–ผ๋งˆ๋‚˜ ์žฌ์งˆ์„ ํก์ˆ˜ํ•˜๋Š๋ƒ ์ด๋‹ค. (๋ฌผ์„ ํก์ˆ˜ํ•ด๋ฒ„๋ฆฌ๋ฉด ๋ฌผ์ด ๋ฐ–์— ๋งบํžˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณธ๋ž˜ ๊ฐ–๊ณ  ์žˆ๋˜ ๋นš ๋งบํž˜. ํก์ˆ˜๋ฅผ ํ•˜์ง€์•Š๊ณ  ๋ฐ–์— ๋งบํžˆ๋Š” ๊ฑฐ์ฃ . ๊ทธ ์ˆ˜์น˜๋ฅผ ๋งํ•˜๋Š” ๊ฒ๋‹ˆ๋‹ค. 

 

 

์ด๋ ‡๊ฒŒ ํ•œ๋‹ค.  ํŽ‘์…˜ Fuction์„ ์ €์žฅํ•˜๊ณ  ์™ธ๋ถ€ ๋…ธ์ถœ ์ฒดํฌํ•˜๋ฉด

 

 

์ด๋ ‡๊ฒŒ input๋“ค ์Šค์นผ๋ผ๋กœ ์ž…๋ ฅํƒ€์ž… ๋‹ค ๋ณ€๊ฒฝํ•˜๊ณ  ์ •๋ ฌ ์šฐ์„ ์ˆœ์œ„๋„ 0~4๊นŒ์ง€ ์œ„์— ์„œ ์•„๋ž˜๋กœ 0 1 2 3 4 ๋กœ ํ•œ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด๋‘์—ˆ์œผ๋‹ˆ๊นŒ

 

์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐ์„ ํ•˜๋ฉด ๋น„์— ์ –์€ ๋จธํ„ฐ๋ฆฌ์–ผ์ด ๋œ๋‹ค. 

์•ž์„œ ์ฒซ๋ฒˆ์งธ๋กœ ๋งŒ๋“  ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ๋จธํ„ฐ๋ฆฌ์–ผ ํ•จ์ˆ˜์—์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ์™ธ๋ถ€๋…ธ์ถœ์„ ํ•ด์„œ ๋ถˆ๋Ÿฌ์™€์„œ ์—ฐ๊ฒฐํ•œ ๊ฒƒ ๋ฟ์ด๋‹ค. 

 

basecolor๋Š” Desaturation์„ ํ†ตํ•ด์„œ ์–ด๋‘์›Œ์ง„๋‹ค. 

 

Saturate๋Š” -0.01๋„ 0์œผ๋กœ -1.0 ๋„ 0์œผ๋กœ -10.59๋„ 0์œผ๋กœ ํ•˜๋Š” ๋“ฑ ์Œ์ˆ˜๋Š” ๋‹ค 0์œผ๋กœ ๋งŒ๋“ ๋‹ค. 

์Œ์ˆ˜๋Š” 0 ์–‘์ˆ˜๋Š” ๋‹ค 1์ด๋‹ค. 

 

๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ์ด์ œ Desatruation์ด๋ผ๊ณ  ํƒํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์• ๊ฐ€ ์–ด๋‘์ปด์ปดํ•˜๊ฒŒ ๋งŒ๋“ค๋ฉด Saturate๊ฐ€ ์ƒ‰์ƒ์„ ์ข€ ์˜ฌ๋ ค์ค€๋‹ค. 

 

ํฐ ๋ฌผ๋ฐฉ์šธ๋“ค๋งŒ ์• ๋‹ˆ๋ฉ”์ด์…˜์œผ๋กœ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

๋จธํ„ฐ๋ฆฌ์–ผ ํ•˜๋‚˜๋ฅผ ์ด๋ ‡๊ฒŒ ์ด๋ฆ„์ง€์–ด ๋งŒ๋“ค์–ด์ฃผ๊ณ  

texture ํ•˜๋‚˜๋ฅผ ์ด๋ ‡๊ฒŒ ๊ฐ€์ ธ์˜จ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐ์„ ํ•ด์ค๋‹ˆ๋‹ค. 

 

ํ…์Šค์ฒ˜๊ฐ€ ํ˜ผ์žฌ ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ถ„๋ฆฌ๋ฅผ ํ•ด์•ผํ•œ๋‹ค. RG๋งŒ ๊ฐ€์ ธ์˜จ๋‹ค. 

 

2๋ฅผ๊ณฑํ•˜๊ณ  1์„ ๋นผ์ค€๋‹ค. 

 

 

 

appendํ•ด์„œ ์ด๋ ‡๊ฒŒ Normal์— ์—ฐ๊ฒฐ์„ ํ•ด์ค€๋‹ค. 

 

์ด๋ ‡๊ฒŒ ํ•€ ํ•˜๋‚˜ ๋ฝ‘์•„์„œ subtract์„ ๋‹ฌ์•„์ค€๋‹ค. 

 

์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐ์„ ํ•œ๋‹ค. 

์–˜๋ฅผ ๋ฐ˜๋ณต์‹œํ‚จ๋‹ค.FRac

 

๊ทธ๋Ÿฌ๋ฉด ์ด๋ ‡๊ฒŒ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์ƒ‰๊น”์ด ๋ณ€ํ•˜๋Š”๊ฒŒ ๋ฐ˜๋ณต๋˜๋Š”๊ฒŒ ๋‚˜ํƒ€๋‚œ๋‹ค. 

multiply๋กœ 2๊ณฑํ•˜๊ณ  subtract์œผ๋กœ 1๋นผ๊ณ   saturate ๋‹ฌ์•„์„œ ํด๋žจํ•‘ ํ•ด์ค€๋‹ค. 

 

 

์ด๋ ‡๊ฒŒ ์•ž์— multiply๋ฅผ 3์œผ๋กœ ์ˆ˜์ •ํ•œ๋‹ค. 

 

์‹œ๊ฐ„์— ๋”ฐ๋ผ Frac์œผ๋กœ ๋ฐ˜๋ณต์„ ์‹œํ‚จ๋‹ค. 

์‹œ๊ฐ„์€ 0.7๋ฐฐ์†์œผ๋กœ ๊ฐ€๋Š”๋ฐ ์—ฌ๊ธฐ์— B ์ฑ„๋„์˜ ๊ฐ’์„ 0.7 ๋ฐฐ์†์œผ๋กœ ๋นผ์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ Frac ์„ ํ†ตํ•ด์„œ ๋ฐ˜๋ณตํ•œ๋‹ค๋ฉด. 

๊ฐ๊ฐ์˜ ๊ฐ’๋“ค์„ ๊ฐ€์ง„ ์• ๋“ค์ด 0.7๋ฐฐ์† (์‹œ๊ฐ„์˜ ํ๋ฆ„์— ๋”ฐ๋ผ) ์ „์ฐจ ๋งŒ๋ณ„๋กœ ๋นผ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ ๋“ค์ด ์ ์ ๋œ๋‹ค. 

์ขŒ(B๊ฐ’)_ ์šฐ (A๊ฐ’) ๊ทธ๋ฆฌ๊ณ  ๋ฐ‘์—๋Š” A ๊ฐ’์— 2๋ฐฐ๋ฅผ๊ณฑํ•ด์„œ ๋‘๊ฐ์„ ๋‚˜ํƒ€๋‚ด๊ณ  ๊ฑฐ๊ธฐ์— ๋ฐ์•„์งˆ๋•Œ๋กœ ๋ฐ์•„์ง„ ๊ฒƒ๋“ค์„ ๋Œ€์ƒ์œผ๋กœ subtract์„ ์ด์šฉํ•ด์„œ 1์„๋นผ๋ฉด ์ด์ œ ํฐ์ƒ‰ ๋“ค์ด ๋นผ์ง„๋‹ค. ๊ทธ๊ฒƒ์„ saturate๋ฅผ ํ†ตํ•ด์„œ ๋‹ค์‹œ ๋˜ ํฐ์ƒ‰ ๊ฒ€์€์ƒ‰๋งŒ ๋‚จ๋„๋ก ํ•œ๋‹ค์Œ์—  ์œ„B์˜ ์ ๋ฐ•์ด๋“ค๊ณผ A์˜ ํฐ์ƒ‰ ๊ฒ€์€ ์ƒ‰๋งŒ ๋‚จ์€ ๊ฒƒ๋“ค์ด ๊ฒฐํ•ฉ๋˜์–ด ์ถ”์ ์ถ”์ ์ด ๋˜๋„๋ก ํ•œ๋‹ค. ๊ทธ๋Ÿผ ํฐ์ƒ‰์˜ ๋ฌผ๋ฐฉ์šธ๋“ค์ด ๊นœ๋นก์ด๊ฒŒ ๋œ๋‹ค. 

 

 

 

๋ฐ‘์—๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ฐ’

 

๊ทธ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ฐ’์„ ์œ„์—๋ž‘ ๊ณฑํ•ด์„œ normal์— ๋“ค์–ด๊ฐ€๊ฒŒ ํ•œ๋‹ค. 

์ด๋ ‡๊ฒŒ ํฐ์ƒ‰์ด ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

ํฐ์ƒ‰์€ ๋” ํ•˜์–—๊ฒŒ ์–ด๋‘์€ ๊ฒƒ๋“ค์€ ๋” ์–ด๋‘ก๊ฒŒ ๋งŒ๋“ ๋‹ค. 

1๊ณผ 0 ์•ˆ์—์„œ ๋†€์•„์ฃผ๊ฒŒ saturate๋ฅผ ๋„ฃ์–ด์ฃผ์ž.

 

์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐ์„ ํ•œ๋‹ค. 

 

 

์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐ์ด ๋œ๋‹ค. 

vertexNormalWS -> Mask -> saturate -> multiply -> multiply -> 

 

 

 

 

๋จธํ„ฐ๋ฆฌ์–ผ ํ•œ๊ฐœ๋ฅด ๋งŒ๋“ ๋‹ค. 

 

 

 

 

์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐ๋œ๋‹ค. 

 

multiply ์œ„์—๊บผ๋Š” ์•„๋ž˜ l

 

์‹œ๊ทธ๋‹ˆ์ฒ˜ ํ• ๋•Œ sign ์Œ์ˆ˜๋ฉด  ์–‘์ˆ˜๋ฉด 1์„ ์ถœ๋ ฅํ•˜๋Š” ๋…ธ๋“œ

 

๋ฐฉํ–ฅ์„ ๊ฐ์ง€ํ•œ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐํ•˜๋ฉด ์‚ฌ๋ฐฉ์ด ๋น—๋ฌผํ๋ฅด๋Š” ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค. 

 

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์•„๋ž˜๋กœ ๋‚ด๋ ค์˜ค๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. 

 

์ ˆ๋Œ€ ์›”๋“œ ํฌ์ง€์…˜์œผ๋กœ ์›”๋“œ์—์„œ๋Š” ์•„๋ž˜์˜ 3๋ฒกํ„ฐ๊ฐ’์— ๊ณ ์ •์ด ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ ์ค‘์—์„œ  x์™€ z ๊ฐ’๋งŒ ๋ฝ‘์•„๋‚ธ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์ด๋ ‡๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

๋ ˆ์ธ ๋“œ๋กญ์˜ b ์ฑ„๋„์€ ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๋‹ค. 

 

 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ๊ฐ์˜ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๊ฒŒ ๋œ๋‹ค. 

 

 

 

 

 

๋น—์ค„๊ธฐ๋ณ„ ์†๋„๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.

 

 

๊ฐ๊ฐ์˜ ์•ŒํŒŒ ์ฑ„๋„์˜ ์นธ์— ๋“ค์–ด๊ฐ€์„œ ๋น—์ค„๊ธฐ ์ฒ˜๋Ÿผ ๋œ๋‹ค. 

ํ…์Šค์ฒ˜ ์‚ฌ์ด์ฆˆ ํŠน์ •์ด๋ผ๋Š” ๊ฒƒ์€ ์ ˆ๋Œ€์›”๋“œํฌ์ง€์…˜์ด ํฌ๊ฒŒ ํŽผ์ณ์ง€๋Š” ๊ฒƒ์ธ๋ฐ ๊ฑฐ๊ธฐ์„œ ๊ทธ ์ž๋ฆฌ๋กœ ์ฐพ์•„๊ฐ€๋Š” ๊ฒƒ์„ ๊ณฑํ•˜๊ธฐ ๋กœ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. 

0.01, 0.01, 0.005์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด ๊ทธ ์ž์ฒด๋กœ ํ™•๋Œ€๋œ๋‹ค. 

 

2๋ฅผ ๊ณฑํ•˜๊ณ  1์„ ๋นผ๊ฒ ๋‹ค.

 

1์„ ํ•ฉ์ณ์ค€๋‹ค.

 

์ด๋Ÿฐ ์žฌ์งˆ์ด ๋˜๋Š”๋ฐ ์ •์ˆ˜๋ฆฌ๋ถ€๋ถ„๋„ ๋˜๊ณ  ์žˆ๋Š”๋ฐ ์ •์ˆ˜๋ฆฌ๋Š” ํ•„์š”๊ฐ€ ์—†์–ด์„œ 

 

vertex์›”๋“œ ๋„ฃ์€๋‹ค์Œ

 

abs๋Ÿฌ ์ ˆ๋Œ€๊ฐ’์„ ๋งŒ๋“ ๋‹ค.

์ด ์ ˆ๋Œ€๊ฐ’์ด ์œ„ ์•„๋ž˜๋Š” ์งค๋ผ๋‚ด๊ณ  ์ค‘๊ฐ„ ๊ฐ’๋งŒ ๋‚˜์˜ค๊ฒŒ ํ•œ๋‹ค. 

์ƒˆ๋กœ ๋ฉ”ํ‹ฐ๋ ์€ ์‹œํ‚ค

๊ฒ€์ •๊ณผ ํฐ์ƒ‰์ด ๋ฐ˜๋ณต๋˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜

 

์—ฌ๊ธฐ์„œ clamp์˜ min ์ด 5 ๊นŒ์ง€ ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ ๋ฆฌ๊ณ  ์—†์–ด์ง„๋‹ค. 

cใ…ฃ

clmp์„œ 

์›์˜ ์›๊ณผ ํ•จ๊ป˜๋งˆ๋‚˜๊ฐ€๋Š” 

์ €๊ธฐ ์ € ๋™๊ทธ๋ผ๋ฏธ ๋ฌด์ง€๊ฐœ๋Š” ํ…์Šค์ฒ˜์— ๋“ค์–ด๊ฐ€์„œ ์–˜๋„ HDR๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค.

 

์–˜๋„ HDR๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค. 

 

์—ฌ๊ธฐ์„œ sine์„ 6.28๋กœ ๋ณ€๊ฒฝํ•ด์•ผ์ง€ ํŒŒ๋™์˜ ๊ฟ€๋ ๊ฑฐ๋ฆผ์ด ๊นŠ์–ด์ง„๋‹ค. 

 

1๊ณผ 0.8์„ ๊ณฑํ•ด์„œ 0.8์ด ๋˜๊ณ  ๊ทธ๊ฒƒ์—๋‹ค๊ฐ€ 0.2๋ฅผ ๋”ํ•œ๋‹ค. 

 

๋จธํ„ฐ๋ฆฌ์–ผ ํŽ‘์…˜ ํ•œ๊ฐœ ๋” ๋ง๋“ค๊ณ 

combinefournormals. ์ด๋ผ๋Š” ๋จธํ„ฐ๋ฆฌ์–ผ ํŽ‘์…˜์„ ํ•œ๊ฐœ ๋งŒ๋“ ๋‹ค. 

 

๋ผ์ด๋ธŒ๋Ÿฌ์— ๋…ธ์ถœ์„ ํ•ด์ค€๋‹ค. 

์—ฌ๊ธฐ์„œ ์œ ์˜ ํ•  ๊ฒƒ์€ 

input weight์˜ ๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ Vector4 / Vector3 / Vector3 / Vector3  

 

์ด๋ ‡๊ฒŒ ํ•ด์•ผ์ง€ ์˜ค๋ฅ˜๊ฐ€ ๊ฑธ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. 

 

๋จธํ„ฐ๋ฆฌ์–ผ ํŽ‘์…˜ ํ•œ๊ฐœ ๋” ๋งŒ๋“ค๊ณ 

 

๋จผ์ € ๋จธํ„ฐ๋ฆฌ์–ผ ํŽ‘์…˜ ripples์—์„œ input Weight์— ์Šค์นผ๋ผ๋ฅผ ๋„ฃ๊ณ  input Time Scalar๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. 

MF_ripples ์— TexCoord ์˜†์— Input UV๋Š” ๋ฒกํ„ฐ 2๋กœ ํ•œ๋‹ค.