๐์ปฌ๋ง(Culling)์ด๋?
์นด๋ฉ๋ผ์ ๋ณด์ด์ง ์๋ ๊ฒ์ ๊ทธ๋ฆฌ์ง ์๋๋ค.
1. ํ๋ฌ์คํ ์ปฌ๋ง (Frustum Culling)
๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋ํฐ ์์ง ์์ฒด์์ ํ๋ฌ์คํ (Frustum) ์ปฌ๋ง์ผ๋ก ์นด๋ฉ๋ผ์ ์กํ์ง ์๋ ๋ฌผ์ฒด๋ ๊ทธ๋ฆฌ์ง ์์ ๋๋ก์ฐ ์ฝ์ด ๋ฐ์ํ์ง ์๋๋ค.
- [์ฌ์ง 1] Batches = 15
- [์ฌ์ง 3] Batches = 134
์ ์์์ ๊ฐ์ด ์ฌ ๋ทฐ์์ ๋ชจ๋ ์ค๋ธ์ ํธ๋ค์ด ๋ค ๋ณด์ด์ง๋ง ๋ทฐ ํ๋ฌ์คํ
(View Frustum) ๋ด์ ๋ค์ด์ค์ง ์์ ๋ฌผ์ฒด๋ค์ ๊ทธ๋ฆฌ์ง ์์
์ฌ์ง1์ Batches๊ฐ ํจ์ฌ ์์ ๊ฒ์ ์ ์ ์๋ค.
2. ์คํด๋ฃจ์ ์ปฌ๋ง (Occlusion Culling)
ํ์ง๋ง ๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด A ๋ฌผ์ฒด ๋ค์ ๊ฐ๋ ค์ง๋ B ๋ฌผ์ฒด๋ ๊ฒ์ ๋ทฐ์์ ๋ณด์ด์ง๋ ์์ง๋ง
๋ทฐ ํ๋ฌ์คํ
๋ด์ ๋ค์ด์ ์๋ค๋ฉด ๋๋ก์ฐ ์ฝ์ด ๋ฐ์ํ๋ค.
- [์ฌ์ง 5] Batches = 94
- [์ฌ์ง 7] Batches = 95
์์๊ฐ์ด ๊ฐ๋ ค์ ธ ์๋๋ผ๋ ๋ทฐ ํ๋ฌ์คํ
๋ด์ ๋ค์ด์ค๋ ์ค๋ธ์ ํธ๋ค์ ๋ชจ๋ ๋๋ก์ฐ ์ฝ์ด ๋ฐ์ํ๋ค.
๋น๊ต๋ฅผ ์ํด [์ฌ์ง 7]์ ์ํฉ์์ ํ๋ธ ์ค๋ธ์ ํธ๋ฅผ ๋นํ์ฑํ ํด๋ณด์๋ค.
- [์ฌ์ง 9] Batches = 49
ํ์คํ๊ฒ ์ค์ด๋ ๋ชจ์ต์ ๋ณด์ ์นด๋ฉ๋ผ์ ์กํ์ง ์์๋ ๋๋ก์ฐ ์ฝ์ด ๋ฐ์ํ๋ค๋ ์ฌ์ค์ ์ ์ ์๋ค.
์ด๋ ๊ฒ ์นด๋ฉ๋ผ์ ์กํ์ง ์๋ ์ค๋ธ์ ํธ์ ๋ ๋๋ง์ ํผํ๋ ์ต์ ํ ๊ธฐ๋ฒ์ผ๋ก ์คํด๋ฃจ์ ์ปฌ๋ง(Occlusion Culling) ์ ์ฌ์ฉํ๋๋ฐ
๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
๐ Map๊ณผ ๊ฐ์ ์ ์ ์ธ ์ค๋ธ์ ํธ์ Occulder ๋ฐ Occuldee Static ์ฒดํฌ๋ฅผ ํ๋ค.
๐ Occulsion ์๋์ฐ๋ฅผ ์ด๊ณ Bake๋ฅผ ํ๋ค.
- Smallest Occluder : ๋ค๋ฅธ ์ค๋ธ์ ํธ๋ฅผ ๊ฐ๋ฆฌ๋ ๊ฐ์ฅ ์์ ์ค๋ธ์ ํธ์ ํฌ๊ธฐ
- Smallest Hole : ์นด๋ฉ๋ผ๊ฐ ๋ค์ฌ๋ค ๋ณผ ์ ์๋ ๊ฐ์ฅ ์์ ๊ฐ๊ฒฉ
์ ํ๋กํผํฐ๋ค์ ๋งค์ง๋๋ฒ๋ฅผ ์ฐพ์์ผ ํ๋ค๊ณ ํ๋ค.
Unity Document : ์คํด๋ฃจ์ ์ปฌ๋ง URL
๐ ์ปฌ๋ง ๋์ ์ค๋ธ์ ํธ์ Dynamic Occlusion ํญ๋ชฉ์ ์ฒดํฌํ๋ค.
Cube์ Mesh Renderer - Dynamic Occlusion ์ฒดํฌ๋ฐ์ค๋ฅผ ์ฒดํฌํ๋ค.
- ๊ธฐ๋ณธ๊ฐ์ ์ฒดํฌ๋์ด์๋ ์ํ๋ค.
๐ ๋ณํ๋ฅผ ํ์ธํด๋ณด์.
Batches๊ฐ 25๋ก ์ ๋ฐ ๊ฐ๊น์ด ๋ ์ค์๋ค. Cube ์ค๋ธ์ ํธ ๋ฟ๋ง ์๋๋ผ ์ด์ ์ ๋ ๋๋ง ์ค์ด๋ ๋ฒฝ๋ฉด๋ฑ๋ ํจ๊ป ์ปฌ๋ง์ด ๋์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ค๋ง ํ์ผ์ ๊ฐ์ ์ค์ธ ๋งต์์ ์ฌ์ฉํ๋ฉด ์คํ๋ ค ์ฐ์ฐ๋น์ฉ์ด ์ฆ๊ฐํ๋ ์ค๋ด ๋งต์์๋ง ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํ๊ณ ์๋ค.
[์ ๋ํฐ TIPS] ์์ธ์ ์ก | ์นด๋ฉ๋ผ์ ์ปฌ๋ง ์๋ฒฝ ์ดํด URL
'Unity' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[RequireComponent] (0) | 2024.06.06 |
---|---|
[RuntimeInitializeOnLoadMethod] (0) | 2024.06.05 |
Addressable (๋ก์ปฌ) (0) | 2024.05.31 |