Landscape Material-3
Foliage
12. Auto Foliage
13. Performance Optimization using VSM
14. Opacity Mask
15. Add trees LGT
๐Reference
12. Auto Foliage
1๏ธโฃ Landscape Grass Type
- ์ค์๊ฐ ๋ณด๊ธฐ ๊ฐ๋ฅ
- ๋ง์คํฌ ์์กด์
- Collision ์์
2๏ธโฃ Procedural Foliage Spawner
- ๋ณผ๋ฅจ ์ง์ ๊ฐ๋ฅ ํ๋ฏ๋ก ๋ณด๋ค ์ฃผ๊ด์ ๊ด์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
- ์ค์๊ฐ ๋ณด๊ธฐ ๋ถ๊ฐ๋ฅ ํ๋ฉฐ ๋ฐ๋ ๊ฒฐ๊ณผ ๊ฐ์ ์ํด ์๋ฎฌ๋ ์ด์ ํ์
- Collison ์์ฑ ๊ฐ๋ฅ
์ฌ์๋ Landscape Grass Type ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณธ๋ค.
์ ๋๊ฐ์ ์ด์ ์ ํ์ฌ ํ๋ก์ ํธ์ ์ถ๊ฐํ๋ค. ๊ฐ๊ฐ 6.3G, 8G ์ ํฌ๊ธฐ์ด๋ค.
M_AutoLandscape ์์ LandscapeGrassOutput ๊ณผ LandscapeLayerSample ๊บผ๋ธ๋ค. output์ LGT ์ ์ถ๋ ฅ์ ์ํ ๋ ธ๋์ด๊ณ Sample ์ Landscape Layer Blend ์์ Layer Name ์ ์ ํ ํด ๋ง์คํน ์ญํ ์ ํด์ฃผ๋ ๋ ธ๋ ์ด๋ค.
๋ง์คํน์ผ๋ก ์ง์ ํ SoilMaterial ๋ฅผ ์ ํํ๊ณ ํ์ธํ ํด๋ณด๋ฉด SoilMaterial ๋ ์ด์ด์ LGT๊ฐ ์ถ๊ฐ ๋์ด ๊ทธ๋ ค์ง๋ค.
ํ์ธํ ํ Foliage ๋ฅผ ์ง์ฐ๋ ค๋ฉด LGT๋ฅผ ์ ์ฉํ ํด๋น ๋ ์ด์ด ์์ RB>Clear Layer ๋ฅผ ์ ํํ๋ค.
Height ๋งต์ ์ฌ์ฉํด LGT๋ฅผ ํ์ธํ ์์ด ๋ ์ด์ด ์ ์ ์ ์ ์ฉํ์๋ค. ํ์ง๋ง Slope ๋ ์ด์ด์ ํ์ด ํํ๋๊ณ ์์ด ์ด๋ฅผ ๋ง์คํน์ผ๋ก ์ ๊ฑฐ ํด์ผํ๋ค.
Slope ๊ด๋ จ ๋ง์คํฌ๋ฅผ ๋ชจ๋ Cached ํ๊ณ ๋ํ ๋ค HeightBlend ์์ ๋นผ์ฃผ์๋ค. ์ด๋ฅผ ํตํด ๋์ด ๋งต์์ Slope ๋ง ์ ๊ฑฐ๋ ๋ง์คํฌ๊ฐ ์๋กญ๊ฒ ์ป์ด์ก๊ณ ์ฌ๊ธฐ์ Switch Param ์ ๋ฌ์์ ๋ง๋ฌด๋ฆฌ ํ๋ค.
13. Performance Optimization using VSM
r.Shadow.Virtual.Enable
๋ช
๋ น์ ์ฝ์์ ์
๋ ฅํด์ ํ์ฑํ ํ๊ฑฐ๋Edit>Project Settings>Engine>Rendering>Shadows>Shadow Map Method ์์ Virtual Shaodw Maps(VSM)์ ์ ํํ๋ฉด ๊น์ด ๋ฒํผ ๋ถ์์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ฉ์๋๋ก ์ฌ์ ๋ถ์ํด ํ๋ฉด์์ ํ์ํ ์์ญ๋งํผ ๊ทธ๋ฆผ์๋ฅผ ํ ๋น ๋ฐ ๋ ๋๋ง ํ๊ฒ ๋๋ค.
์ด ๊ทธ๋ฆผ์ ์์ฑ ๋ฐฉ๋ฒ์ ๋๋์ดํธ๋ฅผ ์ํด ์ถ๊ฐ๋์๋ค๊ณ ํด๋ ๋ฌด๋ฐฉํ ์ ๋๋ก ๊ณ ํด์๋ ์ฅ๋ฉด์ ์ ํฉํ๋ฉฐ ๋ฃจ๋ฉ, GI, World Partition ๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ผ๋ฉฐ 5.0 ๊ธฐ์ค 16k * 16k ์ ํด์๋๋ก ์ด๊ณ ํด์๋ ๊ทธ๋ฆผ์ ๋งต์ ์ง์ํ๋ค.
ํ์ฌ ์ฐ๋ฆฌ์ ์ฌ์ ๋๋์ดํธ๋ฅผ ์ฌ์ฉํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ค๋ธ์ ํธ์ r.Shadow.Virtual.NonNanite.IncludeInCoarsePages 0
๋ฅผ ์ฝ์์์ ์ฌ์ฉํ์ฌ ๋น๋๋์ดํธ ์ค๋ธ์ ํธ์ ๋ ๋๋ง์ ๋นํ์ฑํ ํ๋ฉด ์ฝ๊ฐ์ ์ฑ๋ฅ ํฅ์์ ์๋ํด ๋ณด๋๋ก ํ๋ค.
Foliage ๋ฅผ ๋ค์ ์ฌ์ฉํ ํ์ฌ์ ์ฌ์์ ๊ทน์ ์ธ ๋ณํ๋ฅผ ์ฒด๊ฐ ํ ์ ์์ง๋ง ์ข ๋ ๋ณต์กํ ๋งค์ฌ๊ฐ ์ฌ์ฉ๋ ์ฌ์ผ ๊ฒฝ์ฐ ๋น์ฝ์ ์ธ FPS ํฅ์์ ์ฒด๊ฐํ ์ ์๋ค.
๊ฑฐ๋ฆฌ์ ์๊ด ์์ด ํญ์ VSM ์ ์์ฑํ๋ ๋๋์ดํธ ์ค๋ธ์ ํธ์ฒ๋ผ ๋น๋๋์ดํธ ์ค๋ธ์ ํธ๋ ๋๋์ดํธ์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ทธ๋ฆผ์๋ฅผ ์์ํ๊ฒ ํ๋ ค๋ฉด Culling ๊ฐ์ 0์ผ๋ก ๋๋ค. r.Shadow.Virtual.UseFarShadowCulling 0
์ฝ์ ์ปค๋งจ๋๊ฐ ์๋ LGT ์์ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค.
- Dynamic Shadow On/Off
- LOD
- Cull Distance ์กฐ์
- Wind ํจ๊ณผ ์ ๊ฑฐ
๋ ๋ฒจ์ ์๋M_FieldGrass_Insta_01_LOD2 ๊ฐ ํ๋ฉด์ 0.08๋งํผ ์ฐจ์งํ๋ฉด SM_FieldGrass ๋ฅผ ํ๊ฒ LOD๋ก ๊ต์ฒด ํ๋ค. ์ฆ Screen Size ์ ์์น๋ฅผ ์ฌ๋ฆฌ๋ฉด ๊ทธ๋งํผ LOD 2 ๊ฐ ํ๋ฉด์ ๋ ๋ง์ด ๋์คํ๋ ์ด ๋๋ค.
ํ๋ฉด์ ๋ณด์ด๋ Grass ๋ฅผ ๊ฒฐ์ ํ๋ ์์ฑ์ด๋ค. Camera Near/Far Clip ๊ฐ๋ ์ผ๋ก ์๊ฐํ๋ฉด ์ฝ๊ฒ ์ดํด๋๋ค.
Wind ํจ๊ณผ๋ฅผ ์ ๊ฑฐํ ๊ฒฝ์ฐ Grass ๊ฐ ๋ฐ๋์ ํ๋ค๋ฆฌ์ง ์๊ฒ ๋๋ฏ๋ก ์ ์ ์ธ ์ฅ๋ฉด์์ ์ฌ์ฉํ๋๋ก ํ๋ค.
14. Opacity Mask
Cull Distance ์ ์์น๋ฅผ ์กฐ์ ํ๋ฉฐ ์ฌ์ฉํ๋ค ๋ณด๋ฉด Grass ๊ฐ ๊ฐ์๊ธฐ ์์ฑ ๋๋๋ฏํ ์ํฐํฉํธ๋ฅผ ๋ณผ ์ ์๋๋ฐ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด PerInstanceFadeAmount ๋ ธ๋๋ฅผ ์ฌ์ฉํ๋ค.
LGT_Grass ์์ ์ฌ์ฉ๋ Grass Mesh ์ Master Material ์ MF_FOliageFade ๋ฅผ Opacity Mask ์ ์ฐ๊ฒฐ ํด์ค๋ค.
M_FieldGrass_01์ Material>Advanced>Dithered LOD Transition ์ ์ฒดํฌ ํ์ฌ LOD ๋ ๋ฒจ์ ๋ฐ๋ฅธ ์ ํ๋ ๋ถ๋๋ฝ๊ฒ ๊ฐ์ ธ๊ฐ๋๋ก ํ๋ค.
์ฅ๋ฉด์ ๋ค์ํจ์ ์ถ๊ฐํ๊ธฐ ์ํด Add Element ํ ๊ธฐ์กด์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ทธ๋๋ก ๊ฐ์ ธ ๊ฐ๊ณ ์ถ๋ค๋ฉด RB>Copy>Paste ํ๋ฉด ๋๋ค.
15. Add trees LGT
Grass Mesh ๋ฅผ ์ง์ ํ ๋ SM์ LOD ๋จ๊ณ์ ๋ฐ๋ฅธ Triangles ๊ฐ์๋ฅผ ๋ณด๊ณ ๋ ๋ฒจ์ ํผํฌ๋จผ์ค๋ฅผ ๋จ์ด๋จ๋ฆฌ์ง ์๋ ๊ฒ์ ์ ํํ๋ ๊ฒ์ด ์ค์ํ๋ค. SM์์ Enable Nanite Support ๋ฅผ ํ์ฑํ ํ๋ค๊ณ ํด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ ๋ฐ์ดํฐ๋ก ์ต๋ํ์ ์๊ฐ์ ํจ๊ณผ๋ฅผ ๋ผ ์ ์๋ ์ด์ ์ ์ ํํ๋ ๊ฒ์ ์ค์ํ๋ค.
LandscapeLayerSample ์ ์ถ๊ฐํ๊ณ ์ด๋ฆ์ SoilMaterial ๋ก ์ง์ ํ๋ค Landscape Layer Blend ์ ์์ฑํ SoilMaterial ์ Subtract ๋ฅผ ์ฌ์ฉํด ๋นผ์ฃผ๋ ๋ฐฉ์์ผ๋ก paint ๋ฅผ ์ฌ์ฉํ๋ฉด grass ์์ ๊ธธ์ ํํํ๋ ํจ๊ณผ๋ฅผ ๋ผ ์ ์๋ค.
Landscape>paint ์์ None ์ผ๋ก ์ ํ๋์ด ์๋ค๋ฉด ๋ธ๋ฌ์ฌ๊ฐ ๋นจ๊ฐ์์ผ๋ก ํ์ ๋ ๋๊ฐ ์๋๋ฐ ๋จ์ํ ์๋ฌ ์ด๋ฏ๋ก ๋๋ ๋ค์ด์์ SoilMaterial_LayerInfo ๋ฅผ ํด๋ฆญํด์ฃผ๋ฉด ๋๋ค.
๋ง์ง๋ง์ผ๋ก Surface ๋ ธ๋ฉ์ ๋ฐ๋ผ ์ ๋ ฌ๋ LGT๋ฅผ ์์ง์ผ๋ก ์ธ์ฐ๊ณ ์ถ๋ค๋ฉด LGT ์์ฑ์์ Align to Surface ๋ฅผ ์ฒดํฌํด์ ํ๋ฉด ๋๋ค.