์•ˆ๋…•ํ•˜์„ธ์š”.



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๋Š” ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


24b0d121e09c28a8699fe8b115ef046f5f4f9a9aae


์ด ๊ทธ๋ฆผ์„ ๋ถ„์„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.



2.1 Visibility Culling
๋งจ ์ฒ˜์Œ์— Culling ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

24b0d121e09c28a8699fe8b115ef046c67f4294995


Culling์ด๋ž€, ๋ฌผ์ฒด๋งˆ๋‹ค ํ™”๋ฉด์— ๋ณด์ด๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ์ž‘์—…์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
์นด๋ฉ”๋ผ ์‹œ์•ผ ๋ฐ–์— ์žˆ๊ฑฐ๋‚˜(Frustum Culling), ๋‹ค๋ฅธ ๋ฌผ์ฒด์— ๊ฐ€๋ฆฐ๋‹ค๋ฉด(Occlusion Culling) ์ด ๊ณผ์ •์—์„œ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.


2.2 Depth Pre-Pass
๋ Œ๋”๋ง์ด ์‹œ์ž‘๋˜๋ฉฐ, ํ™”๋ฉด์˜ ์ง€ํ˜•์ธ Depth Map์„ ๊ฐ€์žฅ ๋จผ์ € ๊ทธ๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


24b0d121e09c28a8699fe8b115ef046c65f5204b95


Depth Prepass๋ž€, ํ”ฝ์…€๋งˆ๋‹ค ํ™”๋ฉด์— ๋ณด์ด๋Š” ๋ฌผ์ฒด๋ฅผ ์„ ๋ณ„ํ•˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.
์šฐ์„  Vertex๋งŒ ํ™•์ธํ•˜๋ฉฐ ์นด๋ฉ”๋ผ์™€์˜ ์ตœ์†Œ ๊ฑฐ๋ฆฌ(Depth)๋ฅผ ๊ธฐ๋กํ•˜๋Š”, Depth Map์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

์ด๋Š” ์‚ฌ์‹ค์ƒ ๊ฐ ํ”ฝ์…€๋งˆ๋‹ค ์–ด๋–ค ๋ฌผ์ฒด๋ฅผ ๊ทธ๋ฆด์ง€ ์ •ํ•ด์ฃผ๋Š” ์ž‘์—…๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. (๋งจ ์•ž์— ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ)
๋งˆ์น˜ ๋ฌผ์ฒด๋งˆ๋‹ค ์ง„ํ–‰ํ–ˆ๋˜ Culling์„ ํ”ฝ์…€๋งˆ๋‹ค ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ ๊ณผ์ •์—์„œ Depth Map์„ ํ†ตํ•ด ๋ฌผ์ฒด๋ฅผ ํŒ๋ณ„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


2.3 Base Pass
๋“œ๋””์–ด G-Buffer๋ฅผ ๊ทธ๋ฆฌ๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.


24b0d121e09c28a8699fe8b115ef046c60f129479e


๊ฐ ํ”ฝ์…€๋งˆ๋‹ค Depth Map์œผ๋กœ ๋ฌผ์ฒด๋ฅผ ํŒ๋ณ„ํ•ด์„œ ํ‘œ๋ฉด์˜ ๋จธํ‹ฐ๋ฆฌ์–ผ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ G-Buffer๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.


24b0d121e09c28a8699fe8b115ef046f5a4e9b96aa


์ดํ›„์— ์ด G-Buffer๋ฅผ ๊ฐ€์ง€๊ณ  Shader์—ฐ์‚ฐ(Lighting)์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


24b0d121e09c28a8699fe8b115ef046b6d6e9536




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๋ฅผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๊ธ€ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•˜๋ฉฐ, ๊ฐœ๋ฐœํ•˜๋Š” ๋ชจ๋“  ๋ถ„๋“ค ํ™”์ดํŒ…์ž…๋‹ˆ๋‹ค.