Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ GTK ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΠΎ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ Π΄Π²ΡΡ Π½ΠΎΠ²ΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ² ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ — «ngl» ΠΈ «vulkan», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ API OpenGL (GL 3.3+ ΠΈ GLES 3.0+) ΠΈ Vulkan. ΠΠΎΠ²ΡΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΡΠΎΡΡΠ°Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ° GTK 4.13.6. Π ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ GTK Π΄Π²ΠΈΠΆΠΎΠΊ ngl ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ 4.14 Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΡΠ½ ΡΡΠ°ΡΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ «gl».
ΠΠΎΠ²ΡΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΠ΅ ΠΈΠ· Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ. Π‘ΡΡΡ ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ API Vulkan, ΠΏΠΎΠ²Π΅ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄Π»Ρ OpenGL ΡΠΎΠ·Π΄Π°Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΡΡΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ OpenGL ΠΈ Vulkan. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΎΠ±ΠΎΠΈΡ Π΄Π²ΠΈΠΆΠΊΠ°Ρ ΠΎΠ±ΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π³ΡΠ°ΡΠ° ΡΡΠ΅Π½Ρ (scene graph), ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΉ, ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΡΡ ΠΈ Π³Π»ΠΈΡΠΎΠ². Π£Π½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΠ»Π° ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ ΠΎΠ±ΠΎΠΈΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ² ΠΈ ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ°ΡΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° «gl», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ·Π»ΠΎΠ² ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° (rendernode) ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ Π·Π°ΠΊΠ°Π΄ΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π΅ (offscreen), Π² Π½ΠΎΠ²ΡΡ Π΄Π²ΠΈΠΆΠΊΠ°Ρ Π²ΠΌΠ΅ΡΡΠΎ Π·Π°ΠΊΠ°Π΄ΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ (ubershader), ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π±ΡΡΠ΅ΡΠ°. Π ΡΠ΅ΠΊΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ Π½ΠΎΠ²Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠΊΠ° ΠΎΡΡΡΠ°ΡΡ ΠΎΡ ΡΡΠ°ΡΠΎΠΉ ΠΏΠΎ ΡΡΠΎΠ²Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ°Π΄ΠΈΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎΡΠ΅ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ.
ΠΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π² ΡΡΠ°ΡΠΎΠΌ Π΄Π²ΠΈΠΆΠΊΠ΅ «gl»:
- Π‘Π³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΠΎΠ² — ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΠΈ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π½ΡΡ
ΠΊΠΎΠ½ΡΡΡΠΎΠ².
- Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ
Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π»ΡΠ±ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (Π² Π΄Π²ΠΈΠΆΠΊΠ΅ «gl» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠ΅, ΡΠ°Π΄ΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΈ ΠΊΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΡ c 6 ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ).
- ΠΡΠΎΠ±Π½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (fractional scale), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ Π²ΡΡΡΠ°Π²Π»ΡΡΡ Π½Π΅ΡΠ΅Π»ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°ΡΡΡΠ°Π±Π° 125% Π΄Π»Ρ ΠΎΠΊΠ½Π° 1200×800 Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ Π±ΡΡΠ΅Ρ 1500×1000, Π° Π½Π΅ 2400×1600 ΠΊΠ°ΠΊ Π² ΡΡΠ°ΡΠΎΠΌ Π΄Π²ΠΈΠΆΠΊΠ΅.
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ DMA-BUF Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ GPU ΠΈ Π²ΡΠ½ΠΎΡΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ GPU.
- ΠΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ·Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΡΠ°ΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Π ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌ Π½ΠΎΠ²ΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ² ΠΎΡΠ½Π΅ΡΠ΅Π½ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎ Π½Π΅ΡΠ΅Π»ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ (fractional position) ΠΈ ΡΠ·Π»ΠΎΠ² glshader, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΡΠ·Π°Π½Ρ Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΡΠ°ΡΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ°, ΠΈ Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠΏΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ·Π»ΠΎΠ² Ρ ΠΌΠ°ΡΠΊΠ°ΠΌΠΈ (mask) ΠΈ ΡΠ΅ΠΊΡΡΡΡ Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡΡ. Π’Π°ΠΊΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ Π²ΡΠΏΠ»ΡΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ, ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ.
Π Π±ΡΠ΄ΡΡΠ΅ΠΌ Π½Π° Π±Π°Π·Π΅ Π½ΠΎΠ²ΠΎΠΉ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π²ΠΈΠΆΠΊΠΎΠ² ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Metal Π² macOS ΠΈ DirectX Π² Windows, Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ² Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² (Π² Π΄Π²ΠΈΠΆΠΊΠ°Ρ «ngl» ΠΈ «vulkan» Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ ΡΠ·ΡΠΊ GLSL, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Metal ΠΈ Direct ΠΏΡΠΈΠ΄ΡΡΡΡ Π»ΠΈΠ±ΠΎ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΡ, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΡ Π½Π° Π±Π°Π·Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ SPIRV-Cross).
ΠΠ· ΠΏΠ»Π°Π½ΠΎΠ² Π½Π° Π±ΡΠ΄ΡΡΠ΅Π΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ HDR ΠΈ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΡΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° (Path rendering) Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ GPU, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π³Π»ΠΈΡΠΎΠ², ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π²Π½Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΡΠ°ΡΡΡ
ΠΈ ΠΌΠ°Π»ΠΎΠΌΠΎΡΠ½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ². Π ΡΠ΅ΠΊΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π²ΠΈΠΆΠΊΠ° «vulkan» Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΡΠ°ΡΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° «gl». ΠΠ²ΠΈΠΆΠΎΠΊ «ngl» ΠΎΡΡΡΠ°ΡΡ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΡ ΡΡΠ°ΡΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° «gl», Π½ΠΎ ΠΈΠΌΠ΅ΡΡΠΈΡ
ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ 60 ΠΈΠ»ΠΈ 144 FPS. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru