๋ถ‰์€์‚ฌ๋ง‰์˜ BlackSpace ์—”์ง„์€ย ์˜คํ”ˆ์›”๋“œ์˜ ๋ฐฉ๋Œ€ํ•œ ๋ถ„๋Ÿ‰์„ ๋‹ด์•„๋‚ด๋Š” ๊ทธ๋ฆ‡์ด์ž,ย 

ํ•ต์‹ฌ ๊ฐœ๋ฐœ์ž์ธ ๊น€๋Œ€์ผ ์˜์žฅ์˜ ์ฒ ํ•™์ด ๊ฐ€์žฅ ๋งŽ์ด ํˆฌ์˜๋œ ๊ฒฐ์ •์ฒด์ž…๋‹ˆ๋‹ค.






๊ณต๊ฐœ๋œ ์ •๋ณด๊ฐ€ ๋ณ„๋กœ ์—†์–ด์„œ ์ถ”์ธก์ด ๋งŽ์ด ์„ž์—ฌ์žˆ์ง€๋งŒ,ย 

์„ฑ๋Šฅ๊ณผ ์ตœ์ ํ™”๋ฅผ ๋ชจ๋‘ ์žก์•˜๋‹ค๋Š” ์‚ฌ์‹ค์€ ๊ทธ ์ž์ฒด๋กœ ๋งŽ์€ ํฅ๋ฏธ๋ฅผ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ต๋‹ˆ๋‹ค.


์—”์ง„ ์ „์ฒด๋ฅผ ๋‹ค๋ฃจ๋ ค๋ฉด ๋งค์šฐ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฒŒ์ž„ ์—”์ง„์˜ ๊ฐ€์žฅ ์ค‘์ถ”๊ฐ€ ๋˜๋Š” ๊ทธ๋ž˜ํ”ฝ ํŒŒ์ดํ”„๋ผ์ธ์— ์ง‘์ค‘ํ•ด๋ด…์‹œ๋‹ค.




ํ•ต์‹ฌ ์šฉ์–ด๋ฅผ ๋จผ์ € ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Culling: ๋ณด์ด์ง€ ์•Š๋Š” ๋ฌผ์ฒด๋ฅผ ๊ทธ๋ฆฌ์ง€ ์•Š๋Š” ์ตœ์ ํ™”

LOD: ๋ฉ€๋ฆฌ ์žˆ๋Š” ๋ฌผ์ฒด๋ฅผ Proxy๋ผ๋Š” ๋” ๋‹จ์ˆœํ•œ ๋ฌผ์ฒด๋กœ ๋Œ€์ฒดํ•˜์—ฌ ๊ทธ๋ฆฌ๋Š” ์ตœ์ ํ™”

์ŠคํŠธ๋ฆฌ๋ฐ: SSD์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ์ค‘ ํ•„์š”ํ•œ ๊ฒƒ๋“ค๋งŒ ์‹ค์‹œ๊ฐ„์œผ๋กœ VRAM์— ์˜ฌ๋ฆฌ๋Š” ์ตœ์ ํ™”

์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๋Š” Unity๋‚˜ Unreal์—๋„ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ, ๊ฒŒ์ž„ ๊ทธ๋ž˜ํ”ฝ์Šค์— ๋Œ€ํ•œ ๋ณดํŽธ์ ์ธ ์ง€์‹์ด ์žˆ๋‹ค๋ฉด ์ดํ•ดํ•˜๊ธฐ ํ›จ์”ฌ ํŽธํ•ฉ๋‹ˆ๋‹ค.





1. โ€œ๊ฑฐ๋Œ€ํ•œ ์„ธ๊ณ„๋ฅผ ๋๊นŒ์ง€ ์กด์žฌํ•˜๊ฒŒ ํ•˜๋˜, ๊ฐ™์€ ๋น„์šฉ์œผ๋กœ ๊ทธ๋ฆฌ์ง€ ์•Š๋Š”๋‹คโ€


BlackSpace์˜ ์˜คํ”ˆ์›”๋“œ ๋ Œ๋”๋ง์„ ํ•œ ๋ฌธ์žฅ์œผ๋กœ ์š”์•ฝํ•˜๋ฉด ์ด๋ ‡์Šต๋‹ˆ๋‹ค. ์„ธ๊ณ„๋Š” ๋ฉ€๋ฆฌ๊นŒ์ง€ ๊ณ„์† ์กด์žฌํ•ด์•ผ ํ•˜์ง€๋งŒ, ๊ทธ ์กด์žฌ ๋ฐฉ์‹์€ ๊ฑฐ๋ฆฌ์™€ ์—ญํ• ์— ๋”ฐ๋ผ ๊ณ„์† ๋ฐ”๋€Œ์–ด์•ผ ํ•œ๋‹ค.ย ๊ณต์‹ ์‚ฌ์ดํŠธ์™€ ๋ณด๋„์ž๋ฃŒ๋Š” Crimson Desert๋ฅผ โ€œseamless open worldโ€๋กœ ์†Œ๊ฐœํ•˜๊ณ , Dev Archives๋Š” ๋ฌผ, ๋ณผ๋ฅ˜๋ฉ”ํŠธ๋ฆญ ํฌ๊ทธ, ๋Œ€๊ธฐ ์‚ฐ๋ž€, GPU ๊ธฐ๋ฐ˜ ์˜ท๊ฐยท๋จธ๋ฆฌ์นด๋ฝ, ๋ ˆ์ดํŠธ๋ ˆ์ด์‹ฑ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์กฐํ•ฉ์€ ๋‹จ์ˆœํžˆ ํ™”๋ฉด ํ•œ ์žฅ์„ ์˜ˆ์˜๊ฒŒ ๋งŒ๋“œ๋Š” ์—”์ง„์ด ์•„๋‹ˆ๋ผ, ๋„“์€ ์„ธ๊ณ„ ์ „์ฒด๋ฅผ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์‚ด์•„ ์žˆ๊ฒŒ ์œ ์ง€ํ•˜๋Š” ์—”์ง„์ด๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค.


๋ฌธ์ œ๋Š” ์ด๋Ÿฐ ์„ธ๊ณ„๋ฅผ ์ •์งํ•˜๊ฒŒ ๋ Œ๋”๋งํ•˜๋ฉด ๋น„์šฉ์ด ํญ๋ฐœํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋จผ ์‚ฐ, ์ˆฒ, ๋„์‹œ, ์ง€ํ˜•, ๋‚˜๋ฌด ๊ทธ๋ฆผ์ž, ๋ฐ˜์‚ฌ, ๊ฐ„์ ‘๊ด‘๊นŒ์ง€ ๋ชจ๋‘ ์›๋ณธ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ์™€ ์›๋ณธ ์…ฐ์ด๋”ฉ์œผ๋กœ ๋ฐ€์–ด๋ถ™์ด๋ฉด ๋Œ€์—ญํญ๊ณผ ๋“œ๋กœ์šฐ ๋น„์šฉ์ด ๊ฐ๋‹น์ด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ BlackSpace๋Š” ์„ธ๊ณ„๋ฅผ ์—†์• ์ง€ ์•Š๊ณ , ๋Œ€์‹  โ€œ์–ด๋–ค ํ‘œํ˜„์œผ๋กœ ๋‚จ๊ฒจ๋‘˜์ง€โ€๋ฅผ ๋Š์ž„์—†์ด ๋ฐ”๊พธ๋Š” ๋ฐฉํ–ฅ์„ ํƒํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. PlayStation ์ชฝ ๊ธฐ์ˆ  ์„ค๋ช…์—์„œ๋„ ํŽ„์–ด๋น„์Šค๋Š” ํฐ ์˜คํ”ˆ์›”๋“œ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด SSD ์ŠคํŠธ๋ฆฌ๋ฐ, High CPU Frequency Mode, Geometry Shader Oversubscription, NGG Culling์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฑด ๊ฒฐ๊ตญ ๋ฉ€๋ฆฌ ์žˆ๋Š” ์„ธ๊ณ„๋ฅผ ์œ ์ง€ํ•˜๋˜, ๊ทธ ์„ธ๊ณ„๋ฅผ GPU ์นœํ™”์ ์œผ๋กœ ์ชผ๊ฐœ๊ณ  ๋œ์–ด๋‚ด๋Š” ์ตœ์ ํ™”๊ฐ€ ํ•ต์‹ฌ์ด๋ผ๋Š” ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค.




2. โ€œํ‘œํ˜„์˜ ๊ณ„์ธตํ™”โ€: ์›๋ณธ ๋ฉ”์‹œ์—์„œ ์ž„ํฌ์Šคํ„ฐ๋ฅผ ๊ฑฐ์ณ Proxy LOD๋กœ ๊ฐ„๋‹ค


์ด ์—”์ง„์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ณต๊ฐœ ๋‹จ์„œ๋Š” ๋‚˜๋ฌด์ž…๋‹ˆ๋‹ค. ํŽ„์–ด๋น„์Šค๋Š” ๋‚˜๋ฌด์— SpeedTree ์—์…‹์„ ์“ฐ์ง€๋งŒ, ๋จผ ๊ฑฐ๋ฆฌ์˜ ๋‚˜๋ฌด๋Š” 8x8 ๋ฐฉํ–ฅ์œผ๋กœ ๋ Œ๋”๋งํ•œ 3D ์ž„ํฌ์Šคํ„ฐ๋กœ ๋งŒ๋“ค๊ณ , ๊ทธ ์ž„ํฌ์Šคํ„ฐ๋ฅผ ๋‹ค์‹œ ์„ธ๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์ตœ์ข… LOD์ธ Proxy LOD๋กœ ๋ฒ ์ดํ‚นํ•œ๋‹ค๊ณ  ๋ฐํ˜”์Šต๋‹ˆ๋‹ค. ๋” ๋‚˜์•„๊ฐ€ ๊ถŒ์žฅ ์‚ฌ์–‘ ์ด์ƒ ์‹œ์Šคํ…œ์—์„œ๋Š” ์ด Proxy LOD์— ๊ฑฐ๋ฆฌ ์ œํ•œ์ด ์—†์–ด์„œ, ๋‚˜๋ฌด ์ž„ํฌ์Šคํ„ฐ ์—ญ์‹œ ์‚ฌ์‹ค์ƒ ๊ฑฐ๋ฆฌ ์ œํ•œ ์—†์ด ์œ ์ง€๋œ๋‹ค๊ณ  ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.


์ด ๋ง์˜ ์˜๋ฏธ๋Š” ๊ฝค ํฝ๋‹ˆ๋‹ค. BlackSpace์˜ ์žฅ๊ฑฐ๋ฆฌ ์˜คํ”ˆ์›”๋“œ๋Š” ๋‹จ์ˆœํžˆ โ€œ๋ฉ€์–ด์ง€๋ฉด ์‚ฌ๋ผ์ง€๋Š” ์„ธ๊ณ„โ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ์›๋ณธ ๋‚˜๋ฌด โ†’ ๋‹ค๋ฐฉํ–ฅ 3D ์ž„ํฌ์Šคํ„ฐ โ†’ Proxy LOD๋กœ ํ‘œํ˜„์„ ๊ฐˆ์•„ํƒ€๋ฉด์„œ ๋๊นŒ์ง€ ๋‚จ์•„ ์žˆ๋Š” ์„ธ๊ณ„์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ œ๊ฐ€ ์ผ๋ถ€๋Ÿฌ โ€œHLODโ€๋ผ๋Š” ๋ง์„ ์กฐ์‹ฌํ•ด์„œ ์“ฐ๋Š” ์ด์œ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ„์–ด๋น„์Šค๊ฐ€ ๊ณต๊ฐœ์ ์œผ๋กœ ์“ด ์šฉ์–ด๋Š” HLOD๊ฐ€ ์•„๋‹ˆ๋ผ Proxy LOD์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋™์ž‘ ์›๋ฆฌ๋กœ ๋ณด๋ฉด, ์ด Proxy LOD๋Š” ์—ฌ๋Ÿฌ ์žฅ๊ฑฐ๋ฆฌ ํ‘œํ˜„์„ ๋Œ€ํ‘œํ•˜๋Š” HLOD ๊ณ„์—ด์˜ ์„ธ๊ณ„ ์™ธ๊ณฝ ํ‘œํ˜„์ธต์œผ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ž์—ฐ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด BlackSpace๋Š” ๋ฉ€๋ฆฌ ์žˆ๋Š” ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋Œ€์‹ , ์„ธ๊ณ„์˜ ๋ฐ”๊นฅ ๊ป๋ฐ๊ธฐ๋ฅผ ๋” ์‹ผ ํ˜•ํƒœ๋กœ ๊ณ„์† ๋ถ™์žก์•„ ๋‘๋Š” ์—”์ง„์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.




3.ย  โ€œ๋ฌด์—‡์„ ์–ด๋А ๋‹จ๊ณ„๋กœ ๋‚ผ์ง€โ€๋ฅผ GPU ์ชฝ์—์„œ ๊ณ ๋ฅธ๋‹ค


ํŽ„์–ด๋น„์Šค๋Š” ์—ฌ๊ธฐ์„œ ํ•œ ๊ฑธ์Œ ๋” ๋‚˜๊ฐ‘๋‹ˆ๋‹ค. ๊ฐ™์€ ๋‹ต๋ณ€์—์„œ ์œ„์—์„œ ๋งํ•œ ๋‚˜๋ฌด ์ž„ํฌ์Šคํ„ฐ๋Š” ์ง€์›๋˜๋Š” ํ•˜๋“œ์›จ์–ด์—์„œ ๋ฉ”์‹œ ์…ฐ์ด๋”๋กœ ๊ตฌํ˜„๋˜์—ˆ๊ณ , ๋ฉ”์‹œ ์…ฐ์ด๋”๋ฅผ ์“ฐ๋Š” ๋‹ค๋ฅธ ๊ธฐ์ˆ ๋„ ์žˆ๋‹ค๊ณ  ๋ฐํ˜”์Šต๋‹ˆ๋‹ค. ์ด ํ•œ ๋ฌธ์žฅ์€ BlackSpace๊ฐ€ ๋‹จ์ˆœํžˆ ์žฅ๊ฑฐ๋ฆฌ LOD๋ฅผ ๋งŒ๋“ค์–ด ๋‘๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ทธ ์žฅ๊ฑฐ๋ฆฌ ํ‘œํ˜„์„ GPU ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ ๋‹จ๊ณ„์—์„œ ์„ ํƒยท์†Œํ™”ํ•œ๋‹ค๋Š” ๋œป์œผ๋กœ ์ฝ๋Š” ํŽธ์ด ๋งž์Šต๋‹ˆ๋‹ค.


์™œ ์ด๊ฒŒ ์ค‘์š”ํ•œ์ง€๋Š” Microsoft์˜ ๋ฉ”์‹œ ์…ฐ์ด๋” ์„ค๋ช…์„ ๋ณด๋ฉด ์„ ๋ช…ํ•ด์ง‘๋‹ˆ๋‹ค. DirectX ๋ฌธ์„œ๋Š” ๋ฉ”์‹œ ์…ฐ์ด๋”๊ฐ€ ๊ธฐ์กด Vertex/Geometry ํŒŒ์ดํ”„๋ผ์ธ์„ ๋Œ€์ฒดํ•˜๋ฉด์„œ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๋ฅผ ๋ฐฐ์น˜ ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ , ์ฆํญ(amplify)ํ•˜๊ฑฐ๋‚˜ ์ปฌ๋ง(cull)ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ ๊ฐœ๋ฐœ์ž ๋ธ”๋กœ๊ทธ๋Š” ๋ฉ”์‹œ ์…ฐ์ด๋”์™€ ์ฆํญ ์…ฐ์ด๋”๊ฐ€ ์žˆ์œผ๋ฉด ๋ฉ”์‹œ ์กฐ๊ฐ๋ณ„ ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค๋ฅผ ๋‘๊ณ  ์กฐ๊ฐ ๋‹จ์œ„ ํ”„๋Ÿฌ์Šคํ…€ ์ปฌ๋ง, ๋ฐฑํŽ˜์ด์Šค ๊ทธ๋ฃน ์ œ๊ฑฐ, ์ธ์Šคํ„ด์Šค ์ปฌ๋ง, GPU ์•ˆ์—์„œ์˜ LOD ์„ ํƒย ๊ฐ™์€ ์ผ์„ ๋” ์ด๋ฅธ ๋‹จ๊ณ„์—์„œ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฐํž™๋‹ˆ๋‹ค. Microsoft์˜ ์ƒ˜ํ”Œ ๋ฌธ์„œ์—๋Š” ์•„์˜ˆ per-instance frustum culling and level-of-detail selection entirely on the GPU๋ผ๋Š” ์˜ˆ์ œ๊ฐ€ ๋”ฐ๋กœ ์žˆ์Šต๋‹ˆ๋‹ค.


๊ทธ๋ž˜์„œ BlackSpace๋ฅผ ๊ฐ€์žฅ ๊ทธ๋Ÿด๋“ฏํ•˜๊ฒŒ ์žฌ๊ตฌ์„ฑํ•˜๋ฉด, ์žฅ๊ฑฐ๋ฆฌ ์˜ค๋ธŒ์ ํŠธ๋Š” ๋จผ์ € ์›๋ณธ / ์ž„ํฌ์Šคํ„ฐ / Proxy LODย ๊ฐ™์€ ์—ฌ๋Ÿฌ ํ‘œํ˜„์„ ์ค€๋น„ํ•ด ๋‘๊ณ , ์‹ค์ œ ํ”„๋ ˆ์ž„์—์„œ๋Š” GPU๊ฐ€ ์นด๋ฉ”๋ผ์™€์˜ ๊ด€๊ณ„๋ฅผ ๋ณด๊ณ  ์ง€๊ธˆ ์–ด๋–ค ํ‘œํ˜„์„ ๋‚ด๋ณด๋‚ผ์ง€๋ฅผ ๊ณ ๋ฅด๋Š” ๊ตฌ์กฐ์˜€์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ๊ณต์‹์ ์œผ๋กœ โ€œmeshletโ€์ด๋‚˜ โ€œamplification shaderโ€๊นŒ์ง€ ์–ธ๊ธ‰๋œ ๊ฒƒ์€ ์•„๋‹ˆ๋ฏ€๋กœ ๊ฑฐ๊ธฐ๊นŒ์ง€๋Š” ๋‹จ์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ตœ์†Œํ•œ ์žฅ๊ฑฐ๋ฆฌ ์‹์ƒ์˜ ํ‘œํ˜„ ์ „ํ™˜์„ CPU์˜ ๋“œ๋กœ์šฐ์ฝœ ์ •๋ฆฌ๋งŒ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ , GPU์˜ ํ”„๋ฆฌ๋ž˜์Šคํ„ฐ ๋‹จ๊ณ„๊นŒ์ง€ ๋Œ๊ณ  ๋“ค์–ด๊ฐ„๋‹ค๋Š” ๋ฐฉํ–ฅ์„ฑ์€ ๊ณต๊ฐœ ๋ฐœ์–ธ๊ณผ DirectX ๋ฌธ์„œ๊ฐ€ ์ •ํ™•ํžˆ ๋งž๋ฌผ๋ฆฝ๋‹ˆ๋‹ค.



4. ์ปฌ๋ง์€ ๋‹จ์ˆœํ•œ ํ”„๋Ÿฌ์Šคํ…€ ํ…Œ์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ, โ€œํ•ด์ƒ๋„โ€๋ฅผ ์ •ํ•˜๋Š” ๊ณผ์ •์ด ๋œ๋‹ค


์˜คํ”ˆ์›”๋“œ ์—”์ง„์—์„œ ์ปฌ๋ง์„ ํ”ํžˆ โ€œ์•ˆ ๋ณด์ด๋Š” ๊ฒƒ์„ ๋ฒ„๋ฆฌ๋Š” ๊ฒƒโ€์œผ๋กœ๋งŒ ์ƒ๊ฐํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ BlackSpace์—์„œ๋Š” ์ปฌ๋ง์ด ๋” ๋„“์€ ์˜๋ฏธ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ปฌ๋ง์€ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ ˆ๋ฒจ์˜ ์ปฌ๋ง์ž…๋‹ˆ๋‹ค. ์•„์ฃผ ๋จผ ์ง€์—ญ์˜ ์›๋ณธ ๋ฐ์ดํ„ฐ๋Š” SSD๋ฅผ ํ†ตํ•ด ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ๊ณต์‹ ์ž๋ฃŒ๊ฐ€ ๋งํ•˜๋Š” seamless open world๋Š” ๊ทธ๋Ÿฐ ์ŠคํŠธ๋ฆฌ๋ฐ ์—†์ด๋Š” ์„ฑ๋ฆฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ปฌ๋ง์€ ํ‘œํ˜„ ์ปฌ๋ง์ž…๋‹ˆ๋‹ค. ๊ฐ™์€ ์˜ค๋ธŒ์ ํŠธ๋ผ๋„ ์›๋ณธ ๋ฉ”์‹œ๋กœ ๋‚จ๊ธธ์ง€, ์ž„ํฌ์Šคํ„ฐ๋กœ ๋ฐ”๊ฟ€์ง€, Proxy LOD๋งŒ ๋‚จ๊ธธ์ง€๋ฅผ ๋จผ์ € ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ธ ๋ฒˆ์งธ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ต์ˆ™ํ•œ ์˜๋ฏธ์˜ ํ™”๋ฉด ๊ฐ€์‹œ์„ฑ ์ปฌ๋ง์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋„ค ๋ฒˆ์งธ๋Š” ๋’ค์—์„œ ์„ค๋ช…ํ•  ๋ ˆ์ดํŠธ๋ ˆ์ด์‹ฑ ๋ฒ”์œ„ ์ปฌ๋ง์ž…๋‹ˆ๋‹ค.


PlayStation ๋ธ”๋กœ๊ทธ๊ฐ€ ๊ณต๊ฐœํ•œ Geometry Shader Oversubscription๊ณผ NGG Culling๋„ ์ด ๋งฅ๋ฝ์— ๋†“์œผ๋ฉด ์ดํ•ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. Sony๋Š” ์ด๋ฆ„๋งŒ ์–ธ๊ธ‰ํ–ˆ์ง€ ๋‚ด๋ถ€ ๊ตฌํ˜„์€ ์„ค๋ช…ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ โ€œBlackSpace๊ฐ€ ์ •ํ™•ํžˆ ์–ด๋–ค NGG ๊ฒฝ๋กœ๋ฅผ ํƒ”๋‹คโ€๊ณ  ๋‹จ์ •ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๊ฐ™์€ ๊ธ€์—์„œ ์ด๊ฒƒ์„ ๊ฑฐ๋Œ€ํ•œ ์Šค์ผ€์ผ์—์„œ๋„ ๋””ํ…Œ์ผ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์ ํ™”๋กœ ์–ธ๊ธ‰ํ–ˆ๊ณ , ํŽ„์–ด๋น„์Šค๋Š” ๋ณ„๋„๋กœ ๋ฉ”์‹œ ์…ฐ์ด๋” ๊ธฐ๋ฐ˜ ์ž„ํฌ์Šคํ„ฐ๋ฅผ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— DirectX ๋ฌธ์„œ๊ฐ€ ๋งํ•˜๋Š” ๋ฉ”์‹œ ์…ฐ์ด๋”์˜ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ ๋‹จ๊ณ„ ์ปฌ๋งย ์„ฑ๊ฒฉ์„ ๊ฒน์ณ ๋ณด๋ฉด, BlackSpace๋Š” ์ ์–ด๋„ ์ผ๋ถ€ ๊ฒฝ๋กœ์—์„œ ํ”„๋Ÿฌ์Šคํ…€ ์•ˆ์— ๋“ค์–ด์˜จ ๋’ค์—์•ผ ๋ฒ„๋ฆฌ๋Š” ์—”์ง„์ด ์•„๋‹ˆ๋ผ, ๋ž˜์Šคํ„ฐ ์ด์ „ ๋‹จ๊ณ„์—์„œ ์ด๋ฏธ ์ƒ๋‹น๋Ÿ‰์„ ์†Ž์•„๋‚ด๋Š” ์—”์ง„์ด๋ผ๊ณ  ๋ณด๋Š” ์ชฝ์ด ๊ฐ€์žฅ ์ž์—ฐ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ์ด๊ฑด ๊ณต๊ฐœ ์‚ฌ์‹ค๊ณผ ๋ฌธ์„œ์— ๊ทผ๊ฑฐํ•œ ํ•ด์„์ด๊ณ , ์„ธ๋ถ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž์ฒด๋Š” ๋น„๊ณต๊ฐœ์ž…๋‹ˆ๋‹ค.




5. BlackSpace์—์„œ ๊ทธ๋ฆผ์ž๋Š” โ€œ๋ฉ”์ธ ํ™”๋ฉด์˜ ๋ถ€์†๋ฌผโ€์ด ์•„๋‹ˆ๋ผ, ๋ณ„๋„์˜ ์˜คํ”ˆ์›”๋“œ ํ‘œํ˜„ ๊ณ„์ธต์ด๋‹ค


์ด ์—”์ง„์—์„œ ๊ฐ€์žฅ ์ธ์ƒ์ ์ธ ๋ถ€๋ถ„์€ ์‚ฌ์‹ค ๊ทธ๋ฆผ์ž์ž…๋‹ˆ๋‹ค. Digital Foundry ์งˆ์˜์‘๋‹ต ์žฌํ˜„๋ณธ์—์„œ ํŽ„์–ด๋น„์Šค๋Š” ๊ทธ๋ฆผ์ž๋ฅผ ํ•˜๋‚˜์˜ ์บ์Šค์ผ€์ด๋“œ ์ฒด๊ณ„๋กœ ๋ญ‰๋šฑ๊ทธ๋ฆฌ์ง€ ์•Š๊ณ , ์ •์  2์บ์Šค์ผ€์ด๋“œ, ์ง€ํ˜• 1์บ์Šค์ผ€์ด๋“œ, ๋™์  2์บ์Šค์ผ€์ด๋“œ, ๊ทผ๊ฑฐ๋ฆฌ ์บ๋ฆญํ„ฐ ์ „์šฉ 1์บ์Šค์ผ€์ด๋“œ๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ •์  ๊ทธ๋ฆผ์ž๋Š” ์ ์ง„์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๊ณ , ๋™์  ๊ทธ๋ฆผ์ž๋Š” ๋งค ํ”„๋ ˆ์ž„ ๊ฐฑ์‹ ๋˜๋ฉฐ, ๋ฏธ์„ธํ•œ ํ‘œ๋ฉด ๋””ํ…Œ์ผ์€ ์Šคํฌ๋ฆฐ ๊ณต๊ฐ„ ์ปจํƒํŠธ ์„€๋„์šฐ๋กœ ๋ณด๊ฐ•๋œ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Ÿฌ์‹œ์•„์–ด ์žฌํ˜„๋ณธ ์—ญ์‹œ ๊ฐ™์€ ๋„ค ์ธต ๊ตฌ์กฐ๋ฅผ ๊ทธ๋Œ€๋กœ ์ ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


์ด ๊ตฌ์กฐ๋Š” ๋‹จ์ˆœํžˆ โ€œ์บ์Šค์ผ€์ด๋“œ ์ˆ˜๊ฐ€ ๋งŽ๋‹คโ€๋Š” ์–˜๊ธฐ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Microsoft์˜ CSM ๋ฌธ์„œ์— ๋”ฐ๋ฅด๋ฉด ์บ์Šค์ผ€์ด๋“œ ์„€๋„์šฐ ๋งต์€ ์›๋ž˜ ์นด๋ฉ”๋ผ ํ”„๋Ÿฌ์Šคํ…€์„ ์—ฌ๋Ÿฌ ๊ตฌ๊ฐ„์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ฐ€๊นŒ์šด ๊ตฌ๊ฐ„์— ๋” ๋†’์€ ํ•ด์ƒ๋„๋ฅผ ์ฃผ๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. BlackSpace๋Š” ์ด ๊ธฐ๋ณธ ์•„์ด๋””์–ด ์œ„์— ํ•œ ๋‹จ๊ณ„ ๋” ์˜ฌ๋ผ๊ฐ€์„œ, ํ•ด์ƒ๋„๋ฟ ์•„๋‹ˆ๋ผ ์˜ค๋ธŒ์ ํŠธ์˜ ์„ฑ๊ฒฉ๊ณผ ๊ฐฑ์‹  ๋นˆ๋„๋ฅผ ๊ทธ๋ฆผ์ž ์‹œ์Šคํ…œ ์•ˆ์— ๋ฐ•์•„ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ๋จผ ์ง€ํ˜•์€ ์ง€ํ˜• ์ „์šฉ ๋งต์œผ๋กœ๋งŒ, ๋ฉ€๊ณ  ๊ฑฐ์˜ ์•ˆ ์›€์ง์ด๋Š” ๋ฌผ์ฒด๋Š” ์ •์  ๋งต์œผ๋กœ, ๋‚˜๋ฌดยท์ฒœยท์บ๋ฆญํ„ฐ์ฒ˜๋Ÿผ ๊ณ„์† ๋ณ€ํ•˜๋Š” ๊ฒƒ๋“ค์€ ๋™์  ๋งต์œผ๋กœ, ๊ทธ๋ฆฌ๊ณ  ์ฃผ์ธ๊ณต ์ฃผ๋ณ€ ์บ๋ฆญํ„ฐ๋Š” ๋”ฐ๋กœ ๊ทผ๊ฑฐ๋ฆฌ ์บ์Šค์ผ€์ด๋“œ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ BlackSpace์˜ ๊ทธ๋ฆผ์ž ํŒŒ์ดํ”„๋ผ์ธ์€ ์‚ฌ์‹ค์ƒ shadow-only HLOD์™€ shadow-only update scheduler๊ฐ€ ๊ฒฐํ•ฉ๋œ ๊ตฌ์กฐ๋ผ๊ณ  ๋ณด๋Š” ํŽธ์ด ๋งž์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ โ€œ๋‚˜๋ฌด์šฉ shadow impostor atlasโ€ ๊ฐ™์€ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ˜„์€ ๊ณต๊ฐœ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ, ๊ฑฐ๊ธฐ๊นŒ์ง€๋Š” ์ƒ์ƒ์œผ๋กœ ๋‚˜๊ฐ€๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.


ํ•ต์‹ฌ์€ ๊ทธ๋ฆผ์ž์—์„œ์กฐ์ฐจ ์›๋ณธ ์„ธ๊ณ„๋ฅผ ๊ทธ๋Œ€๋กœ ๋‹ค์‹œ ๊ทธ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์ •์  ์„€๋„์šฐ ๋งต์ด progressive update๋ผ๋Š” ๋ง์€, ๋จผ ์„ธ๊ณ„์˜ ๊ทธ๋ฆผ์ž๋ฅผ ๋งค ํ”„๋ ˆ์ž„ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜์ง€ ์•Š๊ณ  ์‹œ๊ฐ„ ์˜ˆ์‚ฐ์— ๋งž๊ฒŒ ๋ถ„์‚ฐ ๊ฐฑ์‹ ํ•œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ๋™์  ์„€๋„์šฐ ๋งต์€ ๋‚˜๋ฌด, ์ฒœ, ์บ๋ฆญํ„ฐ๋ฅผ ์œ„ํ•ด ๋งค ํ”„๋ ˆ์ž„ ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰ BlackSpace๋Š” โ€œ์–ด๋–ค ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ํ™”๋ฉด์— ์ค‘์š”ํ•˜๋ƒโ€๋ฟ ์•„๋‹ˆ๋ผ, โ€œ์–ด๋–ค ์˜ค๋ธŒ์ ํŠธ์˜ ๊ทธ๋ฆผ์ž๊ฐ€ ์ง€๊ธˆ ๊ฐฑ์‹ ๋ผ์•ผ ํ•˜๋ƒโ€๋ฅผ ๋ณ„๋„๋กœ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์˜คํ”ˆ์›”๋“œ ๋ Œ๋”๋ง์—์„œ ์ด ์ฐจ์ด๋Š” ๋งค์šฐ ํฝ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์žฅ๊ฑฐ๋ฆฌ ์›”๋“œ์˜ ์‹ค์ฒด๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ๋„, GPU๊ฐ€ ๋งค ํ”„๋ ˆ์ž„ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๋Š” ์–‘์€ ๊ฐ€๊นŒ์šด ๋ณ€ํ™” ์œ„์ฃผ๋กœ ์ œํ•œํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.



6. RT ์ง์‚ฌ๊ด‘ ๊ทธ๋ฆผ์ž๊ฐ€ ๋น ์ง„ ์‚ฌ์‹ค๋„, ์˜คํžˆ๋ ค BlackSpace์˜ ๊ตฌ์กฐ๋ฅผ ๋” ์ž˜ ๋ณด์—ฌ ์ค€๋‹ค


ํŽ„์–ด๋น„์Šค๋Š” ๋˜ ํ•˜๋‚˜ ํฅ๋ฏธ๋กœ์šด ์‚ฌ์‹ค์„ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ์ด ํŠธ๋ ˆ์ด์‹ฑ ๊ธฐ๋ฐ˜์˜ ์ง์‚ฌ๊ด‘ ๊ทธ๋ฆผ์ž ๊ตฌํ˜„์ฒด๋Š” ๋ณด์œ ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์ถœ์‹œ ๋ฒ„์ „์—๋Š” ๋„ฃ์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์œ ๋Š” RT ์˜ˆ์‚ฐ์ด ๋„ˆ๋ฌด ๋†’๊ณ , ํŠนํžˆ ์• ๋‹ˆ๋ฉ”์ด์…˜๋˜๋Š” ๋‚˜๋ฌด์˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋น ์ง€๋Š” ๋ฌธ์ œย ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฑด ๋‹จ์ˆœํ•œ โ€œ๋ฏธ๊ตฌํ˜„โ€์ด ์•„๋‹ˆ๋ผ, BlackSpace์˜ ํ˜„์žฌ shipping pipeline์ด ์™œ ๋ž˜์Šคํ„ฐ ๊ธฐ๋ฐ˜ ๊ทธ๋ฆผ์ž ๋ ˆ์ด์–ด๋ง์„ ์ค‘์‹ฌ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š”์ง€ ์„ค๋ช…ํ•ด ์ค๋‹ˆ๋‹ค.


์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฑด โ€œ๋‚˜๋ฌดโ€์ž…๋‹ˆ๋‹ค. BlackSpace์—์„œ ๋‚˜๋ฌด๋Š” ๋ฉ€๋ฆฌ์„œ๋Š” ์ž„ํฌ์Šคํ„ฐ์™€ Proxy LOD์˜ ๋Œ€ํ‘œ ์‚ฌ๋ก€์ด์ง€๋งŒ, ๊ฐ€๊นŒ์ด ์˜ค๋ฉด ๋‹ค์‹œ ๋ฐ”๋žŒ๊ณผ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๊ฑธ๋ฆฐ ๋™์  ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์˜ค๋ธŒ์ ํŠธ๋ฅผ RT ์ง์‚ฌ๊ด‘ ๊ทธ๋ฆผ์ž๊นŒ์ง€ ํฌํ•จํ•ด ์™„์ „ํ•˜๊ฒŒ ๊ฐฑ์‹ ํ•˜๋ ค๋ฉด ๋น„์šฉ์ด ๊ธ‰๊ฒฉํžˆ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ˜„์žฌ ๊ตฌ์กฐ๋Š” ๋จผ ์„ธ๊ณ„๋Š” ์ •์ /์ง€ํ˜• ๊ณ„์ธต์œผ๋กœ, ๊ฐ€๊นŒ์šด ๋ณ€ํ™”๋Š” ๋™์ /๊ทผ๊ฑฐ๋ฆฌ ๊ณ„์ธต์œผ๋กœ, ๋ฏธ์„ธ ๋””ํ…Œ์ผ์€ contact shadows๋กœย ์ฒ˜๋ฆฌํ•˜๋Š” ์ชฝ์ด ๋” ํ˜„์‹ค์ ์ž…๋‹ˆ๋‹ค. ์ฆ‰, RT ์ง์‚ฌ๊ด‘ ๊ทธ๋ฆผ์ž๊ฐ€ ๋น ์กŒ๋‹ค๋Š” ์‚ฌ์‹ค์€ BlackSpace๊ฐ€ RT๋ฅผ ์‹ซ์–ดํ•ด์„œ๊ฐ€ ์•„๋‹ˆ๋ผ, ์˜คํ”ˆ์›”๋“œ ์‹์ƒ๊ณผ ๊ทธ๋ฆผ์ž๋ฅผ ๋™์‹œ์— ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋” ๊ฐ’์‹ผ ๊ณ„์ธตํ˜• ๊ทธ๋ฆผ์ž ์ฒด๊ณ„๋ฅผ ๋ฉ”์ธ ๊ฒฝ๋กœ๋กœ ์„ ํƒํ–ˆ๋‹ค๋Š” ๋œป์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.



7. RT์—์„œ๋„ ๋ฐ˜๋ณต๋˜๋Š” ์ฒ ํ•™: ์ •ํ™•ํ•œ ๊ฒƒ์€ ๊ฐ€๊นŒ์ด, ๋ฉ€๋ฆฌ๋Š” ๋Œ€๋ฆฌ ํ‘œํ˜„์œผ๋กœ


BlackSpace์˜ ์ปฌ๋ง๊ณผ HLOD ์ฒ ํ•™์€ RT์—์„œ ๋” ๋…ธ๊ณจ์ ์œผ๋กœ ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค. ํŽ„์–ด๋น„์Šค๋Š” BVH์— ํ’€๊ณผ ์•„์ฃผ ์ž‘์€ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ œ์™ธํ•œ ์ง€ํ˜•, ๊ฑด๋ฌผ, ํ”„๋ž, ๋‚˜๋ฌด, ์บ๋ฆญํ„ฐ ๋“ฑ ๊ฑฐ์˜ ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋„ฃ์ง€๋งŒ, ๋ฉ”๋ชจ๋ฆฌ์™€ ์„ฑ๋Šฅ ํ•œ๊ณ„ ๋•Œ๋ฌธ์— BVH ์œ ํšจ ๊ฑฐ๋ฆฌ๋ฅผ ์•ฝ 100~150m๋กœ ์ œํ•œํ•œ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋ฐ”๊นฅ์€ ์•ฝ 2km๊นŒ์ง€ SDF๋กœ ํ‘œํ˜„ํ•˜๊ณ , hit shader divergence๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์žฌ์งˆ๋„ ๋‹จ์ˆœํ™”ํ•˜๋ฉฐ, ์บ๋ฆญํ„ฐ์˜ ๋ณต์žกํ•œ ๋ฉ€ํ‹ฐ ํ…์Šค์ฒ˜๋Š” ์บ๋ฆญํ„ฐ๋‹น ๋‹จ์ผ ํ…์Šค์ฒ˜๋กœ ๋ฒ ์ดํฌํ•œ๋‹ค๊ณ  ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.


์ด๊ฑด BlackSpace์˜ ์˜คํ”ˆ์›”๋“œ ๋ Œ๋”๋ง ์ „์ฒด๋ฅผ ๊ด€ํ†ตํ•˜๋Š” ์›์น™์„ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ์„ธ๊ณ„๋Š” ๊ทผ๊ฑฐ๋ฆฌ์—์„œ๋งŒ ์œ ์ง€ํ•œ๋‹ค.ย ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ทผ๊ฑฐ๋ฆฌ ๋ฐ”๊นฅ์œผ๋กœ ๋‚˜๊ฐ€๋ฉด ์›๋ณธ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ ๋Œ€์‹  Proxy LOD, ์›๋ณธ ๊ทธ๋ฆผ์ž ๋Œ€์‹  ์ •์ /์ง€ํ˜• ๋ ˆ์ด์–ด, ์›๋ณธ RT ๊ธฐํ•˜ ๋Œ€์‹  SDF, ์›๋ณธ ์žฌ์งˆ ๋Œ€์‹  ๋‹จ์ˆœํ™”๋œ RT ์žฌ์งˆ์ด ๋“ค์–ด์˜ต๋‹ˆ๋‹ค. ์ฆ‰, HLODยท์ž„ํฌ์Šคํ„ฐยท๊ทธ๋ฆผ์žยท์ปฌ๋ง์€ ๋”ฐ๋กœ๋”ฐ๋กœ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ, ์ „๋ถ€ โ€œ์ •ํ™•๋„๋ฅผ ์œ„์น˜์™€ ์ค‘์š”๋„์— ๋”ฐ๋ผ ๋ฐฐ๋ถ„ํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ์ฒ ํ•™์˜ ๋‹ค๋ฅธ ์–ผ๊ตดโ€์ž…๋‹ˆ๋‹ค.



8. ๊ณต๊ฐœ ์ž๋ฃŒ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์žฌ๊ตฌ์„ฑํ•œ BlackSpace์˜ ์˜คํ”ˆ์›”๋“œ ๋ Œ๋”๋ง ํ๋ฆ„


์•„๋ž˜๋Š” ์ง€๊ธˆ๊นŒ์ง€์˜ ๊ณต๊ฐœ ์‚ฌ์‹ค์„ ์—ฐ๊ฒฐํ•ด ์žฌ๊ตฌ์„ฑํ•œ, ๊ฐ€์žฅ ์„ค๋“๋ ฅ ์žˆ๋Š” ํ๋ฆ„์ž…๋‹ˆ๋‹ค.


์›”๋“œ ์ŠคํŠธ๋ฆฌ๋ฐ

ย  -> ์นด๋ฉ”๋ผ ์ฃผ๋ณ€ ์…€์€ ์›๋ณธ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ/์›๋ณธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์œ ์ง€

ย  -> ์ค‘๊ฑฐ๋ฆฌ ์…€์€ ์ถ•์•ฝ๋œ ํ‘œํ˜„ ์œ ์ง€

ย  -> ์›๊ฑฐ๋ฆฌ ์…€์€ Proxy LOD ๊ณ„์ธต์œผ๋กœ ์œ ์ง€


ํ‘œํ˜„ ์„ ํƒ

ย  -> ๋‚˜๋ฌด: SpeedTree ์›๋ณธ / 8x8 3D impostor / Proxy LOD

ย  -> ์ง€ํ˜•: ๊ทผ๊ฑฐ๋ฆฌ ์›๋ณธ / ์›๊ฑฐ๋ฆฌ ์ง€ํ˜• ํ‘œํ˜„

ย  -> ๊ตฌ์กฐ๋ฌผยทํ”„๋ž: ์›๋ณธ ๋˜๋Š” ๋ณ‘ํ•ฉ๋œ ๋Œ€ํ‘œ ํ‘œํ˜„(๊ณต๊ฐœ ๋ช…์นญ์€ ๋น„๊ณต๊ฐœ)


GPU ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ ๋‹จ๊ณ„

ย  -> ํ”„๋Ÿฌ์Šคํ…€/๊ฑฐ๋ฆฌ/ํ•˜๋“œ์›จ์–ด ๊ฒฝ๋กœ์— ๋”ฐ๋ผ ํ‘œํ˜„ ์„ ํƒ

ย  -> mesh shader / geometry-stage ๊ณ„์—ด ์ตœ์ ํ™”๋กœ ๋ถˆํ•„์š”ํ•œ ์ถœ๋ ฅ ์ œ๊ฑฐ

ย  -> ์ผ๋ถ€ ๊ฒฝ๋กœ์—์„œ NGG culling ๊ณ„์—ด ์ตœ์ ํ™” ์‚ฌ์šฉ


์„€๋„์šฐ ํ‘œํ˜„

ย  -> static shadow map: 2 cascades, progressive update

ย  -> terrain shadow map: 1 cascade, far terrain only

ย  -> dynamic shadow map: 2 cascades, every frame

ย  -> near-character shadow map: 1 cascade

ย  -> contact shadows๋กœ ๋ฏธ์„ธ ๋””ํ…Œ์ผ ๋ณด๊ฐ•


๋ฉ”์ธ ๋ผ์ดํŒ…/RT

ย  -> ๊ทผ๊ฑฐ๋ฆฌ BVH: ์•ฝ 100~150m

ย  -> ์›๊ฑฐ๋ฆฌ: SDF ๋Œ€๋ฆฌ ํ‘œํ˜„

ย  -> RT ์˜ˆ์‚ฐ์„ ์•„๋ผ๊ธฐ ์œ„ํ•ด ์ผ๋ถ€๋Š” screen-space / cache / simplified material ์‚ฌ์šฉ


ํ›„์ฒ˜๋ฆฌ์™€ ํ‘œ์‹œ

ย  -> ์ตœ์ข… ์ปฌ๋Ÿฌ, ์—…์Šค์ผ€์ผ๋ง, ํ”„๋ ˆ์  ํŠธ


์ด ํ๋ฆ„์—์„œ ์ค‘์š”ํ•œ ๊ฑด, HLOD ์„ ํƒ๊ณผ ์ปฌ๋ง์ด ๋ฉ”์ธ๋ทฐ ํ•˜๋‚˜๋งŒ์„ ์œ„ํ•œ ํŒ๋‹จ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๊ฐ™์€ ์„ธ๊ณ„๊ฐ€ ๋ฉ”์ธ ํ™”๋ฉด์—์„œ๋Š” ์ž„ํฌ์Šคํ„ฐ๋กœ, ๊ทธ๋ฆผ์ž์—์„œ๋Š” ์ •์  ์บ์Šคํ„ฐ๋กœ, RT์—์„œ๋Š” SDF ๋Œ€๋ฆฌ ํ‘œํ˜„์œผ๋กœ ๋™์‹œ์— ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. BlackSpace์˜ ํŒŒ์ดํ”„๋ผ์ธ์€ ๊ฒฐ๊ตญ โ€œ๋ฌด์—‡์ด ๋ณด์ด๋А๋ƒโ€๋ณด๋‹ค ๋” ๋„“๊ฒŒ, โ€œ๋ฌด์—‡์ด ์–ด๋–ค ๋น„์šฉ์œผ๋กœ ์กด์žฌํ•ด์•ผ ํ•˜๋А๋ƒโ€๋ฅผ ํ”„๋ ˆ์ž„๋งˆ๋‹ค ๊ฒฐ์ •ํ•˜๋Š” ๊ตฌ์กฐ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ”๋กœ ๊ทธ ์  ๋•Œ๋ฌธ์—, ์ด ์—”์ง„์˜ ์˜คํ”ˆ์›”๋“œ๊ฐ€ ๋‹จ์ˆœํžˆ ๋„“์€ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฉ€๋ฆฌ๊นŒ์ง€ ์‚ด์•„ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š”ย ๊ฒ๋‹ˆ๋‹ค.



9. ๊ฒฐ๋ก 


์ •๋ฆฌํ•˜๋ฉด, BlackSpace์˜ ์˜คํ”ˆ์›”๋“œ ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ์€ ํ•œ ๊ฐ€์ง€ ํ‚ฌ๋Ÿฌ ๊ธฐ์ˆ ๋กœ ์„ค๋ช…๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์—”์ง„์˜ ๋ณธ์งˆ์€ ์žฅ๊ฑฐ๋ฆฌ ์„ธ๊ณ„๋ฅผ Proxy LOD์™€ ๋‹ค๋ฐฉํ–ฅ ์ž„ํฌ์Šคํ„ฐ๋กœ ์œ ์ง€ํ•˜๊ณ , ๊ทธ ํ‘œํ˜„ ์ „ํ™˜์„ GPU ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ ๋‹จ๊ณ„๊นŒ์ง€ ๋Œ๊ณ  ๊ฐ€๋ฉฐ, ๊ทธ๋ฆผ์ž๋Š” ์ •์ ยท์ง€ํ˜•ยท๋™์ ยท๊ทผ๊ฑฐ๋ฆฌ ์บ๋ฆญํ„ฐ๋กœ ์ฑ…์ž„์„ ๋ถ„์‚ฐํ•˜๊ณ , RT๋Š” ๊ฐ€๊นŒ์šด ๋ฒ”์œ„๋งŒ ์ •๋ฐ€ํ•˜๊ฒŒ ๋‹ค๋ฃจ๋Š” ๊ณ„์ธตํ˜• ์—”์ง„์ด๋ผ๋Š” ๋ฐ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ BlackSpace๋Š” โ€œํ™”๋ฉด์— ๋ฟŒ๋ฆฌ๋Š” ๊ธฐ๋Šฅ์˜ ๋ชจ์Œโ€์ด๋ผ๊ธฐ๋ณด๋‹ค, ๊ฑฐ๋Œ€ํ•œ ์„ธ๊ณ„๋ฅผ ๊ณ„์† ์กด์žฌ์‹œํ‚ค๋ฉด์„œ๋„ ๋น„์šฉ์„ ๊ตญ์†Œํ™”ํ•˜๋Š” ์˜คํ”ˆ์›”๋“œ ์ „์šฉ ๋ Œ๋”๋ง ์šด์˜์ฒด๊ณ„์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ๊ณต์‹ ์ž๋ฃŒ๊ฐ€ ๋ณด์—ฌ ์ฃผ๋Š” fluid fog, atmospheric scattering, GPU cloth/hair, seamless world ๊ฐ™์€ ์š”์†Œ๋“ค๋„ ๊ฒฐ๊ตญ ์ด ๊ณ„์ธต ๊ตฌ์กฐ ์œ„์—์„œ๋งŒ ์„ฑ๋ฆฝํ•ฉ๋‹ˆ๋‹ค.



[1]: https://crimsondesert.pearlabyss.com/en-US/News/Notice/Detail?_boardNo=40 "[Notices] Dev Archives: A Look into Pearl Abyssโ€™ BlackSpace Engine | Crimson Desert"

[2]: https://www.pearlabyss.com/en-US/Board/Detail?_boardNo=14684 "Pearl Abyss Launches Crimson Desert Worldwide Today | Pearl Abyss"

[3]: https://blog.playstation.com/2026/03/04/crimson-desert-hands-on-report-four-hours-in-the-rpgs-massive-open-world/ "Crimson Desert hands-on report: four hours in the RPGโ€™s massive open world โ€“ PlayStation.Blog"

[4]: https://www.digitalfoundry.net/features/crimson-desert-pearl-abyss-answers-every-tech-question-we-could-think-ofย 

[5]: https://microsoft.github.io/DirectX-Specs/d3d/MeshShader.html "Mesh Shader | DirectX-Specs"

[6]: https://learn.microsoft.com/en-us/windows/win32/dxtecharts/cascaded-shadow-maps "Cascaded Shadow Maps - Win32 apps | Microsoft Learn"