Deferred Rendering์ด๋?
Deferred Rendering(์ง์ฐ ๋ ๋๋ง)์ 3D ๊ทธ๋ํฝ์ค์์ ์กฐ๋ช ๊ณ์ฐ์ ์ง์ค๋ฉํธ๋ฆฌ ๋ ๋๋ง ์ดํ๋ก โ์ง์ฐ(defer)โ์ํค๋ ๋ ๋๋ง ๋ฐฉ์์ ๋๋ค. ์ ํต์ ์ธ Forward Rendering๊ณผ ๋ฌ๋ฆฌ, ์ค๋ธ์ ํธ๋ฅผ ๊ทธ๋ฆฌ๋ ๊ณผ์ (Geometry)๊ณผ ๋น์ ๊ณ์ฐํ๋ ๊ณผ์ (Lighting)์ ๋ถ๋ฆฌํ์ฌ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ํต์ฌ์ ๋๋ค. ์ด ๋ฐฉ์์ ํนํ ๋ณต์กํ ์กฐ๋ช ์ด ๋ง์ ์ฌ์์ ํจ์จ์ ์ผ๋ก ์ฑ๋ฅ์ ๋ฐํํฉ๋๋ค

๊ธฐ๋ณธ ์๋ฆฌ
- Deferred Rendering์ ํ๋ฉด ํด์๋์ ๋์ผํ ์ฌ๋ฌ ๊ฐ์ Render Target์ ์์ฑํฉ๋๋ค. ์ด ๋ฌถ์์ **G-Buffer(Geometry Buffer)**๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
- ํ๋ฉด์ ๊ฐ ํฝ์
๋จ์๋ก ํ๋ฉด ๊ณต๊ฐ์ ์ ์ฅ๋๋ G-Buffer๋ ์ผ๋ฐ์ผ๋ก ์๋ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค.
- BaseColor=Albedo (ํ๋ฉด์ ์์ ์ ๋ณด)
- Roughness (ํ๋ฉด์ ๊ฑฐ์น ๊ธฐ)
- Surface Normal (ํ๋ฉด์ ๋ฐฉํฅ ๋ฒกํฐ)
- Metalic
- Specular
- Depth (Z-buffer๋ ๋ณ๋ ์ ์ฅ)
- ย Deferred Rendering์ Rasterization ๊ธฐ๋ฐ์ด๋ฉฐ, Ray Tracing๊ณผ๋ ๋ณ๊ฐ์ ํ์ดํ๋ผ์ธ์ ๋๋ค.
Tip
Deferred์ ์ต๋ ์ฝ์ ์ ์ ๋ฆฌ, ๋ฌผ ๊ฐ์ย ๋ฐํฌ๋ช (Transparency)ย ๋ฌผ์ฒด ์ฒ๋ฆฌ์ ๋๋ค. Deferred์์ ํฌ๋ช ์ค๋ธ์ ํธ๋ ์ฌ์ค์ Forward ํจ์ค๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
Deferred Rendering์ ์ฅ์
ํจ์จ์ ์ธ ๊ตฌ์กฐ
Forward Rendering์์๋
์ค๋ธ์ ํธ ์ ร ๋ผ์ดํธ ์ ๋งํผ ์ ฐ์ด๋ฉ ์ฐ์ฐ์ด ๋ฐ์
Deferred Rendering์์๋
ํฝ์ ์ ร ๋ผ์ดํธ ์
- ์ค๋ธ์ ํธ ๋ณต์ก๋์ Lighting ๊ณ์ฐ์ด ๋ถ๋ฆฌ๋์ด(Decoupling) ๊ฐ๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
- ์ฝ๋๊ฐ ๋จ์ํ๊ณ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๋ฉฐ, ์ฌ์์ ๋ ๋์ ์ฑ๋ฅ๊ณผ ์ ์ฐ์ฑ์ ์ ๊ณตํฉ๋๋ค.
๋ค์ค ์กฐ๋ช ์ฒ๋ฆฌ์ ์ ๋ฆฌ
- ์ฌ๋ฌ ๊ฐ์ ๋ผ์ดํธ๊ฐ ์๋ ์ฌ์์๋ ๊ฐ ๋ผ์ดํธ๋ง๋ค ์ค๋ธ์ ํธ๋ฅผ ๋ค์ ๊ทธ๋ฆด ํ์๊ฐ ์์ต๋๋ค.
- G-Buffer์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ์ฌ์ฌ์ฉํ๋ฏ๋ก ๋ผ์ดํธ ๊ฐ์์ ๋น๋กํ๋ ์ฑ๋ฅ ์ ํ๊ฐ ์ ์ต๋๋ค.
์ ํ์ ๋ฐ์ดํฐ ํ์ฉ
- ์ผ๋ถ ๋ ๋๋ง ๊ธฐ๋ฒ์ G-Buffer์ ์ผ๋ถ ์ฑ๋๋ง ํ์๋ก ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด Shadow๋ Fog ๊ณ์ฐ์ ๊ฒฝ์ฐ Depth Buffer(Z-Buffer)์๋ง ์ ๊ทผํ๋ฉด ์ถฉ๋ถํฉ๋๋ค.
Deferred Rendering์ ๋จ์
๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋
- G-Buffer๋ ์ฌ๋ฌ ๊ฐ์ ๊ณ ํด์๋ ํ ์ค์ฒ์ ๋๋ค. ๊ทธ๋์ GBuffer๋ฅผ ์์ฑํ๊ณ ์ฝ๊ณ ์ฐ๋ ๊ณผ์ ์์ ์๋นํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
- ํด์๋๊ฐ ๋์์๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ๋์ญํญ ์๊ตฌ๋์ด ๊ธ๊ฒฉํ ์ฆ๊ฐํฉ๋๋ค
- ๋ชจ๋ฐ์ผ์ด๋ VR์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ด ์ ํ์ ์ธ ํ๋ซํผ์์๋ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค
| ํญ๋ชฉ | Deferred Rendering์ด ์ ํฉํ ๊ฒฝ์ฐ | Forward Rendering์ด ์ ํฉํ ๊ฒฝ์ฐ |
|---|---|---|
| ๐ฎ ํ๋ก์ ํธ ๊ท๋ชจ | AAA๊ธ ๋ํ ํ๋ก์ ํธ | ์ํ ํ๋ก์ ํธ, ์ต์ ํ ์ค์ฌ |
| ๐ก ๋์ ๋ผ์ดํธ ์ | ์์ญ~์๋ฐฑ ๊ฐ ํ์ฅ๊ฐ๋ฅ | ๋ผ์ดํธ ์๊ฐ ๋งค์ฐ ์ ํ์ |
| ๐จ ๋จธํฐ๋ฆฌ์ผ ๋ค์์ฑ | ๋ค์ํ PBR ๋จธํฐ๋ฆฌ์ผ ์ฌ์ฉ | ๋จธํฐ๋ฆฌ์ผ ์ข ๋ฅ ๋ง์์๋ก ์ฑ๋ฅ ์ ํ |
| ๐ ๊ธ๋ก๋ฒ ์ผ๋ฃจ๋ฏธ๋ค์ด์ | Lumen ์ฌ์ฉ | ์คํํฑ ๋ผ์ดํธ๋งต ๋๋ ์ ํ์ ์ฌ์ฉ |
| ๐ฑ ํ๋ซํผ | PC / ์ฝ์ (PS5, Xbox) | ๋ชจ๋ฐ์ผ |
| ๐ฅฝ VR ์ง์ | ์ผ๋ฐ ๋ชจ๋ํฐ ๊ธฐ๋ฐ | VR (๊ฐ์ฅ ๊น๋ํ ์ธ๊ณฝ์ ) |
| ๐ ์ํฐ์จ๋ฆฌ์ด์ฑ | TAA / TSR ์ฌ์ฉ | MSAA ํ์ |
| ๐ง ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ | G-Buffer ์ฌ์ฉ์ผ๋กย ์ฌ์ฉ๋ ๋์ | ์๋์ ์ผ๋กย ์ฌ์ฉ๋ ๋ฎ์ |
Anti-Aliasing ๋ฌธ์

- MSAA(Multi-Sample Anti-Aliasing)๋ฅผ G-Buffer์ ์ ์ฉํ๋ฉด ๊ฐ ์ํ๋ง๋ค G-Buffer ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด์ผ ํด์, ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ๋์ด ํฌ๊ฒ ์ฆ๊ฐํฉ๋๋ค
- ์ด ๋๋ฌธ์ Unreal Engine์ ๊ธฐ๋ณธ Deferred Renderer๋ MSAA๋ฅผ ์ง์ํ์ง ์๊ณ , ๋์ Temporal AA(TAA) ๋๋ TSR์ ์ฌ์ฉํฉ๋๋ค.
Classic Deferred Shading์ ๋ ๋๋ง ํจ์ค
์ ํต์ ์ธ Deferred Shading์ ํฌ๊ฒ ๋ ๊ฐ์ง ํจ์ค๋ก ๊ตฌ์ฑ๋ฉ๋๋ค:
1. Geometry Pass (G-Buffer ์์ฑ)
- ์ฌ์ ๋ชจ๋ ์ค๋ธ์ ํธ๋ฅผ ๋ ๋๋งํ์ฌ Material๊ณผ Geometry ์์ฑ์ย Pixel Shader๋ฅผ ํตํด ๊ณ์ฐํฉ๋๋ค.
- ๊ณ์ฐ๋ ๊ฒฐ๊ณผ๋ฅผย G-buffer์ ๊ฐ ์ฑ๋์ ์ ์ฅํฉ๋๋ค
- ์ด ๋จ๊ณ์์๋ ์กฐ๋ช ๊ณ์ฐ ์์ด ํ๋ฉด์ ๋ฌผ๋ฆฌ์ ์์ฑ๋ง ๊ธฐ๋กํฉ๋๋ค
2. Lighting Pass (์ต์ข ์ ฐ์ด๋ฉ)
- G-Buffer์ ์ ์ฅ๋ ์ ๋ณด + ์ฌ์ ์กฐ๋ช ์ ๋ณด๋ฅผ ๊ฒฐํฉํ์ฌ ์ต์ข ์์์ ๊ณ์ฐํฉ๋๋ค
- ๊ฐ ๋ผ์ดํธ๋ ํ๋ฉด ๊ณต๊ฐ์์ ์ํฅ์ ๋ฏธ์น๋ ํฝ์ ๋ค์ ๋ํด์๋ง ๊ณ์ฐ์ ์ํํฉ๋๋ค
- ๋ผ์ดํธ์ ๋ณต์ก๋๊ฐ Material์ ๋ณต์ก๋์ ๋ถ๋ฆฌ๋์ด ์์ด, ๋ณต์กํ Material๊ณผ ๋ง์ ์์ ๋ผ์ดํธ๋ฅผ ๋์์ ์ฌ์ฉํด๋ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค
์ด๋ฌํ ๊ตฌ์กฐ ๋๋ถ์ Deferred Rendering์ AAA๊ธ ๊ฒ์๊ณผ ๊ฐ์ด ๋์ ๋น์ฃผ์ผ ํ๋ฆฌํฐ๊ฐ ์๊ตฌ๋๋ ํ๋ก์ ํธ์์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
UE5 Deferred Rendering Pass
UE5์ Deferred Renderer๋ ์ ํต์ ์ธ 2-pass ๊ตฌ์กฐ๋ณด๋ค ๋ ๋ณต์กํฉ๋๋ค.
- Depth Pre-pass
- Base Pass (G-buffer ์์ฑ)
- Shadow Pass
- Lighting Pass
- Post-processing
์ฐธ๊ณ ์๋ฃ