GPU๋ โ๊ฐ์ ๊ณ์ฐโ์ ์ข์ํ์ง๋ง, โ๊ฐ์ ํฝ์ ์ ์ฌ๋ฌ ๋ฒ ๊ทธ๋ฆฌ๋ ๊ฒโ์ ์ซ์ดํ๋ค
GPU๋ ๋ณ๋ ฌ ์ฐ์ฐ์ ์ต์ ํ๋์ด ์๋ค. ๋์ผํ ์ ฐ์ด๋ ์ฐ์ฐ์ ์์ฒ ๊ฐ ๋ณ๋ ฌ๋ก ์ํํ๋ ๊ฒ์ ํจ์จ์ ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋์ผํ ํฝ์ ์์น์์ Pixel Shader๊ฐ ๋ฐ๋ณต ์คํ๋๋ ์ํฉ์ ๋ถํ์ํ ์ฐ์ฐ์ ๋ฐ์์ํค๋ฉฐ ์ฑ๋ฅ ์ ํ์ ์์ธ์ด ๋ฉ๋๋ค.
์ด๋ฌํ GPU ๋ ๋๋ง ํ์ดํ๋ผ์ธ์์ ๋ฐ์ํ๋ย Pixel Shadering ๋นํจ์จ์ฑ ๋ฌธ์ ๋ฅผ Quad Overdraw๋ผ๊ณ ํฉ๋๋ค.
Quad Overdraw (Over Shading)
Quad Overdraw๋ ํ๋ฉด์ ์ต์ข ์ ์ผ๋ก ๋ณด์ด์ง ์๋(๊ฐ๋ ค์ง) Pixel์ด ์ฌ์ ํ Shader ์ฐ์ฐ์ ํฌํจ๋์ด ๊ณ์ฐ๋๋ ํ์์ ๋๋ค.
์ด ํ์์ ํนํย ํ๋ฉด ์์์ ์์ฃผ ์๊ฒ ๋ ๋๋ง๋๋ ์ผ๊ฐํ๋ค๋ก ์ธํด ๋ฐ์ํฉ๋๋ค.
์์
- Fog Card 3์ฅ์ด ์๋ก ๊ฒน์ณ ์์
- ๋์ผ ํฝ์ ์์ ํฝ์ ์ ฐ์ด๋๊ฐ 3๋ฒ ์คํ
Layer ร Pixel = 3์ฆ, ๊ฐ์ ์์น๋ฅผ 3๋ฒ ๊ทธ๋ฆผ.
GPU์ ์ฒ๋ฆฌ ๋ฐฉ์
GPU๋ 2x2 ํฝ์ ๋จ์(Quad)๋ก ์ผ๊ฐํ์ ์ ฐ์ด๋ฉํ๋ค. ์ด๋ค ํด๋ฆฌ๊ณค์ด ๋์คํฐ๋ผ์ด์ง์ ๊ฑฐ์ณ ํ๋ฉด์ ํฝ์ ๋ก ์ ฐ์ด๋ฉ ์ฒ๋ฆฌ๋ฅผ ํด์ผ ํ ๋, 1ํฝ์ ์ด ์๋ 2x2 ํฝ์ ๊ทธ๋ฃน ๋จ์๋ก ์ฒ๋ฆฌ๋๋ค๋ ๋ง์ ๋๋ค๋ค.

๋ฌธ์ ์ํฉ ์์
์ผ๊ฐํ ํฌ๊ธฐ: 0.5ํฝ์ (ํ๋ฉด์ ๊ฑฐ์ ์ ๋ณด์) โ GPU๋ 2ร2 = 4ํฝ์ ์ฟผ๋ ์ ์ฒด๋ฅผ ์ฒ๋ฆฌํด์ผ ํจ โ ์ค์ ๊ธฐ์ฌ๋: 0.5ํฝ์ ์ค์ ์ฒ๋ฆฌ๋: 4ํฝ์ โ 8๋ฐฐ ๋นํจ์จ!
Quad Qverdraw์ ๋ฌธ์ ์
Quad Overdraw๋ Pixel Shader ๋จ๊ณ์ ๋น์ฉ ์ฆ๊ฐ์ด์ฃ .
ํนํ ๋ค์ ์กฐ๊ฑด์์ ์ฌ๊ฐํด์ง๋๋ค.
Translucent ๋จธํ ๋ฆฌ์ผ ํ๋ฉด์ ๋๊ฒ ๋ฎ๋ ์นด๋ํ ๋ฉ์ - ex) Fog Card ๋ํ ์ผํ ํ์ดํด๋ฆฌ๊ณค ๋ฉ์
Translucent๋ Early-Z (Depth Pass)๊ฐ ์ ๋๋ก ์๋ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ค์ ๊ฐ๋ ค์ง ํฝ์ ๋ ๋ชจ๋ ๊ณ์ฐ๋์ฃ . ๊ทธ ๊ฒฐ๊ณผ ๋ณด์ด์ง ์๋ ํฝ์ ๊น์ง ์ ฐ์ด๋๊ฐ ์คํ๋ฉ๋๋ค๋ค.
Quad Overdraw ํด๊ฒฐ ์ ๋ต
| ๋ฐฉ๋ฒ | ํจ๊ณผ |
|---|---|
| Level Of Detail๋ฅผ ํ์ฉํ ์ง์ค๋ฉํธ๋ฆฌ ์ต์ ํ | ๊ฑฐ๋ฆฌ๊ฐ ์ฆ๊ฐํ ์๋ก ํด๋ฆฌ๊ณค ๋ฐ๋ ๊ฐ์ (๊ฐ์ฅ ์ง์ ์ ์ธ ํด๊ฒฐ์ฑ ๐ฅ) |
| Translucent โ Masked | Early-Z ํ์ฉ ๊ฐ๋ฅ |
| Depth ์ ๋ ฌ ๊ฐ์ | ๋ถํ์ํ ๋ ๋๋ง ๊ฐ์ |
| Volume ๊ธฐ๋ฐ Fog | ์นด๋ ๋์ฒด |
Early-Z ๊ฐ ์ต์ ํ์ ๋ผ์น๋ ์ํฅ
Masked๋ก ์ค์ ํ๋ฉด, Opacity Mask๊ฐ์ ๋ฐ๋ผ ํฝ์ ์ด โ100% ๋ถํฌ๋ช โ ํน์ โ์์ ํฌ๋ช (์ ๊ฑฐ)โ ๋ ์ค ํ๋๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋์ ๋ถํฌ๋ช ๊ฐ์ฒด์ฒ๋ผ ์ค์ ๋ณต์กํ ํฝ์ ์์ด๋(์์, ์กฐ๋ช ๊ณ์ฐ)๋ฅผ ์คํํ๊ธฐ ์ , ๊น์ด(Depth)๋ง ๋จผ์ ๊ณ์ฐํ๋ย Depth Passย ๋จ๊ณ์์ ๊ทธ๋ ค์ง๋๋ค.
๊ฒฐ๊ตญ ์ด๋ฏธ ๋ค๋ฅธ ๋ถํฌ๋ช ๊ฐ์ฒด์ ์ํด ๊ฐ๋ ค์ง ํฝ์ ์ ์กฐ๋ช ๊ณ์ฐ์ ํ์ง ์๊ณ ์คํต(Early Z-culling)ํ ์ ์์ด ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋ฉ๋๋๋ค.
Foliage ์ต์ ํ ์ฌ๋ก
โ ๋นํจ์จ์ ์ธ Translucent ๊ธฐ๋ฐ Foliage
๋ฌธ์ ์ :
- ํฌ๋ช
์์ญ ์ ์ฒด๊ฐ Translucent ์ฒ๋ฆฌ
- ๋น ๊ณต๊ฐ๊น์ง Pixel Shader ์คํ
- Quad Overdraw ์ฌํ
โ Binary Mask ์ฌ์ฉ์ผ๋ก ์ต์ ํ
๊ฐ์ ๋ฐฉ๋ฒ:
- Masked ๋จธํฐ๋ฆฌ์ผ ์ฌ์ฉ
- Alpha Test ๊ธฐ๋ฐ ์ปท์์
- ๋ถํ์ํ ํฌ๋ช
์์ญ ์ ๊ฑฐ
Masked์ ์ฅ์
Early-Z ํ์ฉ ๊ฐ๋ฅํ์ฌ Translucent ๋๋น Overdraw ๋ํญ ๊ฐ์ํฉ๋๋ค.
์ฑ๋ฅ ์ฐจ์ด
Translucent Plane 100๊ฐ: 15ms Masked Geometry 100๊ฐ: 8ms โ ์ฝ 2๋ฐฐ ์ฑ๋ฅ ํฅ์
ํ๋กํ์ผ๋ง ๋๊ตฌ
View Mode โ Shader Complexity // Pixel Shader ๋น์ฉ ์๊ฐํ
View Mode โ Quad Overdraw // Overdraw ์๊ฐํ (๋นจ๊ฐ = ์ฌ๊ฐ)
// ์ธ๋ฆฌ์ผ ์์ง ์ฝ์ ๋ช
๋ น์ด
Stat GPU // GPU ํ๋กํ์ผ๋ง์ฐธ๊ณ ์๋ฃ