NORMAL
5
์ธ๋ฆฌ์ผ ์์ง ๋
ธ๋ฉ๋งต B ์ฑ๋ ๋ณต๊ตฌ
์ธ๋ฆฌ์ผ์์ ์ฌ์ฉํ๋ R์ฑ๋๊ณผ G์ฑ๋์ ์ฌ์ฉํ์ฌ B์ฑ๋์ ๋ณต๊ตฌํ๋ ์ฝ๋. ์ด๋ ๊ฒ ํ๋ฉด DXT5๋ BC7์์ ๋
ธ๋ฉ๋งต ๋์ฅ์ ํ๋์ ํ
์ค์ฒ๋ก ์ฌ์ฉํ ์ ์๋ค.float4 UnpackNormalMap( float4 TextureSample ){ float2 NormalXY = TextureSample.rg; NormalXY = NormalXY * float2(2.0f,2.0f) - float2(1.0f,1.0f); float NormalZ = sqrt( saturate( 1.0f - dot( NormalXY, NormalXY ) ) ); return float4( NormalXY.xy, NormalZ, 1.0f );} ์ ์ฝ๋์ ๋์ผํ๊ฒ ๋
ธ๋๋ฅผ ๊ตฌ์ฑํด๋ณด์๋ค.
2024.11.01
CG ์ด์ผ๊ธฐ/์ธ๋ฆฌ์ผ์์ง
Normal Map์ Roughness Map์ผ๋ก ๋ณํํ๊ธฐ
์ต๊ทผ ์ธ๋ฆฌ์ผ ์์ง ๋์งํธ ํด๋จผ ํ๋ก์ ํธ๋ฅผ ๊ณต๋ถํ๋ค๊ฐ ๋
ธ๋ง๋งต์ผ๋ก๋ ๋ฌํ๋์ค๋งต์ ์ ์ํ ์ ์๋ค๋ ์ฌ์ค์ ์๊ฒ ๋์์ต๋๋ค. ์ด๋ ๊ฒ ์ฌ์ฉํ๋ ์ด์ ๋ ์ผ๊ตด์ ํ์ ๋ณํ๋ฅผ ๋
ธ๋ง๋งต์ผ๋ก ์ปจํธ๋กคํ ๋ ์๋์ผ๋ก ๋ฌํ๋์ค๋ ๊ฐ์ด ๋ณํ์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ด์
์ ๋๋ฉ์ด์
์ ์์ฐ์ค๋ฝ๊ฒ ํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๋ณํ ๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค๋ง, ์ด ๋ฐฉ๋ฒ์ ๋
ธ๋ง๋งต์ ์ ํํ๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ํ์ง ์์ผ๋ฉด ์ ๋๋ก ๋ณํ๋ ๋ฌํ๋์ค๋งต์ ์ป์ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๊ฒ๋ค๊ฐ ์ด๋ค ํํ์ ๋
ธ๋ง๋งต์ ๋ง๋ค์ด์ผ ๋ฌํ๋์ค๊ฐ ์ ๋๋ก ๋์ค๋์ง๋ ์์ง ํ์
์ ๋ชปํ์ต๋๋ค. ์ฐ์ , ๋ธ๋ ํ
์ค์ฒ๋ฅผ ํ ์ฅ ์ ์ํ๊ณ ์์ง์ผ๋ก ๋ถ๋ฌ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ
์ค์ฒ๋ฅผ ๋๋ธํด๋ฆญํ์ฌ Compositing ํจ๋์ Compositing Texture ํญ๋ชฉ์ ๋
ธ๋ง๋งต์ ๋ฃ๊ณ Composite Te..
2021.01.27
CG ์ด์ผ๊ธฐ/์ธ๋ฆฌ์ผ์์ง
mikktspace normal ์ ๋๋ก ์ฌ์ฉํ๊ธฐ
30
(์ด ํฌ์คํ
์ 2023.11.08์ ๋ฆฌ๋ด์ผ ํ์์ต๋๋ค.) โ์ด๋ก ํธ ์ฐ๋ฆฌ๊ฐ ๋
ธ๋ฉ๋งต์ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๊ฒฝ์ฐ ๋๋ถ๋ถ tangent space ๋๋ mikktspace๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ด๊ฐ ๋ฌด์์ ์ฌ์ฉํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค๊ณ ์? 100% ์ผ์นํ๋ ๊ฒ์ ์๋์ง๋ง ๋๋ถ๋ถ ์ ๋ํฐ๋ tangent space๋ฅผ, ์ธ๋ฆฌ์ผ์ mikktspace๋ฅผ ์ฌ์ฉํ๊ณ ์์ ํ๋ฅ ์ด ํฝ๋๋ค. 1. mikktspace normal ์์๋ณด๊ธฐ ๋ฏธ์ผ์จ ํ์ ํธ ์คํ์ด์ค ๋
ธ๋ฉ(Mikkelsen tangent space normal)์ ์ ์์์ธ Morten Mikkelsen ์ด๋ฆ์ ๋ฐ์ ๋ง๋ ๊ฒ์ผ๋ก ๊ธฐ์กด tangent space์ ๋ฌธ์ ์ ๋ค์ ๋ณด์ํ ์์คํ
์
๋๋ค. ์์ธํ ๊ฒ์ ์ฌ๊ธฐ์ ํ์ธํ ์ ์์ต๋๋ค.2. ์ mikktspace๋ฅผ ์ฌ์ฉํด์ผํ ๊น..
2021.01.20
CG ์ด์ผ๊ธฐ/3D๊ธฐ์ด
Normal map to Height map ๋ณํ ํ๋ก๊ทธ๋จ ๋ฆฌ๋ทฐ
์ต๊ทผ Friendly Shade๋ผ๋ ํ์ฌ์์ ๋
ธ๋ง์ ํ์ดํธ๋งต์ผ๋ก ๋ณํ์์ผ์ฃผ๋ ํ๋ก๊ทธ๋จ์ ๊ณต๊ฐํ์ต๋๋ค. ๊ทธ๋์ ํ์ดํธ๋งต์์ ๋
ธ๋ง๋งต์ผ๋ก ๋ณํ์ ์ฌ์ ์ด๋, ํ์ดํธ๋งต์์ ๋
ธ๋ง๋งต์ผ๋ก ๋ณํํ๊ธฐ๋ ์ ๋ง ์ด๋ ค์ด ์์ ์๋๋ฐ์. ์๋ ๊ณ ๋ฆฌ๋๋ฏน ์กฐ์ฐจ๋ ์ฐ๊ตฌ์ ํ์ ์ด ๋ณด์ด๊ธด ํ์ง๋ง ์์ง ์๋ธ์คํด์ค ๋์์ด๋์ ๊ฐ์ ๋ ๋
ธ๋๋ฅผ ํฌํจ์ํค์ง ๋ชปํ์ต๋๋ค. ๋
ธ๋ง๋งต์ ํ์ดํธ๋งต์ผ๋ก ๋ณํ์์ผ์ฃผ๋ Normalizer๋ผ๋ ํ๋ก๊ทธ๋จ์ ํ์ฌ ๋ฒ ํํ
์คํธ๋ฅผ ์งํ ์ค์ด๋ฉฐ ๊ณต์ ํํ์ด์ง์์ ํ์๊ฐ์
์ ํ๊ณ ๋ค์ด๋ก๋ํ๋ฉด ๋ฐ๋ก ์ด์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ ๋ ํ
์คํธ๋ฅผ ํด๋ณด๋ ค๊ณ ๋
ธ๋ง๋งต ํ๋๋ฅผ ๋ถ๋ฌ์ค๊ณ ๋ณํ ๋ฒํผ์ ๋๋ฌ๋ดค๋๋ฐ์. ์ ๋ง ๋ง๋ฒ์ฒ๋ผ ๋ณํ์ด ๊น๋ํ๊ฒ ์ ๋ ๊ฒ์ ๋ณด๊ณ ๊น์ง ๋๋์ต๋๋ค. ๋ณํ์์
์ ๊ทธ๋ํ๋ก ์ ๋ฆฌํด๋ดค๋๋ฐ์. ๊ฑฐ์ ์๋ณธ๊ณผ ํก์ฌํ๊ฒ ๋ณํ ๋ ๊ฒ์ ๋ณผ ์ ..
2020.11.29
๊ธฐํ ์ด์ผ๊ธฐ
๋ธ๋ ๋ ๋
ธ๋ง ์ด๊ธฐํํ๊ธฐ
์์
์ ํ๋ค ๋ณด๋ฉด ๋
ธ๋ง์ด ๊ผฌ์ฌ์ ์์ด๋ฉ์ด ์ด์ํ๊ฒ ๋์ค๊ฑฐ๋ ๋ ์ด์ ์คํ ์ค๋ฌด์ค๊ฐ ์๋๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋๋ฐ์. ๊ฐ์ฅ ์์ฃผ ์ฐ๋ ๊ธฐ๋ฅ๋ถํฐ ๋์ดํด๋ณด์์ต๋๋ค. 1. Recalculate Normals(๋
ธ๋ง ์ฌ๊ณ์ฐ) ์ด ๊ธฐ๋ฅ์ ๋ชจ๋ธ์ ๋ค์งํ ๋ฉด์ด ์์ฌ ์์ ๋ ๋ซํ ๋ํ์ ๊ธฐ์ค์ผ๋ก ๋
ธ๋ง ๋ฐฉํฅ์ ์ ์์ ์ผ๋ก ๋๋๋ฆฝ๋๋ค. ๊ฐ๋ ๋ฒํ
์ค๊ฐ ๋ถ์ง(Merge) ์๊ฑฐ๋ ์์ด๋ฉ์ด ์ด์ํ๊ฒ ๋์ฌ ๋ ์๋ํด ๋ณผ ์ ์์ต๋๋ค. Shift-N์ ๋๋ฌ์ ์๋์ํต๋๋ค. 2. Reset Vectors (๋
ธ๋ง ๋ฆฌ์
) ์ปค์คํ
๋
ธ๋ง ์์
์ ํ๊ฑฐ๋ ์ธ๋ถ์์ ๋ชจ๋ธ์ ๊ฐ์ ธ์ค๊ธฐ(Import)๋ฅผ ํ์ ๋ ๋
ธ๋ง์ด ๊ผฌ์ฌ๋ฒ๋ฆฐ ๊ฒฝ์ฐ ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ๋
ธ๋ง ๋ฐฉํฅ์ ์ด๊ธฐํํฉ๋๋ค. ์๋ํธ ๋ชจ๋์์ ๋ฉ๋ด Mesh-..
2020.11.25
CG ์ด์ผ๊ธฐ/๋ธ๋ ๋