์๋ ํ์ธ์.
1. Forward Rendering
๋ ๋๋ง์ ๊ฐ์ ๊ณต๊ฐ ์ ๋ฌผ์ฒด๋ฅผ ์นด๋ฉ๋ผ ๊ด์ ์ ํฝ์
ํ๋ฉด์ ๋ด๋ ์์
์
๋๋ค.
๊ฐ์ ๊ณต๊ฐ์ ๋ณดํต 3D ๋ฒกํฐ๊ณต๊ฐ์ด๊ณ , ํฝ์
ํ๋ฉด์ 2D ๋นํธ๋งต์
๋๋ค.
๋ฐ๋ผ์ ๋ ๊ณต๊ฐ์ ์ด์ด์ฃผ๊ธฐ ์ํด์ Projection๊ณผ Rasterization์ด ์ฌ์ฉ๋ฉ๋๋ค.
Projection์ 3D๋ฅผ 2D๋ก ๋ฐ๊ฟ์ฃผ๊ณ , Rasterization์ vertex๊ฐ ๋ง๋๋ ์ผ๊ฐํ์ ํฌํจ๋๋ ํฝ์
๋ค์ ๊ณจ๋ผ์ค๋๋ค.
๋ง์ง๋ง์ผ๋ก Shader๊ฐ ์์ ๊ฒฐ์ ํ๋ฉด ๋ ๋๋ง์ด ๋๋ฉ๋๋ค.
์ด ๋ฐฉ์์ 3D ๊ณต๊ฐ์์ ๋ฌผ์ฒด๋ง๋ค Shader ์ฐ์ฐ์ ์ํํฉ๋๋ค.
๋ฐ๋ผ์ ๋ฌผ์ฒด ๊ฐ์์ ๋น๋กํ๋ ์ฐ์ฐ๋์ ๊ฐ์ง๋๋ค.
๋ง์ ๋ฌผ์ฒด๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด, ํ๋ฉด์ ํฝ์
๋ง๋ค ์ฐ์ฐํ๋ ๊ณผ์ ์ด ๊ณ ์๋์์ต๋๋ค.
2. Deferred Shader Rendering
Shader ๊ณผ์ ์ ๋ ๊ฐ๋ก ์ชผ๊ฐ๋ ๋ฐฉ์์ด Deferred (Shader) Rendering์
๋๋ค.
๋ฌผ์ฒด๋ง๋ค ํ๋ฉด ์ ๋ณด(๋จธํฐ๋ฆฌ์ผ)๋ฅผ ๊ฐ์ ธ์ ํ๋ฉด์ ๋ณด์ด๋ ํ๋ฉด์ ์ฌ๊ตฌ์ฑํ์ฌ G-Buffer๋ฅผ ๋ง๋ญ๋๋ค.
์ดํ์ Shader๋ G-Buffer๋ฅผ ๋ฐ์ Lighting ์ฐ์ฐ์ ์ํํ๊ฒ ๋ฉ๋๋ค.
Unreal Engine 4๋ ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
์ด ๊ทธ๋ฆผ์ ๋ถ์ํด๋ณด๊ฒ ์ต๋๋ค.
2.1 Visibility Culling
๋งจ ์ฒ์์ Culling ๊ณผ์ ์ ์ํํ๊ฒ ๋ฉ๋๋ค.
Culling์ด๋, ๋ฌผ์ฒด๋ง๋ค ํ๋ฉด์ ๋ณด์ด๋์ง ํ๋จํ๋ ์์
์ ๋งํฉ๋๋ค.
์นด๋ฉ๋ผ ์์ผ ๋ฐ์ ์๊ฑฐ๋(Frustum Culling), ๋ค๋ฅธ ๋ฌผ์ฒด์ ๊ฐ๋ฆฐ๋ค๋ฉด(Occlusion Culling) ์ด ๊ณผ์ ์์ ์ ์ธ๋ฉ๋๋ค.
2.2 Depth Pre-Pass
๋ ๋๋ง์ด ์์๋๋ฉฐ, ํ๋ฉด์ ์งํ์ธ Depth Map์ ๊ฐ์ฅ ๋จผ์ ๊ทธ๋ฆฌ๊ฒ ๋ฉ๋๋ค.
Depth Prepass๋, ํฝ์
๋ง๋ค ํ๋ฉด์ ๋ณด์ด๋ ๋ฌผ์ฒด๋ฅผ ์ ๋ณํ๋ ์์
์
๋๋ค.
์ฐ์ Vertex๋ง ํ์ธํ๋ฉฐ ์นด๋ฉ๋ผ์์ ์ต์ ๊ฑฐ๋ฆฌ(Depth)๋ฅผ ๊ธฐ๋กํ๋, Depth Map์ ๋ง๋ค์ด์ค๋๋ค.
์ด๋ ์ฌ์ค์ ๊ฐ ํฝ์
๋ง๋ค ์ด๋ค ๋ฌผ์ฒด๋ฅผ ๊ทธ๋ฆด์ง ์ ํด์ฃผ๋ ์์
๊ณผ ๊ฐ์ต๋๋ค. (๋งจ ์์ ์์ด์ผ ํ๋ฏ๋ก)
๋ง์น ๋ฌผ์ฒด๋ง๋ค ์งํํ๋ Culling์ ํฝ์
๋ง๋ค ์งํํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค์ ๊ณผ์ ์์ Depth Map์ ํตํด ๋ฌผ์ฒด๋ฅผ ํ๋ณํ๊ฒ ๋ฉ๋๋ค.
2.3 Base Pass
๋๋์ด G-Buffer๋ฅผ ๊ทธ๋ฆฌ๋ ๊ณผ์ ์
๋๋ค.
๊ฐ ํฝ์
๋ง๋ค Depth Map์ผ๋ก ๋ฌผ์ฒด๋ฅผ ํ๋ณํด์ ํ๋ฉด์ ๋จธํฐ๋ฆฌ์ผ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์ค์ ๋ก G-Buffer๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋ฉ๋๋ค.
์ดํ์ ์ด G-Buffer๋ฅผ ๊ฐ์ง๊ณ Shader์ฐ์ฐ(Lighting)์ ์ํํ๊ฒ ๋ฉ๋๋ค.
3. Deferred Material Rendering
ํ์ง๋ง ์ฌ์ ํ ๋นํจ์จ์ฑ์ด ๋จ์์์ต๋๋ค.
Depth Prepass์ Base Pass์์ ๋ชจ๋ ์ค๋ธ์ ํธ๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์
๋๋ค.
์ฆ Depth Map์ ๊ทธ๋ฆฌ๋ฉด์ Vertex๋ฅผ ๋ค ์ฐพ์๋ค๋
๋๋ฐ ๋ ์ฐพ์์ผ ํ๋ค๋ ๋ง์
๋๋ค.
์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด Unreal Engine 5์์๋ Nanite์ ์ฉ์ผ๋ก Deferred Material Rendering ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
์์ธํ ์ด์ผ๊ธฐ๋ ๋ค์ ๊ธ์์ ํ๊ฒ ์ต๋๋ค.
4. ์ฐธ๊ณ ๋ฌธํ
์ ๋ชฉ์๋ Shader๊ฐ ๋ค์ด๊ฐ์ง๋ง ์ ์ Shader๋ ์ ๊ฐ ๋ชฐ๋ผ์ ๋ฑํ ๋ด์ฉ ์์ต๋๋ค..
๋ค์ ๊ธ์์๋ Unreal 5์์ ๋์
ํ Nanite, Lumen, Virtual Shadow Map, Mege Light๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค.
๊ธ ์ฝ์ด์ฃผ์
์ ๊ฐ์ฌํ๋ฉฐ, ๊ฐ๋ฐํ๋ ๋ชจ๋ ๋ถ๋ค ํ์ดํ
์
๋๋ค.
์ค.. ์ธ๋ฆฌ์ผ ๊ทธ๋ํฝ์ค ๋ด์ฉ์ด๋ผ๋. ์ข์ต๋๋น
Occlusion Culling์ ๋ฌผ์ฒด์ ์ผ๋ถ๋ผ๋ ๋ณด์ด๋ฉด **"๊ทธ๋ ค์ผ ํ๋ค"**๊ณ ํ๋จํฉ๋๋ค. ๋ฐ๋ผ์, ์ฑ๋ฅ์ ์ํด์ ๊ฐ๋ฆด ๋ฌผ์ฒด๊ฐ ๊ฐ๋ฆฌ๋ ๋ฌผ์ฒด ๋ค์ ์์ ํ ์จ์ด๋ฒ๋ฆฌ๊ฒ ์ค๊ณํด์ผ ๊ฐ์ฅ ํฐ ์ต์ ํ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.๋ผ๋๋ฐ ๋ง๋ ธ? - dc App