Mesh Distance Field๋ ์คํํฑ ๋ฉ์์ Signed Distance Field ๋ณผ๋ฅจ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ์์คํ ์ ๋๋ค. ์ฆ, ๋ณต์กํ ๋ฉ์์ ํ๋ฉด ์ ๋ณด๋ฅผ ๋จ์ํ๋ ๋ณผ๋ฅจ ๋ฐ์ดํฐ๋ก ๋ณํํ์ฌ, ๋์ ์กฐ๋ช ํ๊ฒฝ์์ ํจ์จ์ ์ธ ๊ทธ๋ฆผ์ ๊ณ์ฐ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
Distance Field Shadow๋ ์๊ฑฐ๋ฆฌ ์์ญ์์ Cascaded Shadow Map๋ณด๋ค ํด์๋ ์ ์ง์ ์ ๋ฆฌํ๋ฉฐ, ๋๊ท๋ชจ ์คํ์๋ ํ๊ฒฝ์์ Shadow Map์ ํด์๋ ์์กด ๋ฌธ์ ๋ฅผ ์ํํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ์ค์
ํ๋ก์ ํธ ์ค์
โ๏ธ Project Setting - Generate Mesh Distance Field โ
์ด ์ต์ ์ ํ์ฑํํ๋ฉด ํ๋ก์ ํธ์ ๋ชจ๋ Static Mesh์ ๋ํด Distance Field ๋ฐ์ดํฐ๊ฐ ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์ต์ ํ ์ต์
โ๏ธ Project Setting - Rendering - Lighting
ํน์ ์ํฉ์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๊ณ ์ถ๋ค๋ฉด ๋ค์ ์ต์ ๋ค์ ๊ณ ๋ คํด๋ณผ ์ ์์ต๋๋ค.
- 8bit Mesh Distance Field: 16๋นํธ ๋ฐ์ดํฐ๋ฅผ 8๋นํธ๋ก ๋ณํํด ๋ฉ๋ชจ๋ฆฌ ์๋น๋์ ๋ํญ ๊ฐ์์์ผ์ค๋๋ค. ํ์ง๋ง ํฌ๊ฑฐ๋ ์์ ํํ์ Mesh์๋ ๊ทธ๋ฆผ์ ํ์ง ์ ํ๋ ์ํฐํฉํธ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ ์ ์ํด ์ฃผ์ธ์.
- Compress Mesh Distance Field: ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ์ง๋ง ํ๋ฆฌํฐ๋ ์์ค๋์ง ์์ต๋๋ค. ๋จ, Level Streaming์ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์์๋ ๋ ๋ฒจ ๋ก๋ฉ ์ ์์ถ ํด์ ๊ณผ์ ์์ ์ฝ๊ฐ์ ๋ถํ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
Distance Field์ ์๋ ์๋ฆฌ
Mesh Distance Field๋ย ๋ฉ์ ํ๋ฉด์ผ๋ก๋ถํฐ์ โ๊ฑฐ๋ฆฌโ๋ฅผ 3์ฐจ์ ๋ณผ๋ฅจ ํ ์ค์ฒ์ ์ ์ฅํ๋ Signed Distance Field ๊ตฌ์กฐ์ ํ์ฉํด, ๋ณต์กํ ์ง์ค๋ฉํธ๋ฆฌ๋ฅผ ๋จ์ํ๋ ๋ณผ๋ฅจ ๋ฐ์ดํฐ๋ก ๋ณํํฉ๋๋ค. ๊ฐ ๋ณต์ ๋ง๋ค ๊ฐ์ฅ ๊ฐ๊น์ด ํ๋ฉด๊น์ง์ ๊ฑฐ๋ฆฌ ์ ๋ณด๋ฅผ ์ ์ฅํ์ฌ, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํจ์จ์ ์ธ ๋ ์ด ํธ๋ ์ด์ฑ๊ณผ ๊ทธ๋ฆผ์ ๊ณ์ฐ์ ์ํํฉ๋๋ค.
๋๋ฒ๊น
- ๋ทฐํฌํธ ์๋จ์ โShowโ ๋ฉ๋ด์์ โVisualizeโ > โMesh Distance Fieldsโ ๋๋ โGlobal Distance Fieldโ๋ฅผ ์ ํํฉ๋๋ค.
- ์ด์์ ์ธ ์ํ์์๋ ๋๋ถ๋ถ์ ๋ฉ์๊ฐ ํฐ์์ด ์๋ ํ์์ผ๋ก ํ์๋ฉ๋๋ค.
- ํฐ์์ผ๋ก ํ์๋๋ ์์ญ์ Distance Field ๊ณ์ฐ์ ์ํด ๋ ๋ง์ ๋ ์ด ํธ๋ ์ด์ฑ์ด ํ์ํ๋ค๋ ์๋ฏธ์ด๋ฏ๋ก, ํด๋น ๋ฉ์์ Distance Field ํด์๋๋ฅผ ์กฐ์ ํ๊ฑฐ๋ ์ง์ค๋ฉํธ๋ฆฌ๋ฅผ ๋จ์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.ng
๋์ ์กฐ๋ช ์์์ ํ์ฉ
Distance Field Shadows์ ์๋ฆฌ
Movable(๋์ ) ๊ด์์์ Distance Field Shadows(DFS)๋ ๊ฐ Static Mesh์ Distance Field ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก ์์ญ ๊ทธ๋ฆผ์(Area Shadow)๋ฅผ ๊ณ์ฐํฉ๋๋ค. ์ด ๊ธฐ๋ฒ์ย ๊ณต์ ๋ฌธ์์ ์์ธํ ์ค๋ช ๋์ด ์์ต๋๋ค.
๊ทธ๋ฆผ์๋ฅผ ๋ฐ์ ์ง์ ์์ ๊ด์ ๋ฐฉํฅ์ผ๋ก Signed Distance Field(SDF)๋ฅผ ๋ฐ๋ผ ๋ ์ด ํธ๋ ์ด์ฑ์ ์ํํฉ๋๋ค. ์ฐจํ๋ ์ค๋ธ์ ํธ๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ ์ฝ ํธ๋ ์ด์ฑ(Cone Tracing)์ ๊ทผ์ฌํ๋ฏ๋ก, ์ ํต์ ์ธ ๋ ์ด ํธ๋ ์ด์ฑ๊ณผ ๋น์ทํ ๋น์ฉ์ผ๋ก ๋ถ๋๋ฌ์ด ์์ญ ๊ทธ๋ฆผ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
๊ทธ๋ฆผ์ ๋ถ๋๋ฌ์ ์กฐ์
๊ด์ ํ์ ์ ๋ฐ๋ผ ๊ทธ๋ฆผ์์ ๋ฐ๊ทธ๋(Penumbra) ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ด ๋ค๋ฆ ๋๋ค.
- Point Light์ Spot Light: โSource Radiusโ ๊ฐ์ ์กฐ์ ํ์ฌ ๊ด์์ ํฌ๊ธฐ๋ฅผ ์ค์ ํฉ๋๋ค. ๊ฐ์ด ํด์๋ก ๊ทธ๋ฆผ์๊ฐ ๋ ๋ถ๋๋ฌ์์ง๋๋ค
- Directional Light: โLight Source Angleโ ๊ฐ์ผ๋ก ํ์์ ๊ฐ๋ ํฌ๊ธฐ๋ฅผ ์ค์ ํฉ๋๋ค. ์ค์ ํ์์ ๊ฐ๋๋ ์ฝ 0.5๋์ด์ง๋ง, ๊ฒ์์์๋ ํํ ๋ชฉ์ ์ ๋ฐ๋ผ ์กฐ์ ํ ์ ์์ต๋๋ค
์๊ฑฐ๋ฆฌ ๊ทธ๋ฆผ์ ์ค์
์คํ ์๋์ ๊ฐ์ ๋์ ํ๊ฒฝ์์ ์๊ฑฐ๋ฆฌ ๊ทธ๋ฆผ์๋ฅผ ํํํ๊ณ ์ถ์ ๋ Distance Field Shadow๊ฐ ์ ์ฉํฉ๋๋ค.
- Directional Light์ โCascaded Shadow Mapโ ์น์ ์์ โDynamic Shadow Distance Movable Lightโ ๊ฐ์ ๋๋ฆฌ๋ฉด ๊ธฐ์กด Shadow Map์ ์ ์ฉ ๋ฒ์๊ฐ ํ์ฅ๋ฉ๋๋ค
- ํ์ง๋ง ์ด ๊ฐ์ ๋ฌดํ์ ๋๋ฆฌ๋ฉด ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฏ๋ก, ์ ์ ํ ๊ฑฐ๋ฆฌ ์ดํ๋ถํฐ๋ โDistance Field Shadowsโ ์ต์ ์ ํ์ฑํํ๋ ๊ฒ์ด ํจ์จ์ ์ ๋๋ค
- Movableย ๋ผ์ดํธ๋ฅผ ์ ํํ ํ Details ํจ๋์ โLightโ ์น์ ์์ โDistance Field Shadowsโ ์ฒดํฌ๋ฐ์ค๋ฅผ ํ์ฑํํ๋ฉด ์๊ฑฐ๋ฆฌ ์์ญ์์ Distance Field ๊ธฐ๋ฐ ๊ทธ๋ฆผ์๊ฐ ๋ ๋๋ง๋ฉ๋๋ค
Distance Field Texture ์ค์

๊ฐ Static Mesh๋ ๊ฐ๋ณ์ ์ผ๋ก Distance Field ํ ์ค์ฒ๋ฅผ ์์ฑํฉ๋๋ค. ๋ฉ์์ ๋ณต์ก๋์ ๋ฐ๋ผ ์ ์ ํ ํด์๋๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- UE4 ๊ธฐ์ค istance Field ํด์๋๋ ์ต๋ 128 x 128 x 128๊น์ง ์ค์ ํ ์ ์์ผ๋ฉฐ, ์ต๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ 8MB์ ๋๋ค
- Static Mesh ์๋ํฐ์์ โDistance Field Resolution Scaleโ ๊ฐ์ ์กฐ์ ํ์ฌ ํด์๋๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค
- ๋จ์ํ ํํ์ ๋ฉ์๋ ๋ฎ์ ํด์๋๋ก๋ ์ถฉ๋ถํ์ง๋ง, ๋ณต์กํ๊ฑฐ๋ ์์ ํํ์ ๋ฉ์๋ ๋์ ํด์๋๊ฐ ํ์ํ ์ ์์ต๋๋ค
- ํด์๋๋ฅผ 0์ผ๋ก ์ค์ ํ๋ฉด ํด๋น ๋ฉ์์ Distance Field ์์ฑ์ ๋นํ์ฑํํฉ๋๋ค
์ต์ ํ ๊ฐ์ด๋
Distance Field Shadows๋ฅผ ์ฌ์ฉํ ๋ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด ๊ณ ๋ คํด์ผ ํ ์ฌํญ๋ค์ ๋๋ค.
๊ด์ ์ค์ ์ต์ ํ
- Light Source Angle ์กฐ์ : Directional Light์ Light Source Angle ๊ฐ์ด ํด์๋ก ๋ ๋์ ๋ฐ๊ทธ๋์ ์์ฑํ์ง๋ง, ๊ทธ๋งํผ ๊ณ์ฐํด์ผ ํ ์ค๋ธ์ ํธ ์๊ฐ ์ฆ๊ฐํ์ฌ ์ฑ๋ฅ ๋น์ฉ์ด ๋์์ง๋๋ค.
- Distance Field Shadow Distance ์ ํ: ์ด ๊ฐ์ด ๋๋ฌด ํฌ๋ฉด ์ปฌ๋ง ํจ์จ์ด ๋จ์ด์ ธ ํ์ ์ด์์ผ๋ก ๋ง์ ์ค๋ธ์ ํธ๋ฅผ ๊ณ์ฐํ๊ฒ ๋ฉ๋๋ค. ์นด๋ฉ๋ผ ๋ทฐ ๊ฑฐ๋ฆฌ์ ๋ง์ถฐ ์ ์ ํ ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค
๋ฉ์ ์ค์ ์ต์ ํ
- Two-Sided Distance Field ์ฌ์ฉ ์ฃผ์: Static Mesh์ Build Settings์์ โTwo-Sided Distance Field Generationโ ์ต์
์ ํ์ฑํํ๋ฉด ์์ ๋ฉ์(์: ์, ์ฒ)์ ๋ํด ์๋ฉด SDF๋ฅผ ์์ฑํฉ๋๋ค.
์ด ์ต์ ์ ๊ณ์ฐ ๋น์ฉ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ฆ๊ฐ์ํค๋ฉฐ, ๋ถํ์ํ ๊ฒฝ์ฐ ๋นํ์ฑํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. - Distance Field ํด์๋ ์ต์ ํ: ๋ชจ๋ ๋ฉ์์ ๋์ ํด์๋๋ฅผ ์ ์ฉํ๊ธฐ๋ณด๋ค๋, ์นด๋ฉ๋ผ์ ๊ฐ๊น๊ฑฐ๋ ๊ทธ๋ฆผ์ ํ์ง์ด ์ค์ํ ๋ฉ์์๋ง ๋์ ํด์๋๋ฅผ ํ ๋นํ๊ณ ๋๋จธ์ง๋ ๋ฎ์ ํด์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ์ฑ๋ฅ์ ์ ์ฝํ ์ ์์ต๋๋ค
์ฐธ๊ณ ์๋ฃ