Frstum Culling
์๋์์ ๋ชจ๋ ๋ฌผ์ฒด๋ฅผ ๋ค ๊ทธ๋ฆฌ๊ธฐ์ ๋น์ฉ์ด ๋๋ฌด ๋ง์ด ๋ ๋ค
-> Viewing frustum ์์ญ ๋ด๋ถ์ ๋ฌผ์ฒด๋ค๋ง rendering ํ์
->DrawCall ์ ์ค์ด๋ ๊ฒ์ด๋๊น GPU ์ต์ ํ
chunk์ ๊ฐ ๊ผญ์ง์ ์ ๋ํด ์ ๋์ฒด ๋ด๋ถ์ ์๋์ง ๊ฒ์ฌ -> ํ๋๋ผ๋ ๋ด๋ถ์ ์์ผ๋ฉด render
1. Projection space ๋ด์ ์ ๋์ฒด ์ขํ ์ค์ (x: -1 ~ 1, y: -1 ~ 1, z: 0 ~ 1)
2. ํด๋น ์ขํ๊ณ๋ฅผ world ์ขํ๊ณ๋ก ๋ณํ
3. ๊ณ์ฐ๋ ์ขํ๋ก 6๊ฐ์ plane ๋ง๋ค๊ธฐ(๋ชจ๋ ๋ด๋ถ๋ฅผ ๋ฐ๋ผ๋ณด๋) -> XMPlaneFromPoints()
XMPlaneFromPoints ๋ก ๋ง๋ค์ด์ง ํ๋ฉด์ a, b, c, d ์ ๊ฐ์ ๊ฐ์ง vector ์ธ๋ฐ ์ด ๊ฐ์
$$ ax + by + cz + d = 0 $$
์ ํํ๋ก ํ์๋๋ค
์ฌ๊ธฐ์ (a, b, c) ๋ ํ๋ฉด์ ๋ฒ์ ๋ฒกํฐ (d ๋ ์์ ๊ณผ์ ๊ฑฐ๋ฆฌ)
N dot P = 0
P๊ฐ ํ๋ฉด ์์ ์๋ค๋ฉด (์ ๋์ฒด์์๋ ๋ด๋ถ)
N dot P > 0
P๊ฐ ํ๋ฉด ์๋ ์๋ค๋ฉด (์ ๋์ฒด์์๋ ์ธ๋ถ)
N dot P < 0
4. ๋ชจ๋ plane์ ๋ํด chunk์ ๊ผญ์ง์ ๋ค์ด ๋ด๋ถ์ ์๋์ง ๋น๊ต
-> ํ๋์ ๊ผญ์ง์ ์ด๋ผ๋ ๋ฌ๋ plane ๋ด๋ถ์ ์์ผ๋ฉด render
-frustum culling ์
-frustum culling ํ
Drawcall ์ ํ์คํ ์ค์์ง๋ง ๋ฒ๋ฒ ์ด๋๊ฑด ์ฌ์ ํ...