์š”์ฆ˜์€ ์ž˜ ๋“ค์–ด๋ณด์ง€๋„ ๋ชปํ•˜๋Š”...ํ”Œ๋กœํ”ผ ๋””์Šคํฌ๋„ ๋ชจ๋ฅด๋Š” ์‹œ๋Œ€๊ฐ€ ์™”์ง€๋งŒ ์˜ˆ์ „ 80~90๋…„๋Œ€ Dos ์‹œ์ ˆ์—๋Š” Direct3D ํ˜น์€ OpenGL ๊ฐ™์€ ๊ฒƒ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์—ˆ๊ณ , GPU๋„ ์—†์—ˆ์Œ.


์ด๋•Œ๋Š” ์˜คํžˆ๋ ค 3D๋ณด๋‹ค ์ด๋ฏธ์ง€๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ 2D ๊ฐ€์† ์นด๋“œ ๊ฐ™์€ ๊ฒŒ ์žˆ๊ธดํ–ˆ๋Š”๋ฐ ์ด ๋•Œ๋Š”, ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ D3D๋‚˜ OpenGL ๊ฐ™์€ 3D ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ–ˆ์–ด. ์ด๋ฅผ Software Rasterizer๋ผ๊ณ  ํ•จ.


์•„๋งˆ๋„ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์†Œํ”„ํŠธ์›จ์–ด 6DOF (3์ถ• ์ด๋™ + 3์ถ•ํšŒ์ „)์ด ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ž˜์Šคํ„ฐ๋ผ์ด์ €๋Š” ํ€˜์ดํฌ1์ผ ๊ฒƒ ๊ฐ™์€๋ฐ,

์‚ฌ์‹ค ๊ทธ ๋ณด๋‹ค ๋จผ์ € ๋“ฑ์žฅํ•œ๊ฒŒ ์žˆ์—ˆ์Œ.




๊ทธ๊ฒƒ์€ ์šธํ‹ฐ๋งˆ ์–ธ๋”์›”๋“œ ๋˜์‹œ๊ฒ ๋‹ค. ์ด๋จธ์‹œ๋ธŒ ์žฅ๋ฅด์˜ ์‹œ์ดˆ๊ฒฉ์ด๋ฉด์„œ ๊ธฐ์ˆ ์ ์œผ๋กœ๋„ ๋†€๋ผ์šด ์ž‘ํ’ˆ์ด์ง€.

๊ฐœ์ธ์ ์œผ๋กœ DOS์‹œ์ ˆ ํ•œํ•ด์„œ ๊ฐ€์žฅ ์ธ์ƒ ๊นŠ์—ˆ๋˜ ์†Œํ”„ํŠธ์›จ์–ด ๋ž˜์Šคํ„ฐ๋ผ์ด์ €๋Š” ์—ญ์‹œ ๋˜์ „ํ‚คํผ1์ด ์•„๋‹๊นŒ ์‹ถ๋‹ค.

๊ฒŒ์ž„์ž์ฒด๊ฐ€ ์—„์ฒญ๋‚œ ๊ฒŒ์ž„์ด๊ณ  ์ง€๊ธˆ์˜ ๋…ธ๋ง๋งต ๋น„์Šทํ•œ ๊ฒƒ๋„ ๊ตฌํ˜„๋˜์–ด ์žˆ๊ณ  ๋™์ ์ธ ๊ทธ๋ฆผ์ž์™€ ๊ด‘์›ํšจ๊ณผ๊ฐ€ ๋Œ€๋‹จํ•จ.


GOG์—๋„ ์žˆ์œผ๋‹ˆ๊นŒ ๊ถ๊ธˆํ•˜๋ฉด ํ•จ ํ•ด๋ด๋ผ. ๊ฐœ์ถ”.

์˜์™ธ๋กœ ์•„์ง๊นŒ์ง€ Software Rasterizer๊ฐ€ ์“ฐ์ž„. ํ”„๋กœํŠธ์Šค๋ฐ”์ดํŠธ์—”์ง„์ด๋‚˜ Doom Eternal๋“ฑ์—์„œ ์“ฐ์ธ Occlusion ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์†Œํ”„ํŠธ์›จ์–ด๋กœ Depth Buffer๋ฅผ ๊ทธ๋ฆฌ๊ณ  Occlusion์„ ์ˆ˜ํ–‰ํ•จ. ์–ธ๋ฆฌ์–ผ์—๋„ ์ด ๊ธฐ๋Šฅ์ด ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค.

๊ทผ๋ฐ ์˜›๋‚  ๋ฐฉ์‹์ด๋ž‘ ์ง€๊ธˆ ๋ฐฉ์‹์€ ๊ฐ™์€ ์†Œํ”„ํŠธ์›จ์–ด ๋ž˜์Šคํ„ฐ๋ผ์ด์ €์ง€๋งŒ ์ข€ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.


์˜›๋‚  ๋ฐฉ์‹์€ ๋ณ‘๋ ฌ์€ ๊ฟˆ๋„ ๋ชป๊พธ๊ณ  ์‹ฑ๊ธ€์— ์ง‘์ค‘ํ•ด์•ผ ํ•˜๋‹ˆ๊นŒ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋ผ ๊ฐ€์ •ํ•˜๊ณ  ์—ฐ์‚ฐ์„ ์ตœ๋Œ€ํ•œ ์ค„์ด๋Š” ๋ฐฉ์‹์ž„.



7ce5897fb78561fe6abed7ed46d320389f081e79a445f9c3b98cb3f4445e21

์ด๋Ÿฐ ์‹์œผ๋กœ ํด๋ฆฌ๊ณค์„ ์œ„, ์•„๋ž˜๋กœ ์ชผ๊ฐœ์„œ ํ•œ์ค„ ํ•œ์ค„์”ฉ ๊ทธ๋ฆฐ๋‹ค. ์ด๊ฑธ ์Šค์บ”๋ผ์ธ ๋ฐฉ์‹์ด๋ผ๊ณ  ํ•จ.


๊ทธ๋Ÿฐ๋ฐ ์š”์ฆ˜์€ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๋Š”๊ฒŒ ํ•˜๋“œ์›จ์–ด๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋‹ˆ๊นŒ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ์— ๋” ์ ํ•ฉํ•œ ๋ฐฉ์‹์œผ๋กœ ์Šค์บ”๋ผ์ธ์ด ์•„๋‹Œ ๋ฌด๊ฒŒ ์ค‘์‹ฌ ์ขŒํ‘œ ๊ธฐ์ค€์œผ๋กœ ์ฒ˜๋ฆฌํ•จ.

์ด๊ฒƒ์ด ์™œ ๋ณ‘๋ ฌ๊ตฌ์กฐ์— ์œ ๋ฆฌํ•œ๊ฐ€? ๊ทธ๊ฒƒ์€ ์ „์˜ ์ƒํƒœ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ์ž๊ธฐ ๋งŒ์˜ ๋กœ์ปฌ์ •๋ณด๋กœ barycetric์„ ๊ฒ€์‚ฌํ•˜๋ฉด ๋˜๋‹ˆ๊นŒ ์˜์กด์„ฑ์ด ์—†์–ด ์œ ๋ฆฌํ•จ.


์•ž์„  ์Šค์บ”๋ผ์ธ์€ ๋ธŒ๋ ˆ์  ํ—˜๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์—๋Ÿฌ๋‚˜ ๋ˆ„์  ์ˆ˜์น˜์— ์˜์กดํ•จ. ์ฆ‰ ์ด์ „์ƒํƒœ + ๊ฐฑ์‹  ์ˆ˜์น˜์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ์— ๋ถˆ๋ฆฌํ•จ.

7ce5897fb78539a73cec82ed46d3203834ddb1c522d98ff742cc427e53cd88


์ด๋Ÿฐ ์‹์œผ๋กœ.. SIMD์™€ ์Šค๋ ˆ๋“œ๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์ข‹์€ ํ˜•ํƒœ๋กœ ์ฒ˜๋ฆฌํ•จ. ์‹ค์ œ ํ˜„๋Œ€ GPU๋„ ์ด์™€ ๊ฐ™์€ ๋ฐฉ์‹์ž„ ์ด๋ฅผ ๋ฌถ์–ด์„œ wave..lane๋“ฑ์œผ๋กœ ๋ถ€๋ฅธ๋‹ค.




๊ทธ๋ฆฌ๊ณ  ์†Œํ”„ํŠธ์›จ์–ด ๋ž˜์Šคํ„ฐ๋ผ์ด์ €์—์„œ ๊ฐ€์žฅ ์—ฐ์‚ฐ์ด ๋งŽ์ด ๋จน๋Š” ๋ถ€๋ถ„์ด..


์›๊ทผ ๋ณด์ • ๋ณด๊ฐ„(Perspective Correction)์ด๋ผ๋Š” ๊ฑด๋ฐ ์‹ค์ œ ์ €๊ธฐ์„œ ๊ทธ๋ƒฅ ์„ ํ˜•๋ณด๊ฐ„์„ ํ•ด๋ฒ„๋ฆฌ๋ฉด ์›๊ทผ ํšจ๊ณผ๊ฐ€ ์•ˆ๋‚˜์˜ค๊ณ  ์ด์ƒํ•˜๊ฒŒ ๋‚˜์˜ด.



์—ฌ๊ธฐ ๋”ฑ ๋ณด๊ธฐ ์ข‹์€๊ฒŒ ์žˆ์Œ..


์ € ์—ฐ์‚ฐํ•˜๋Š”๊ฒŒ ๊ฝค๋‚˜ ๋งŽ์ด ๋“ค์–ด์„œ (๊ทธ ๋‹น์‹œ์—๋Š”) ํ€˜์ดํฌ1 ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๊ณก์„ ์„ ์ง์„ ์œผ๋กœ ๊ทผ์‚ฌํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ์–ด๋–ค ์ •ํ•ด์ง„ ํ”ฝ์…€ ๊ฐ„๊ฒฉ(์˜ˆ๋ฅผ๋“ค์–ด 32ํ”ฝ์…€๊ฐ„๊ฒฉ์œผ๋กœ)์œผ๋กœ ๋”ฑ ๊ทธ์ ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ๋งŒ ์›๊ทผ๋ณด์ •๋ณด๊ฐ„์„ ํ•˜๊ณ  ๊ทธ ์‚ฌ์ด์— ์žˆ๋Š” ํ”ฝ์…€๋“ค์€ ์„ ํ˜•๋ณด๊ฐ„์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š”, ์ •๋ฐ€๋„์™€ ์†๋„๋ฅผ ํƒ€ํ˜‘ํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Œ.



์ตœ๊ทผ Ambernic RG์‹œ๋ฆฌ์ฆˆ๋‚˜ ๋ฏธ์œ  ๊ฐ™์€ ๋ ˆํŠธ๋กœ ์—๋ฎฌ ๊ธฐ๊ธฐ์— ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๋ฆฌ๋ˆ…์Šค๋กœ ๋นŒ๋“œํ•ด์„œ ๋งŒ์ง€๊ณ  ์žˆ๋Š”๋ฐ ๊ฐ„๋งŒ์— ๋„ˆ๋ฌด ์žฌ๋ฐŒ์–ด์„œ ๊ตฌํ˜„ํ•ด๋ณด๋ฉด์„œ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด๋ด„.



2fbcde22ecd139ab2eed86e7459c746a1ccea482e67f7159ecbcc19194c0f59795da7b29d8827eb2846ab85c4150be2ec5



์ด๊ฑด ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณธ ์†Œํ”„ํŠธ์›จ์–ด ๋ž˜์Šคํ„ฐ๋ผ์ด์ €์ž„. ใ…‹


๋งŒ์ง€๊ณ  ์žˆ๋Š” ๊ธฐ๊ธฐ๊ฐ€ Arm Cortex A7์ธ๋ฐ ๋‹น์—ฐํžˆ GPU๋”ฐ์œˆ ์—†๊ณ  GPU๊ฐ€ ์—†์œผ๋‹ˆ D3D, OpenGL ๊ฐ™์€ ๊ฒƒ๋„ ์—†๊ณ  ์ฝ”์–ด๋„ ํ•œ๊ฐœ ์•„๋‹ˆ๋ฉด ๋‘๊ฐœ๋‹ค. ๊ทผ๋ฐ ๊ทธ๊ฒŒ ์กด๋‚˜ ์žผ๋‚˜์„œ ํ•œ๋ฒˆ ์˜ฌ๋ ค๋ด„.