OpenGL ๋ฐ Vulkan์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๋ Œ๋”๋ง ์—”์ง„์ด GTK์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

GTK ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋ฐœ์ž๋Š” OpenGL(GL 3.3+ ๋ฐ GLES 3.0+) ๋ฐ Vulkan ๊ทธ๋ž˜ํ”ฝ API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” "ngl"๊ณผ "vulkan"์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ๋ Œ๋”๋ง ์—”์ง„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. GTK 4.13.6์˜ ์‹คํ—˜์  ๋ฆด๋ฆฌ์Šค์—๋Š” ์ƒˆ๋กœ์šด ์—”์ง„์ด ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹คํ—˜์šฉ GTK ๋ธŒ๋žœ์น˜์—์„œ๋Š” ์ด์ œ ngl ์—”์ง„์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€๋งŒ, ๋‹ค์Œ ์•ˆ์ • ๋ธŒ๋žœ์น˜ 4.14์—์„œ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๊ฐ€ ํ™•์ธ๋˜๋ฉด ์ด์ „ "gl" ๋ Œ๋”๋ง ์—”์ง„์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ์—”์ง„์€ ๋‹จ์ผ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ตํ•ฉ ๋ฐ ์กฐ๋ฆฝ๋˜์–ด ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ํ†ตํ•ฉ์˜ ํ•ต์‹ฌ์€ Vulkan API๊ฐ€ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ทธ ์œ„์— OpenGL๊ณผ Vulkan์˜ ์ฐจ์ด์ ์„ ๊ณ ๋ คํ•˜์—ฌ OpenGL์— ๋Œ€ํ•œ ๋ณ„๋„์˜ ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ์ƒ์„ฑ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ†ตํ•ด ์žฅ๋ฉด ๊ทธ๋ž˜ํ”„, ๋ณ€ํ™˜, ํ…์Šค์ฒ˜ ์บ์‹ฑ ๋ฐ ๋ฌธ์ž ๋ชจ์–‘ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๋‘ ์—”์ง„ ๋ชจ๋‘์—์„œ ๊ณตํ†ต ์ธํ”„๋ผ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํ†ตํ•ฉ์„ ํ†ตํ•ด ๋‘ ์—”์ง„์˜ ์ฝ”๋“œ ๋ฒ ์ด์Šค ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”๋˜์—ˆ์œผ๋ฉฐ ์ตœ์‹  ์ƒํƒœ๋กœ ๋™๊ธฐํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ์œ ํ˜•์˜ ๋ Œ๋” ๋…ธ๋“œ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ ๋‹จ์ˆœ ์…ฐ์ด๋”๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์˜คํ”„์Šคํฌ๋ฆฐ ๋ Œ๋”๋ง ์ค‘์— ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์ •๋ ฌํ–ˆ๋˜ ์ด์ „ gl ์—”์ง„๊ณผ ๋‹ฌ๋ฆฌ ์ƒˆ๋กœ์šด ์—”์ง„์€ ์˜คํ”„์Šคํฌ๋ฆฐ ๋ Œ๋”๋ง ๋Œ€์‹  ๋ฒ„ํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ด์„ํ•˜๋Š” ๋ณต์žกํ•œ ์…ฐ์ด๋”(ubershader)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. . ํ˜„์žฌ ๋‹จ๊ณ„์˜ ์ฃผ์š” ์ดˆ์ ์€ ์˜ฌ๋ฐ”๋ฅธ ์ž‘๋™๊ณผ ์œ ์ง€ ๊ด€๋ฆฌ ์šฉ์ด์„ฑ์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ํ˜•ํƒœ์—์„œ ์ƒˆ๋กœ์šด ๊ตฌํ˜„์€ ์ตœ์ ํ™” ์ˆ˜์ค€ ์ธก๋ฉด์—์„œ ์ด์ „ ๊ตฌํ˜„๋ณด๋‹ค ์—ฌ์ „ํžˆ ๋’ค๋–จ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ „ gl ์—”์ง„์— ์—†๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ:

  • ์œค๊ณฝ ๋‹ค๋“ฌ๊ธฐ - ๋ฏธ์„ธํ•œ ๋””ํ…Œ์ผ์„ ์œ ์ง€ํ•˜๊ณ  ๋”์šฑ ๋ถ€๋“œ๋Ÿฌ์šด ์œค๊ณฝ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    OpenGL ๋ฐ Vulkan์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๋ Œ๋”๋ง ์—”์ง„์ด GTK์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ์ƒ‰์ƒ ๋ฐ ์•คํ‹ฐ์•จ๋ฆฌ์–ด์‹ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž„์˜ ๊ทธ๋ผ๋””์–ธํŠธ ํ˜•์„ฑ(GL ์—”์ง„์—์„œ๋Š” 6๊ฐ€์ง€ ์ •์ง€ ์ƒ‰์ƒ์ด ์žˆ๋Š” ์„ ํ˜•, ๋ฐฉ์‚ฌํ˜• ๋ฐ ์›์ถ”ํ˜• ๊ทธ๋ผ๋””์–ธํŠธ๋งŒ ์ง€์›๋จ)
    OpenGL ๋ฐ Vulkan์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๋ Œ๋”๋ง ์—”์ง„์ด GTK์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ฐฐ์œจ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„์ˆ˜ ๋ฐฐ์œจ. ์˜ˆ๋ฅผ ๋“ค์–ด 125x1200 ์ฐฝ์— 800% ๋ฐฐ์œจ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด์ „ ์—”์ง„์ฒ˜๋Ÿผ 1500x1000์ด ์•„๋‹Œ 2400x1600 ๋ฒ„ํผ๊ฐ€ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ GPU๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐœ๋ณ„ ์ž‘์—…์„ ๋‹ค๋ฅธ GPU๋กœ ์˜คํ”„๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•œ DMA-BUF ๊ธฐ์ˆ ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด์ „ ๊ตฌํ˜„์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋˜ ๋งŽ์€ ๋ Œ๋”๋ง ๋…ธ๋“œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

์•ž์œผ๋กœ ์ƒˆ๋กœ์šด ํ†ตํ•ฉ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ macOS์—์„œ๋Š” Metal์„, Windows์—์„œ๋Š” DirectX๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ Œ๋”๋ง ์—”์ง„ ์ƒ์„ฑ์ด ๋ฐฐ์ œ๋˜์ง€๋Š” ์•Š์ง€๋งŒ ์…ฐ์ด๋”์— ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ์—”์ง„ ์ƒ์„ฑ์ด ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. " ๋ฐ "vulkan" ์—”์ง„์€ GLSL ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ Metal ๋ฐ Direct์˜ ๊ฒฝ์šฐ ์…ฐ์ด๋”๋ฅผ ๋ณต์ œํ•˜๊ฑฐ๋‚˜ SPIRV-Cross ํˆดํ‚ท ๊ธฐ๋ฐ˜ ๋ ˆ์ด์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ–ฅํ›„ ๊ณ„ํš์—๋Š” ์˜ฌ๋ฐ”๋ฅธ ์ƒ‰์ƒ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ HDR ์ง€์› ๋ฐ ๋„๊ตฌ ์ œ๊ณต, GPU ์ธก ๊ฒฝ๋กœ ๋ Œ๋”๋ง ์ง€์›, ๊ธ€๋ฆฌํ”„ ๋ Œ๋”๋ง ๊ธฐ๋Šฅ, ์˜คํ”„์ŠคํŠธ๋ฆผ ๋ Œ๋”๋ง, ๊ตฌํ˜• ๋ฐ ์ €์ „๋ ฅ ์žฅ์น˜์— ๋Œ€ํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ํ˜•ํƒœ์—์„œ "vulkan" ์—”์ง„์˜ ์„ฑ๋Šฅ์€ ์ด์ „ "gl" ์—”์ง„์˜ ์„ฑ๋Šฅ์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. "ngl" ์—”์ง„์€ ๊ธฐ์กด "gl" ์—”์ง„์— ๋น„ํ•ด ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€์ง€๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์„ฑ๋Šฅ์€ 60 ๋˜๋Š” 144 FPS๋กœ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ ํ™” ํ›„์—๋Š” ์ƒํ™ฉ์ด ๋ฐ”๋€” ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€