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 ์์ง์ ์๋ ์๋ก์ด ๊ธฐ๋ฅ:
- ์ค๊ณฝ ๋ค๋ฌ๊ธฐ - ๋ฏธ์ธํ ๋ํ
์ผ์ ์ ์งํ๊ณ ๋์ฑ ๋ถ๋๋ฌ์ด ์ค๊ณฝ์ ์ป์ ์ ์์ต๋๋ค.
- ๋ค์ํ ์์ ๋ฐ ์คํฐ์จ๋ฆฌ์ด์ฑ์ ์ฌ์ฉํ ์ ์๋ ์์ ๊ทธ๋ผ๋์ธํธ ํ์ฑ(GL ์์ง์์๋ 6๊ฐ์ง ์ ์ง ์์์ด ์๋ ์ ํ, ๋ฐฉ์ฌํ ๋ฐ ์์ถํ ๊ทธ๋ผ๋์ธํธ๋ง ์ง์๋จ)
- ์ ์๊ฐ ์๋ ๋ฐฐ์จ ๊ฐ์ ์ค์ ํ ์ ์๋ ๋ถ์ ๋ฐฐ์จ. ์๋ฅผ ๋ค์ด 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