์๋
๊ฐ๋ฐํ์ ๋ค!! ์ค๋๋ง์ ๋์์์ด...!!ย
๊ทผํฉ์ ์ ํด๋ณด์๋ฉด, ๊ธ๋ก๋ฒ๊ฒ์์ผํฐ์ ์
์ฃผํด์ ์ฌ๋ฌด์ค์ ์ฐจ๋ ธ์ด..!! ์ผํฐ๋ด์ ์
์ฃผํ๊ณ ์ด์ฌํ๊ณ ๋ฌผ๊ฑด์ฌ๊ณ ํ๋๋ผ ๋๋ฌด ์ ์ ์ด ์๋ค...๊ฑฐ๊ธฐ์ ๊ณ์ ๊ฐ๋ฐ๊น์ง ํด์ผํ๊ณ ..ใ
ใ
์ฃฝ๋๋ค..!!
๊ทธ๋๋ ์ผํฐ ์์ ์ข์..!! ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ง๋ง ๋๋ ์ถ์ฒํ๊ณ ์ถ์ด..!! ์ผํฐ ํ๊ฒฝ์ด ์๊ฐ๋ณด๋ค ์์ฒญ ์ข์์ ๋๋ฌ๋ค (์ง์ญ๋ง๋ค ๋ค๋ฅผ ์ ์์ ๊ฑฐ ๊ฐ๊ธด ํจ;)ใ
ใ
( ์์ง ๋์ฅํ... ๋ค์์ฃผ ์ฏค ๋ค ์ ๋ฆฌ ๋ ๋ฏ..ใ ใ ;; )
์ฌ๊ธฐ๊ฐ ์ ค ์์ ๊ณต๊ฐ์ธ๊ฒ ๊ฐ๋๋ผ๊ณ ! ๋ ํฐ ์ฌ๋ฌด์ค๋ ์๋๋ผ..!!
์์ง์ ์์ต ์์ง๋ง ๋นจ๋ฆฌ ๋ฐ์นญ ํด์ ์ง์ ๋ฝ์์ ํ๋ก์ ํธ ๋ ํฐ ๊ฑฐ ํ๊ณ ์ถ๋ค ใ
ใ
๊ทผํฉ์ ์ฌ๊ธฐ ๊น์ง๊ณ ์ค๋์ ํฐ๋ ์ธ ์์
ํ ๊ฑธ ์ฌ๋ ค ๋ณผ๊น ํด.
์ ๋ชฉ์... ๋ก์ฐํด๋ฆฌ๊ณค ํฐ๋ ์ธ? ใ
ใ
์ฐ๋ฆฌ๊ฒ์ ๋กํด์ด๋ผ ํฐ๋ ์ธ์ ๋ถ๋๋ฌ์ด ์งํ ๋๋์ ์ ์ด์ธ๋ ค์... ์ข ๋
ธ๊ฐ๋ค๊ธด ํ์ง๋ง ํ๋ํ๋ ๋ฉ์ฌ๋ฅผ ๋ฐฐ์นํด์ ๋ฒ ์ดํฌํ๋์์ผ๋ก ๋งต์ ์จ์์ด. ๊ทผ๋ฐ ๋ํ๋งต์ด๋ ์์ญ๊ฐ์ง ๋งต์ ๋ค ์ด๋ฐ์์ผ๋ก ๋ง๋ค๋ ค๋๊น ๋จธ๋ฆฌ๊ฐ ์ํ๊ฑฐ์ผ ใ
ใ
๊ทธ๋์ ํฐ๋ ์ธํด์ ์ข ๊ฐ์กฐํด๋ณผ๊น ํ๊ณ ์ฐพ์๋ณด๋ค๊ฐ. ๋๋ฒ๊ทธ๋ชจ๋์์ ๋ฉํ
๋ฆฌ์ผ์ ๋ฐ๊ฟ์์๋๊ฑธ ๋ฐ๊ฒฌ!! ๋ญ์ง? ๊ฐ์กฐํด์ ์ฐ๋ผ๋ ๊ณ์??
ย (๋ฒ์ ์ ๋ฐ๋ผ ๋ค๋ฅผ์๋ ์๊ฒ ์ง๋ง, ๋ ๋๋ฒ๊ทธ๋ชจ๋ ๋๊ฐ๋๊น ๋์ค๋๋ผ..)
์๋ฌดํผ ๋ฉํ
๋ฆฌ์ผ์ ๋ผ์ธ ์ ์์ผ๋ฉด ์ด์ผ๊ธฐ๋ ์ฝ์ง!! ์ปค์คํ
ํฐ๋ ์ธ ์์ด๋๋ฅผ ๋ง๋ค์์ด!!
ํฐ๋ ์ธ์ ๊ฐํธํ๊ณ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ค์ ๋ด๊ฐ ์ํ๋ ์กฐ๊ฑด๋ง ๋ง์ถฐ์ฃผ๋ฉด ๋ฐ๋ก ์ฐ๋ฉด ๋๊ฒ ๋๋ผ๊ณ ..!
๋ด ์กฐ๊ฑด์ ์ด๋ฌ์ด
1. ํฐ๋ ์ธ ํน์ ์ ๋ถ๋๋ฌ์ด ๋ฉ์ฌ๋ณด๊ฐ์ ์ ๊ฑฐํ ๊ฒ. (๋ธ๋ ๋๋ก ์น๋ฉด ์ธ์ด๋์ค๋ฌด์ค์์ ์ธ์ด๋ํ๋ซ์ผ๋ก)
2. ๋ฒํ
์ค ๊ฐฏ์๋ฅผ ์ค์ผ๊ฒ(์ด๊ฑด ํฐ๋ ์ธ์
ํ
์ hightmap ํด์๋๋ก ์กฐ์ ํ๋ฉด ๋๊ฒ ๋๋ผ๊ณ )
3. ํฐ๋ ์ธ์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ๊ณผ ํธํ๋๋๋ก ๋ง๋ค๊ฒ.( ํ์ฌ๊ธฐ ๋๋ฌด์ฌ๊ธฐ ์งํ์ค์ ์ ๊ธฐ๋ณธ์ด์ง๋ง, ๋งต์ ํ
์ค์ณ๋ง ํ๋๊ฑด ์ธ์ด๋ ์์ญ์ด๋๊น..)
4. ์ง๋๋ฒ์ ๋ง๋ ๋น๊ธ ์์ด๋๋ ๊ฐ์ด ์ ์ฉํ ๊ฒ.
์์ ๋? ๊ทธ ์ธ์๋ ์ด๊ฒ์ ๊ฒ ์์ฉ ํด ๋ณผ ์ ์๊ฒ ๋๋ผ๊ณ ??
์ผ๋จ 1๋ฒ๋ถํฐ ๋ง๋ค์ด๋ณด์์ด.
๊ตฌํ์๋ฆฌ๋ ์ด๋ ๊ฒ..
1. ํ์ฌ ํฝ์
๊ณผ ์ ํฝ์
์ ์์น ์ฐจ์ด(๊ธฐ์ธ๊ธฐ)๋ฅผ ๊ตฌํจ (๋ฏธ๋ถ)
2. ๋ ๊ธฐ์ธ๊ธฐ๋ฅผ ์ธ์ (Cross)ํ๋ฉด, ๊ทธ ๋ฉด์ '์์ง ๋ฒกํฐ(Normal)'๊ฐ ๋์ด
ย ย ์ด ๊ฒฐ๊ณผ๋ ๋ณด๊ฐ(Smoothing)๋์ง ์์, ๋ฉด ์์ฒด์ ๊ฐ์ง ๋
ธ๋ฉ์!
์ด ๋๊ฐ์ง๋ ์์ฃผ ๊ฐ๋จํ๊ฒ ์ปค์คํ
๋
ธ๋๋ก ๊ตฌํ๊ฐ๋ฅ.ย ย ย
float3 dx = ddx(WorldPos);
float3 dy = ddy(WorldPos);
FlatNormal = normalize(cross(dy, dx));ย <--์๊ฒ์
์๋ ๊ฒ ์ปค์คํ
๋
ธ๋๋ฅผ ์ ์ํด์ ์
๋ ฅ์ผ๋ก ์๋ํฌ์ง์
์ถ๋ ฅ์ผ๋ก ๋ฒกํฐ3๋ฅผ ๋ฝ์์ฃผ๋ฉด ๋!!
๋ด๊ฐ ์ฌ์ฉ์ค์ธ ๋ชจ๋ธ๋ง ์์
๋ค์ ์ฝ๊ฐ์ ๋ณด๊ฐ์ด ์์ด.์. lerp๋ก ์ธ์ด๋์ค๋ฌด์ค๋ฅผ ์กฐ์ ํ ์์๊ฒ ์ค๊ณํ์ด.
์ ์ด์ ์ด๋ฌ๊ณ ์๋ ์ด์ ๊ฐ ๋ฐ์๋ ๋๋ฌด๊ฐ์ ์์
๊ณผ ํต์ผ๊ฐ์ ์ฃผ๊ธฐ ์ํด์๋๊น..!
์ด๊ฑธ Normal (๋ฒํ์ค ์๋, ํ๋ ๊ทธ๋จผํธ์) ์ ๊ฝ์์ฃผ๋ฉด ์์ฑ ใ
ใ
1๋ฒ์ ์๊ธฐ๊น์ง ๊ตฌํ!!
2๋ฒ์ ๊ทธ๋ฅ ์ด๊ฐ๋จ...
ใ
ใ
๊ฑ ๋ฎ์ถฐ... ๋ก์ฐํด๋ฆฌ๊ณค..์ฝ๊ณ ๊ฐ๋ณ๋ค!
3๋ฒ์ ํฐ๋ ์ธ์ ํ
์ค์ณ ์ฑ์๋ฐฉ์์ด RGBA ์ฑ๋์ ์ด์ฉํ ๋ง์คํฌ๋งต์ ์ด์ฉํ๋ค ๋ผ๋๊ฑธ ์๊ณ ์๋ค๋ฉด(ํ๋ก์ ํธ์์ ํฐ๋ ์ธ๋ฐ์ดํฐ๊ฐ๋ณด๋ฉด ์ด ๋งต์ ๊ตฌ๊ฒฝํ ์์์ดใ
ใ
)
๋จ์๊ฑด ํฐ๋ ์ธ์์ ์ฌ์ฉํ๋ ๋ ํผ๋ฐ์ค ์ด๋ฆ์ ๋ฐ์์ ์ธ์ด๋์ ์ ์ฉํด์ฃผ๋ฉด..!? ์๋ ์ปค์คํ
ํฐ๋ ์ธ..!!
๋ด๊ฐ ์ ์ฉํ ๊ฑด ๋ฒ ์ด์ค๋งต, ๋ฒ ์ด์ค๋งต ์ปฌ๋ฌํดํธ, ๋
ธ๋ฉ๋งต, ๋
ธ๋ฉ ๊ฐ๋, ํ
์ค์ณ ํ์ผ๋ง&์คํ์
์ ๋๊ฐ ์๊ฒ ๋ค.
๋ง๋ค๊ณ ์ถ์ ํ๋ค ์์์๋ ์์ผ๋ ๋ ํผ๋ฐ์ค ์ด๋ฆ ์ ๋ฆฌ ํ๋ฒ ํด๋ณผ๊ฒ!!ย
ํฐ๋ ์ธ ํด๋ณธ ํ๋ค์ ์๊ฒ ์ง๋ง, ํ
์ค์ณ๋ ๋ญ๋ ๋ด๊ฐ ์ถ๊ฐ ํ๋๋๋ก ์ธ๋ฑ์ค๊ฐ ์์ฑ๋๊ธฐ ๋๋ฌธ์, ๋ ํผ๋ฐ์ค์๋ ์ธ๋ฑ์ค ๋ฒํธ๊ฐ ๋ถ์ด. ์ธ๋ฑ์ค ๋๋ฒ๋ (N) ์ด๋ผ๊ณ ํ๊ธฐํ ๊ฒ,
๋ ํผ๋ฐ์ค ์ด๋ฆ์ด์ผ! ์์ ์ธ๋๋ฐ ๋๋ฝ์ด๋ ๋์๋ฌธ์ ์๋ง์ผ๋ฉด ์๋๋๊น ์กฐ์ฌ!
๋ง์คํฌ๋งต(Texture) -> _Control
๋ฒ ์ด์ค๋งต(Texture) -> _Splat(N) -> ex) _Splat0 , _Splat1 , _Splat2 ~~~~
์ปฌ๋ฌํดํธ(Vector4) ->ย _DiffuseRemapScale(N) ์๋ช ์ผ์ค ๋๋ฝ๋ค...์ฐพ๋๋ผ ๊ณ ์ํจ ใ ใ ๊ทธ๋ฆฌ๊ณ colorํผ ์๋๊ณ Vector4์.. ๊ทผ๋ฐ ๋ ์คํํ๋ฌ๋ ์ปฌ๋ฌ์ฐ๋๋ผ ใ ใ ..
๋ ธ๋ง๋งต(Texture) ->ย _Normal(N)
๋
ธ๋ง๊ฐ๋(float) -> _NormalScale(N)
ํ์ผ๋ง&์คํ์
(Vector4) ->ย _Splat(N)_STย ์ด๊ฑด xy๊ฐ ๊ฐ๊ฐ ํ์ผ๋ง xy์, zw๊ฐ ๊ฐ๊ฐ ์คํ์
xy์ ํ ๋น๋จ!
๋ด๊ฐ ํ์ํ๊ฑด ์ด์ ๋๊ณ ... ํน์ ํ์ํ ํ๋ค์
_Mask(N) (Vector4) -> ์ฌ๊ธฐ ๊ฐ ์ฑ๋๋นย R:ย Metallicย G:ย AO B:ย Detail Maskย A:ย Smoothnessย ํ ๋น๊ฐ๋ฅํจ ใ
ใ
์ฌ๊ธฐ์ ์ง๋๋ฒ์ ๋ด๊ฐ ๋ชจ๋ ์ค๋ธ์ ํธ์ ์ผ๊ด์ ์ฉํ๋ ๋น๊ธ ์์ด๋๋ฅผ ์ ์ฉํด์ฃผ์์ด.
์๋ ๊ฐ๋ฐ ํ์ ๋ค,๋ฒฝ ํ์ด๋ ๊ธ์ ์๊ฐ๋ณด๋ค ๋ฐ์์ด ๋๋ฌด ์ข์์ ๊น์ง ๋๋์ด. ๋ค๋ค ๊ณ ๋ง์! ๊ธฐ์ธ๋ฅผ ๋ชฐ์ ํ๋ ๋ ์ฌ๋ ค๋ณผ๊น ํด!๋๋ ๋ก์ฐํด๋ฆฌ ์์ ์ผ๋ก ๊ฒ์์ ๋ง๋ค๊ณ ์์ด. ์์ ์ ๋๋ฌด ๊ท์ฝ๊ณ ๋ด ์คํ์ผ์ด์ง๋ง, ๋ฐ๋๊ฐ ๋จ์ด
gall.dcinside.com
์๊ฑฐ์!! ํน์ ๊ด์ฌ ์๋ ํ๋ค์ ์ฝ์ด๋ณด๋ฉด ์ฌ๋ฏธ์์๊ฑฐ๊ฐ์.!!
์์ฑ๋ ์ธ์ด๋ ๋ชจ์ต... ๋ณต์กํด ๋ณด์ด์ง๋ง ๊ทธ๋ฅ ์ฑ๋๋ณ ๋ฐ๋ณต ๋ ธ๊ฐ๋ค๊ณ .. ์๋ง์ ๊ณณ์ ์ฐ๊ฒฐํด์ฃผ๋ฉด ๋... ๋ ํผ๋ฐ์ค ์ด๋ฆ ์ฐพ๊ธฐ๊ฐ ์ด๋ ต์ง ๋ง๋๋๊ฑฐ ์์ฒด๋ ๋์ด๋๊ฐ ์์ฃผ ์ฌ์ดํธ์ด์ผ!
ํฐ๋ ์ธ ๋ด๋ถ์ ๋ ํผ๋ฐ์ค ๊ฐ์ ธ์ค๊ธฐ๋๋ฌธ์ ๋ฉํ
๋ฆฌ์ผ์์ ๋ญ ์กฐ์ ํด์ค ํ์์์ด ์๋์ผ๋ก ์ฝ์ด์ค!!ย ๋ด๊ฐ ๋ฉํ
๋ฆฌ์ผ์์ ๋ฐ๋ก ๋ฃ๊ณ ํ ๊ฒ ์์ ใ
ใ
์ฆ ํฐ๋ ์ธ ๊ทธ๋ฅ ์ฐ๋๋๋ก ์ฐ๋ฉด ๋ ๋จ ์ฌ์ค!
์ด์ ์ด๋ ๊ฒํ๊ณ ํ๋ฒ ๋๋ ค๋ณด๋ฉด..!!
์ง์.. ๋ก์ฐํด๋ฆฌ๊ณค ํฐ๋ ์ธ ใ
ใ
์์์ ์๋์ค์ง๋ง ๋
ธ๋ง๋งต์ด๋ ๋ญ๋ ๋ค๋ฅธ ๊ฒ๋ค๋ ๋ค ์ ์๋ํด!ย
๋น๊ธ๋ ์ ์ ์ฉ๋์ด์ ๊ธฐ์กด์ ํ๋๋ค๊ณผ ํฐ ์ํ๊ฐ์ด ์์ด์ ๋คํ์ด์ผ!
ํฐ๋ ์ธ์ด ์๋ ๋กํด์ฉ์ผ๋ก ๋์จ๊ฑด ์๋๋ผ ์ด๋ฐ ๊ฐ์กฐ๋ฅผ ํด์ผ ํ์ง๋ง(๋งํ ์ธ์ด๋์ค๋ฌด์ค)...ํ๋ฒ ํด ๋์ผ๋ฉด ์ง๊ธ ๋ด ์ํฉ์์ ๋๋ฌด ์ ์ฉํ๊ฒ ์ธ ์ ์๊ฑฐ๋ ...!!
๋์ค์ ๋๋ฌด ์ฌ์๊ฑฐ ์ค์ ํน ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ์์
๋ ์ ์ฉํ๋ฉด ๋งต ๋ง๋ค๊ธฐ ์์ฒญ ์ฌ์์ง๊ฒ ์ง..!! ์ง๊ธ๋ณด๋ค ์ฝ 1/10์์
๋์ด ์ค์ด ๋ค๊ฑฐ๋ผ๊ณ ์๊ฐํด ใ
ใ
ย
์ถ๊ฐ์ ์ธ ์ด๋์ ์ฑ๋ฅ์ ์ธ ๋ถ๋ถ?? ์ง๊ธ๋ ์ฑ๋ฅ์ด ๋จ์๋๊ธด ํ์ง๋ง..
์์ด๋ ์ปดํ์ผํด์ ์คํฏ์ ๊น๋ณด๋๊น...
ํฝ์
ํ๋๋น ์ํ ์ฐ์ฐ์ ํ๊ท 279๋ฒ ์ ๋ ํ๋๋ฐ, ํฐ๋ ์ธ ์์ด๋ ์น๊ณ ๋ ๊ตฐ๋๋๊ธฐ ์์ด ์์ฃผ ์ค์ํ ์์น์ผ! ๊ธฐ์กด ํฐ๋ ์ธ PBR ์ฐ์ฐ์ด ์๋ ๋ฌด๊ฒ๊ธฐ๋ ํ๊ณ ใ
ใ
๋ ์ธ ๊ธฐ๋ฅ๋ง ๋ฃ์ด์ ๊ฐ๋ณ๊ฒ ๋์จ๋ฏ? ์๋ฌดํผ ๊ฐ์ด๋์ด์ฃ ?
๊ฐ์ธ์ ์ผ๋ก ์ ์ฉํ๊ณ ์ฌ๋ฐ๋ ์์
์ด์๋ ๊ฒ ๊ฐ์์ ์ผ์ง ๋จ๊ฒจ๋ด...!
๋ค๋ค ์ถ์ด๋ฐ ๊ฐ๊ธฐ ์กฐ์ฌํ๊ณ ํ๋ณต ๊ฐ๋ฐํ์...!! ์ค๋๋ ํ์ดํ
!!
์์ง ๋งต ๋ง๋ค๊ธฐ ์ค๋น์ค์ด์ง๋ง...๋์ค์ ์ด๊ฑธ๋ก ๋ฉ์ง ๋งต ๋ง๋ค์ด์ ๊ธ ์จ๋ณผ๊ฒ..!! ใ ใ ใ
๊ณ ์
๊ธ๊ฒ์ผ ์ ์ฃผ ๋ถ๋ฝ๋ค