(์ด ํฌ์คํ ์ 2023.11.08์ ๋ฆฌ๋ด์ผ ํ์์ต๋๋ค.)
โ์ด๋ก ํธ
์ฐ๋ฆฌ๊ฐ ๋
ธ๋ฉ๋งต์ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๊ฒฝ์ฐ ๋๋ถ๋ถ tangent space ๋๋ mikktspace๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ด๊ฐ ๋ฌด์์ ์ฌ์ฉํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค๊ณ ์? 100% ์ผ์นํ๋ ๊ฒ์ ์๋์ง๋ง ๋๋ถ๋ถ ์ ๋ํฐ๋ tangent space๋ฅผ, ์ธ๋ฆฌ์ผ์ mikktspace๋ฅผ ์ฌ์ฉํ๊ณ ์์ ํ๋ฅ ์ด ํฝ๋๋ค.
1. mikktspace normal ์์๋ณด๊ธฐ
๋ฏธ์ผ์จ ํ์ ํธ ์คํ์ด์ค ๋
ธ๋ฉ(Mikkelsen tangent space normal)์ ์ ์์์ธ Morten Mikkelsen ์ด๋ฆ์ ๋ฐ์ ๋ง๋ ๊ฒ์ผ๋ก ๊ธฐ์กด tangent space์ ๋ฌธ์ ์ ๋ค์ ๋ณด์ํ ์์คํ
์
๋๋ค. ์์ธํ ๊ฒ์ ์ฌ๊ธฐ์ ํ์ธํ ์ ์์ต๋๋ค.
2. ์ mikktspace๋ฅผ ์ฌ์ฉํด์ผํ ๊น?
์ฌ๋ฌ ์ด์ ๊ฐ ์์ง๋ง, ๊ทธ์ค์์๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ ์ํฐ์คํธ ์
์ฅ์์๋ง ๋ฐ๋ผ๋ณธ๋ค๋ฉด ๋
ธ๋ฉ๋งต์ ์ฌ์ฉํ์ฌ ๋์ฑ ์ ํํ๊ฒ ํ์ดํด์ ํ๋ด ๋ผ ์ ์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐ๋ฉ๋๋ค. "๋ค๋ฅธ ์ด์ ๋ก๋ ์ต์ ํ์ ์ ํฉํด์", "์ด์ ๋ DCC ํด๋ mikktspace๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํด์"๊ฐ ์์ต๋๋ค.
3. mikktspace๋ฅผ ํ์ฉํ ๋ฒํ ์ค ์ต์ ํ
mikktspace๋ ๋ก์ฐํด ๋ฉ์ฌ๊ฐ ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ผ๋ก ์ธํ์ฌ ๊ตด๊ณก์ง ์์ด๋ฉ์ด ๋์ด๋ ์ํ๋ ํ๋ฉด์ผ๋ก ๋ณด์ ํด์ค ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. ์ด๊ฒ์ ํ์ฉํ์ฌ ์์ง์์ ๊ทน๋จ์ ์ผ๋ก ๋ฒํ
์ค๋ฅผ ์ค์ผ ์ ์๊ฒ ๋์์ต๋๋ค. ์์ง์์๋ DCC์ ๋ค๋ฅด๊ฒ UV๋ฅผ ํฌํจํ์ฌ ๋ฒํ
์ค๋ฅผ ์นด์ดํ
ํ๊ณ ์์ต๋๋ค. UV ์ ๊ฐ ๋ฐฉ์๊ณผ ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ ๋ฐ๋ผ์ ๋ฒํ
์ค์ ๊ฐฏ์๊ฐ ๋ฌ๋ผ์ง๋๋ค.
โ์ค์ ํธ
1. mikktspace ์ด๋ป๊ฒ ์ฌ์ฉํ๋ฉด ์ข์๊น?
๋ฆฌ๋ด์ผ ์ ํฌ์คํ
์์๋ ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ 1๋ก ๋ง๋ค๊ณ ํ์ดํด ๋ผ์ด๋ฉ ๋ฐ์ค๋ฅผ ๋ฒ ์ดํฌ ํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃจ์๋๋ฐ, ์๊ฐ์ด ์ง๋ ์๋ก ์ ์ ์๋์๋ ๋ค๋ฅด๊ฒ ํด์๋๊ธฐ๋ ํ๊ณ , ์ธ๋ฆฌ์ผ ์์ง 5๊ฐ ๋ณดํธํ๋์๊ณ , ์ ์ ์ค์ ๊ฒฝํ๋ ๋ง์ด ๋์ด๋์ ์ด๋ฒ์๋ ๋ค๋ฅด๊ฒ ์ ์ด๋ณด๋ ค ํฉ๋๋ค.
๋จผ์ , ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ 1๋ก๋ง ๋ง๋ ๋ค์ ๋ฒ ์ดํน์ ํ ๋
ธ๋ฉ๋งต์ ์ฌ์ฉํ๋ฉด ํฌ๊ฒ ๋ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ ๋
ธ๋ฉ๋งต ํธ์ง์ด ์ด๋ ต๋ค๋ ๊ฒ. ์ค๋ฌด์์๋ ๋
ธ๋ฉ๋งต ๋ฒ ์ดํฌ๋ฅผ ํ๋ฒ์ ๋๋ด๊ณ ๋ฐ๋ก ํ
์ค์ฒ๋ง ์์
์ ๋ค์ด๊ฐ๋ฉด ์ข๊ฒ ์ง๋ง, ํฌํ ์ต ๋๋ ์๋ธ์คํด์ค ํ์ธํฐ๋ก ๋
ธ๋ฉ์ ์์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๊ฝค ์์ต๋๋ค. ์ด๋ฐ ์ํฉ์์ ์ด๋ฏธ ๊ตด๊ณก์ง ๋
ธ๋ฉ๋งต์ ์์ ํ๊ธฐ๋ ์ฐธ ์ด๋ ต์ต๋๋ค. ํ๋ซํ ๋ฐํ์ ๋์ฌ์ ๊ฐ์ ์ผ๋ถ ๋
ธ๋ฉ์ ์์ ํ๋ ๊ฒ์ ์ฝ์ง๋ง ์ด๋ฏธ ๊ตด๊ณก์ง ๋ฐํ์ ๋ ๋ค๋ฅธ ๋ฌด์ธ๊ฐ๋ฅผ ์น๊ฑฐ๋ ์์ ํ๊ธฐ๋ ๊ฑฐ์ ๋ถ๊ฐ๋ฅ์ ๊ฐ๊น์ด ์์
์ด ๋์ด ๋ฒ๋ฆฝ๋๋ค. ๋ ๋ฒ์งธ๋ LOD์์ ํจ๊ณผ๋ฅผ ๋ณด์ง ๋ชปํฉ๋๋ค. ์ด๋ฏธ LOD0์์ ๋ฉ์ฌ์ ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ผ๋ก์ธํด ์์ด๋ฉ์ด ๊ตด๊ณก๋์ด์ ๊ทธ๊ฒ์ ๋ณด์ ํ๋๋ผ ๋
ธ๋ฉ๋งต์๋ ๋ณด์ ๊ฐ์ด ๋ค์ด๊ฐ๋๋ฐ, ๋ฉ์ฌ๊ฐ ๋ ๋จ์ํด์ง๋ฉด ๋ฉ์ฌ์ ์์ด๋ฉ์ ๋ ๋ค๋ฅด๊ฒ ๋ณํ๊ธฐ ๋ง๋ จ์
๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ณํ๋ ์๊ณก์ ๋ณด์ ๋ ๋
ธ๋ฉ๋งต์ด ๋ํด์ ์์ด๋ฉ์ ์๋ง์ด ๋์ด๋ฒ๋ฆฝ๋๋ค.
๊ทธ๋ฆฌํ์ฌ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ค์ ๋๊ณ ๋์ "๋
ธ๋ฉ๋งต์ ์ต๋ํ ํ๋ซํ๊ฒ ์ฌ์ฉํ์"๋ผ๋ ๊ธฐ์กฐ๋ก ๋์์ค๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ ๋ค๊ณ ๋ค์ ์์ ์ฒ๋ผ ๋ฌด์์ ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ ๋๋์ด ์ปทํ
ํ๋๋? ๊ทธ๊ฒ์ ์๋๋๋ค. ํด๋ฆฌ๊ณค์ ์กฐ๊ธ ๋ ๋๋ฆฌ๋๋ผ๋ ์ต๋ํ ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ ์ ๊ฒ ์ฐ๋, ํ์ํ๋ค๋ฉด Weighted Normal ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋ฒํ
์ค ๋
ธ๋ฉ์ ๋ฐฉํฅ์ ์์ ํ๋ ๊ฒ์
๋๋ค. (์ฌ์ค ์ด๊ฒ์ ๊ฐ์ธ์ ์ทจํฅ์ด๊ธด ํฉ๋๋ค.)
์ฒซ ๋ฒ์งธ๋ก ์ด์ ํฌ์คํ
์์ ์์๋ฅผ ๋ค์๋ ๋ผ์ด๋ฉ ๋ฐ์ค์ ๊ฒฝ์ฐ์
๋๋ค. ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ 1๋ก ๋ง๋ ๋ก์ฐํด ๋ฐ์ค๋ฅผ ํด๋ฆฌ๊ณค์ ์กฐ๊ธ ๋ ์ถ๊ฐํ์ฌ ์์ด๋ฉ ๊ตด๊ณก์ ์ค์ด๊ณ , Weighted Normal๋ก ๋ฒํ
์ค ๋
ธ๋ฉ์ ์กฐ์ ํ์ฌ ํฐ ๋ฉด๋ค์ ํ๋ซํ๊ฒ ๋ง๋ค์ด ์์ด๋ฉ ๊ตด๊ณก์ ํ ๋ฒ ๋ ์ค์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ํด๋ฆฌ๊ณค์ด ์กฐ๊ธ ๋ ๋๊ธฐ๋ ํ์ผ๋ ๋
ธ๋ฉ๋งต์ ํ๋ซํ๊ฒ ๋ฒ ์ดํฌํ ์ ์๊ณ , ์ ๋ ๊ฐ์ง์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๋ ๋ฒ์งธ๋ก ์์๊ณผ ๊ฐ์ด ์์ ๋๊ป๊ฐ ์๋ ๋ถ๋ถ์ ํํํ ๋์ ๊ฒฝ์ฐ์
๋๋ค. ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ 1๋ก ๋ง๋ค๋ฉด ๋๊ป๋ฅผ ์ค ๋ฉด์ ์ํฅ์ผ๋ก ๋์ ํด๋นํ๋ ๋ฉด๋ค์ด ์์ด๋ฉ์ด ์๊ณก๋์ด ๊ฒ๊ฒ ๋ํ๋ ๋๊ฐ ์์ต๋๋ค. ๋๊ป์ ํด๋นํ๋ ๋ฉด์ ๋ ์ธ๋ถํํ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง ์ด๋ฒ์๋ ๊ทธ๋๋ก ํด๋ฆฌ๊ณค ์๋ฅผ ์ ์งํ๋ฉด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ๋ณด๊ฒ ์ต๋๋ค.
์ด ๊ฒฝ์ฐ์ ์๋ฉด์ ์ฃ์ง๋ฅผ ๋ฏธ์ธํ๊ฒ ์ด์ง ์ฌ๋ฆฝ๋๋ค. ์ด๋ฌ๋ฉด ๋ฒ ์ดํน๋ ๋๊ป๊ฐ ํํ์ด ์ ๋ฌป์ด๋์ฌ ๋ฟ๋๋ฌ ๋ก์ฐํด์ ์๊ณก์ ์ํ์์ผ์ค๋๋ค.
๊ทธ๋ค์ ๋ท๋ฉด์ ์ฃ์ง๋ฅผ ์ ํํ์ฌ ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ ๋๋๋๋ค. ์ด์งํผ ๋ท๋ฉด์ UV๋ ๋ฐ๋ก ํผ์น๊ธฐ ๋๋ฌธ์ ๋๋ ์ผ ํ๊ณ , ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ ๋๋ ๋ ๋ท๋ฉด๊น์ง ๋ณด์ด์ง ์๊ธฐ ๋๋ฌธ์ ๋ฃฉ์๋ ํฌ๊ฒ ์ํฅ์ ๋ผ์น์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ง์ง๋ง์ผ๋ก Weighted Normal๊น์ง ์ฃผ๋ฉด ๋ฒํ
์ค ๋
ธ๋ฉ์ ์ ๋ฆฌ๋ ๊น๋ํ๊ฒ ์ด๋ฃจ์ด์ง๋๋ค. ์๋๋ ์๋ฃจ์
์ ํ์ ์ฐจ์ด์
๋๋ค.
์ธ ๋ฒ์งธ๋ ์์์ด ํ์ ์ ์ผ ๋ ์ค๋ฌด๋ฉ ๊ทธ๋ฃน ๋๋๊ธฐ์
๋๋ค. ๋ ๋ค์ ๋ฑ์ฅํ๋ ๋ผ์ด๋ฉ ๋ฐ์ค. ๋ฒ์ธ๋ก ๋ผ์ด๋ฉ ๋ฐ์ค๊ฐ ๋ฐ๋ฉด์ ๋ณด์ฌ์ฃผ์ง ์๋๋ค๋ฉด, ๋ฐ๋ฉด์ ๊ณผ๊ฐํ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ๋ ์ข์ ์ ํ์ง ์ค์ ํ๋์
๋๋ค. ๋ค์ ๋์์์ ๋ผ์ด๋ฉ ๋ฐ์ค์ ๋ก์ฐํด์ ์ต๋ํ ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ ์ ๊ฒ์ฐ๊ณ ์์ด๋ฉ ์๊ณก์ด ์์ด ๋ง๋ค๋ ค๋ฉด ์ ๋ผ๋ฉด ์ด๋ ๊ฒ ๋ฐ๋ฐ์ฉ ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๊ณก์ ํ์ชฝ ๋ฐฉํฅ์ผ๋ก๋ง ์ฃผ๋ ๊ฒ์ด์ง์. ๋ฌผ๋ก UV๋ ์ด๋ ๊ฒ ํผ์ณ์ง๊ฒ ์ง์.
๋น์ทํ ๊ฒฝ์ฐ๋ก ์ฌ๋ค๋ฆฌ๊ผด ํํ์ ์์ ํ๋์ญ ๋ถํ์ ๋ง๋ ๋ค๋ฉด ์ด๋ฐ ์์ผ๋ก ์ค๋ฌด๋ฉ ๊ทธ๋ฃน์ ๋๋์ด ์๊ณก์ ์ต์ํํฉ๋๋ค.
์ฌ์ค, ์ฃผ์ ๋ฆฌ ์ฃผ์ ๋ฆฌ ์จ๋์์ง๋ง ์ด๋ฌํ ๋ฌธ์ ๋ ํด๋ฆฌ๊ณค์ ๋๋ํ ์ฐ๋ฉด ๋ชจ๋ ํด๊ฒฐ๋๋ ์ผ์
๋๋ค. ์ธ๋ฆฌ์ผ ์์ง5์๋ ๋๋์ดํธ ๊ธฐ๋ฅ์ด ์๊ธฐ๋ฉด์ ์ํธ์์ฉ์ด ์๋ ์คํํฑ ๋ฉ์ฌ๋ ํด๋ฆฌ๊ณค์ ์ถฉ๋ถํ ์ฌ์ฉํ ์ ์๊ฒ ๋์์ต๋๋ค. ์คํํฑ ๋ฉ์ฌ ํ์ ์ด๊ธด ํ์ง๋ง ๋๋์ดํธ๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉด ์ต๋ํ ํ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
2. DCC์์ FBX ๋ด๋ณด๋ด๊ธฐ
์ฐ์ ์ค๋ฌด๋ฉ๊ทธ๋ฃน์ด ์๋ํ ๋๋ก ๊ตฌ์ฑ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ UV๋ ์ต๋ํ ์ชผ๊ฐ์ง ์๋๋ก ์ฃผ์ํ์ฌ ์ธ๋ฉ์ ํฉ๋๋ค. ๋ฉ์ด๋ฆฌ๋ค์ด ๋ถ์ด ์์์๋ก ์์ง์์ ์ฐ์ฐ๋๋ ๋ฒํ
์ค์ ์๋ ์ค์ด๋ญ๋๋ค.
๊ทธ๋ค์ ์ผ๊ฐ๋ฉด์ ๋ง๋ค์ด ์ฃผ๊ณ FBX๋ก ์ ์ฅํด์ผ ํ๋๋ฐ, ์ผ๊ฐ๋ฉด์ผ๋ก ๋ง๋๋ ์ด์ ๋ ์์ง์ ๋ฐ๋ผ ์ฌ๊ฐ๋ฉด ์์ ์ผ๊ฐ๋ฉด์ด ๋ค๋ฅด๊ฒ ํ์๋๋๋ฐ, ๋ฒ ์ดํน ํ์ ๋์ ์์ง์ ๋ฃ์์ ๋ ์ผ๊ฐ๋ฉด์ ๋ฐฉํฅ์ด ๋ฌ๋ผ์ง๋ฉด ๋
ธ๋ฉ๋งต์ ๋ฒ ์ดํน ํ์ ๋์ ์ผ๊ฐ๋ฉด์ ๋ง์ถฐ์ ๋ฒ ์ดํฌ ๋์๊ธฐ ๋๋ฌธ์ ์์ง์์๋ ํ๋ฉด์ด ์ธ๊ฒ ๋ฉ๋๋ค.
์ผ๊ฐ๋ฉด์ ๋ง๋ค ๋ export ์ต์
์์ Triangulate๋ฅผ ์ฒดํฌํ๊ณ ํ์ผ๋ก ์ ์ฅํด๋ ๋์ง๋ง, ๋๋๋ก ๋ชจ๋ํ์ด์ด๋ฅผ ํ์ฉํ์ฌ ์ง์ ์ผ๊ฐํ์ผ๋ก ๋ณํํ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค. (๋ธ๋ ๋์์๋ Keep Normals ์ต์
์ ์ฒดํฌ ํ์)
์ด๋ ๊ฒ ์์
์ ์งํํ๋ ์ด์ ๋ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ , ์๋ธ์คํด์ค ํ์ธํฐ์์ ํ
์ค์ฒ๋ง ์์
์๋ ์ฌ์ฉํ๊ณ ์์ง์ ์ฌ๋ฆฌ๋ ์ต์ข
๋ฉ์ฌ๋ก๋ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์
๋๋ค.(๊ฐํน๊ฐ๋ค ๋ฒ ์ดํน ๋ฉ์ฌ์ ์ต์ข
๋ฉ์ฌ์ ํํ๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.)
๋ธ๋ ๋๋ ๋ํดํธ ์ธํ
์ด mikktspace๋ก ๋์ด์์ต๋๋ค. ์ถ๊ฐ ์ค์ ์์ด Geometry ํจ๋์์ Smoothing์ Face๋ก ๋ณ๊ฒฝํ๊ณ ์ต์คํฌํธํฉ๋๋ค.
3ds max ๋๋ maya์ ๊ฒฝ์ฐ FBX export ์ต์
์์ Tangents and Binormals๋ฅผ ์ฒดํฌ ํด์ ํ๊ณ ์ต์คํฌํธํฉ๋๋ค.
3. Substance Painter์์ ๋ฒ ์ดํน ๋ฐฉ๋ฒ
Substance ๊ณต์ ๋ฌธ์์๋ ํ๋ก์ ํธ์ ๋ฐ๋ผ Tangent Space๋ฅผ ์ค์ ํ๋ผ๊ณ ๋์์์ต๋๋ค. ์๋ธ์คํด์ค ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ Compute tangent space per fragment ์ต์
์ ์ฒดํฌ/์ฒดํฌ ํด์ ํฉ๋๋ค. ์ฆ, Unity ๊ธฐ๋ณธ ์์ด๋ฉ์ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์๋ ์ฒดํฌ๋ฅผ ํด์ ํ๊ณ , UE4๋ Unity HDRP, ๋ธ๋ ๋๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์๋ ์ฒดํฌํ๊ณ ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค. ์ ๋ชจ๋ฅด๊ฒ ๋ค ์ถ์ผ๋ฉด Template์ ์ด์ฉํด์ฃผ์ธ์.
4. ์ธ๋ฆฌ์ผ ์์ง์์ FBX ๊ฐ์ ธ์ค๊ธฐ
์ด๋ฏธ ์ธ๋ฆฌ์ผ ์์ง์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก mikktspace๊ฐ ์ค์ ๋์ด์์ต๋๋ค. ํ์ง๋ง ์ต์
์ด ์ ๋๋ก ์ค์ ๋์๋์ง ๋ณด๋ ค๋ฉด ๋ฉ์ ํจ๋์ ํ์ฅํ๊ณ Normal Generation Method๊ฐ MikK TSpace๋ก ๋์ด์๋์ง ํ์ธํฉ๋๋ค.
์ฐธ๊ณ ํ ์ฌ์ดํธ : bgolus.medium.com/generating-perfect-normal-maps-for-unity-f929e673fc57