ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ NVIDIA ΠΏΠ΅ΡΠ΅Π΄Π°Π»Π° ΡΠ·ΡΠΊ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Slang ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΠ΄ ΠΏΠΎΠΊΡΠΎΠ²ΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΠΎΡΡΠΈΡΠΌΠ° Khronos, Π·Π°Π½ΠΈΠΌΠ°ΡΡΠ΅Π³ΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ². ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Slang Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅ Khronos ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΡΠΈΠ²Π»Π΅ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ Π½ΠΎΠ²ΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ². Π―Π·ΡΠΊ ΡΠΎΠ·Π΄Π°Π½ ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ NVIDIA ΠΈ Π²Π΅Π΄ΡΡΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΠΎΠ² Π‘Π¨Π (Π£Π½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΠ°ΡΠ½Π΅Π³ΠΈ-ΠΠ΅Π»Π»ΠΎΠ½Π°, Π‘ΡΡΠ½ΡΠΎΡΠ΄ΡΠΎΡΠ΄ΡΠΊΠΈΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ, ΠΠ°ΡΡΠ°ΡΡΡΠ΅ΡΡΠΊΠΈΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΡΠΈΡΡΡ, ΠΠ°Π»ΠΈΡΠΎΡΠ½ΠΈΠΉΡΠΊΠΈΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ Π² Π‘Π°Π½-ΠΠΈΠ΅Π³ΠΎ ΠΈ ΠΠ°ΡΠΈΠ½Π³ΡΠΎΠ½ΡΠΊΠΈΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ). Π ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π°ΡΠ²ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Autodesk, Adobe, id Software, Igalia ΠΈ Valve. ΠΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ C++ ΠΈ ΠΎΡΠΊΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Linux, Windows, macOS ΠΈ WebAssembly.
Π―Π·ΡΠΊ Slang ΠΏΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ ΠΎΡΠ΅Π½Ρ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ ΡΠ·ΡΠΊΡ HLSL, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌΡ Π² Direct3D, ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»Π΅Π½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ Π½Π° Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠΎΠΉ — «Π½Π°ΠΏΠΈΡΠ°Π» ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, Π·Π°ΠΏΡΡΠΊΠ°ΠΉ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ», ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΡΠ·ΡΠΊΠ°Ρ Slang, HLSL (High-Level Shader Language) ΠΈ GLSL (OpenGL Shading Language) Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ API Direct3D 11/12, Vulkan, Metal, OpenGL, WebGPU, OptiX ΠΈ CUDA, Π° ΡΠ°ΠΊΠΆΠ΅ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° ΠΎΠ±ΡΡΠ½ΠΎΠΌ CPU. ΠΠΎΠΌΠΈΠΌΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Slang ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ°Ρ C++, MSL (Metal Shading Language) ΠΈ CUDA, ΡΠΎΡ ΡΠ°Π½ΡΡΡΠΈΠΉ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ².
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠ·ΡΠΊΠ° Slang ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ·ΡΠΊΠ΅ HLSL Π±Π΅Π· Π²Π½Π΅ΡΠ΅Π½ΠΈΡ Π² Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠ°Π²ΠΊΠ°ΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Valve ΡΠΌΠΎΠ³Π»Π° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π² Slang Π²ΡΠ΅ HLSL-ΡΠ΅ΠΉΠ΄Π΅ΡΡ ΠΈΠ³ΡΡ Source 2, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π²ΡΠ΅Π³ΠΎ 10 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°). ΠΠ»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ GLSL ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° GLSL. ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠΉ ΠΊΠΎΠ΄, ΡΠ°ΠΊ ΠΈ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ· ΡΠ²Π΅ΠΆΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ Direct3D ΠΈ Vulkan.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ Slang 2024.14.5, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ Atomic<T> Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ «where», ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IFunc Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΈΠΏΡ Tuple Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Unicode, Π±ΡΠΊΠ΅Π½Π΄Ρ Π΄Π»Ρ ΡΠ·ΡΠΊΠΎΠ² ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Metal ΠΈ WGSL (ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² WebGPU). ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π½Π° Slang ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΎΡΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ΅Ρ
Π½ΠΈΠΊΡ 3D-ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Gaussian Splatting. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π° online-ΡΡΠ΅Π΄Π° Π΄Π»Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ· Π±ΡΠ°ΡΠ·Π΅ΡΠ°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru