Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ²
Π ΡΡΡΠΊΠΈΠ΅ ΠΠ»ΠΎΠ³ΠΈ
ΠΏΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅
ΠΡΠΎΡ ΡΡΠ΅Π±Π½ΠΈΠΊ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Effects11 (FX11), Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ HLSL.
Π’Π΅ΠΊΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
Π ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ DX11 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΌΠ΅ΡΠ°Π½Π½Π°Ρ ΡΠΎΡΠΌΠ° ΠΌΠ΅ΡΠΎΠ΄Π° 1 (ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ) ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° 3. Π₯ΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄ 2 Π±ΡΠ» Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΈΠ·ΡΡΠ΅Π½, Π»ΡΠ΄ΠΈ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄.
ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ Π² Π³ΡΡΠΏΠΏΡ QQ: 727623616 ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ DX11 Π²ΠΌΠ΅ΡΡΠ΅ ΠΈ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎ Π»ΡΠ±ΡΡ Π²ΠΎΠΏΡΠΎΡΠ°Ρ Π·Π΄Π΅ΡΡ.
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°ΠΌΠΈ
Π§ΡΠΎΠ±Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΠΌ Microsoft, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅) ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠ°:
ΠΠ΅ΡΠΎΠ΄ 1: ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΡΡΠ΅Π΄ΠΈ Triangle.hlsli ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» HLSL ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ ΡΡΠ°ΡΡΠ²ΡΠ΅Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΡΠ»Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² ΠΎΠΊΠ½Π΅ Π²ΡΠ²ΠΎΠ΄Π° (Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ):
Π’ΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ» ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ Π±ΡΠ» ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½.ΠΡΠ»ΠΈ Π²Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠ°Π½Π΅Π΅, ΠΈ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°Π½Π΅Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΠΏΠΎΠΏΡΡΠΊΡ.
Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. d3dcompiler.h Π Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ d3dcompiler.lib
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ DX SDK Π·Π°ΡΠ°Π½Π΅Π΅. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Windows SDK. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π²Π΅ΡΡΠΈΠΈ D3DCompiler> = 46, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ DX SDK ΠΈ ΠΡΡΡ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅.
ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ (Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° ΠΈ Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΠ΅ΡΠ°):
Π’ΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎ ID3DBlob ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΉΠ΄Π΅Ρ. Π§Π°ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ°ΠΊΠ΅ΡΠ° ΡΠ΅ΠΉΠ΄Π΅ΡΠ° ΠΈ Π²Π΅ΡΡΠΈΠ½Ρ Π½Π΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ ΡΡΠΎΠΊΡ 02, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡ.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠ΅ΠΉΠ΄Π΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ Π² ΠΏΠ°ΠΏΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈ ΠΎΠ½ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π²Ρ ΡΠΈΡΠ°Π»ΠΈ Π΅Π³ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π‘ΠΏΠΎΡΠΎΠ± 2: ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΉΠ» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π² ΠΏΡΠΎΠ΅ΠΊΡ
Π΄Π»Ρ Triangle_VS.hlsl ΠΈ Triangle_PS.hlsl Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΠ°ΠΊ:
ΠΠ΄Π΅ΡΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ ΠΈΠΌΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠΈ Π΄Π²Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π° Π½Π°Π΄ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ, Π³Π΄Π΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°:
Π’ΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° ΠΈ Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΠ΅ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠ°ΠΊΠΈΠΌ:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ Π΄Π²Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π° Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ (ΡΠΎ Π΅ΡΡΡ ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ) Π΄ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΠ³Π΄Π° ΡΡΠΈ Π΄Π²Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π° Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΠ½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΡΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ
ΠΡΠ»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° Π²Π½Π΅Π΄ΡΡΠ΅ΡΡΡ Π² Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘ΠΏΠΎΡΠΎΠ± 3: ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΡΠ΅ ΡΠ°Π· ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ DX SDK Π·Π°ΡΠ°Π½Π΅Π΅. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Windows SDK. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π²Π΅ΡΡΠΈΠΈ D3DCompiler> = 46, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ DX SDK Π ΠΏΡΡΡ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅.
Π΄Π»Ρ bOverwrite Π‘ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ TRUE ΠΈΠ»ΠΈ FALSE ΠΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΠΌ, ΡΡΠΎ Π½Π΅Ρ ΡΠ°ΠΉΠ»Π° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°, ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ Π² ΡΠ°ΠΉΠ».
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ CreateShaderFromFile Π€ΡΠ½ΠΊΡΠΈΡ Π²
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ CreateShaderFromFile
ΠΠΈΠΆΠ΅ CreateShaderFromFile Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ,Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ»Π° ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° Π² d3dUtil.h, ΠΠ°Π²ΠΈΡΠΈΡ ΠΎΡ dxerr Π ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° filesystem ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ:
ΠΠΎΠ±ΡΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°ΡΡ Π² Π³ΡΡΠΏΠΏΡ QQ: 727623616 ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ DX11 Π²ΠΌΠ΅ΡΡΠ΅ ΠΈ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎ Π»ΡΠ±ΡΡ Π²ΠΎΠΏΡΠΎΡΠ°Ρ Π·Π΄Π΅ΡΡ.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ²
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ FXC.EXE ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² 2 β 5,1. ΠΠ»Ρ Shader Model 6 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ DXC.EXE Π²ΠΌΠ΅ΡΡΠΎ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΠ°Π½ Π² ΡΡΠ°ΡΡΠ΅ ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ dxc.exe ΠΈ dxcompiler.dll.
Microsoft Visual Studio 2012 ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° ΠΈΠ· * ΡΠ°ΠΉΠ»ΠΎΠ². hlsl, Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ C++.
Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ±ΠΎΡΠΊΠΈ Visual Studio 2012 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΊΠΎΠ΄Π° fxc.exe HLSL Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ HLSL ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² ΠΈΠ»ΠΈ Π² Π±Π°ΠΉΡΠΎΠ²ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π°Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ². ΠΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΊΠΎΠ΄Π° HLSL ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ» HLSL Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ ΡΠ²ΠΎΠΉΡΡΠ² HLSL ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ²ΠΎΠΉΡΡΠ² HLSL.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° * ΡΠ°ΠΉΠ»Π° HLSL. ΠΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΌ Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Π΅ΡΡ Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠΎ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π° ΠΈ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠ° ΠΈ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠ΄Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠ°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ΄Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠ°
Π§ΡΠΎΠ±Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠ΄Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠ°:
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ
ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ HLSL-ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (. cso ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²), Π½Π°Π·Π½Π°ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π±Π°ΠΉΡΠΎΠ²ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° ΠΈΠ· ΡΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π±Π°ΠΉΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΉΠ΄Π΅Ρ Π²Π΅ΡΡΠΈΠ½ (ID3D11VertexShader * * ), Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ID3D11Device:: ΠΊΡΠ΅Π°ΡΠ΅Π²Π΅ΡΡΠ΅ΠΊΡΡΠ°Π΄Π΅Ρ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ Π±Π°ΠΉΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±Π°ΠΉΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° Π²Π΅ΡΡΠΈΠ½. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ «ΡΡΠ΅Π±Π½ΠΈΠΊ ΠΏΠΎ Direct3D » ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° ΠΈΠ· Π±Π°ΠΉΡΠΎΠ²ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΈΠ·. ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΠ΅Π»Π΅ΠΉ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅ΠΉΠ΄Π΅ΡΠ°. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΡΠ΅Π±Π½ΠΈΠΊΠ° ΠΏΠΎ Direct3DΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Files Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° ΡΠΈΠΌΠΏΠ»Π΅Π²Π΅ΡΡΠ΅ΠΊΡΡΠ°Π΄Π΅Ρ. HLSL ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠΈΠΌΠΏΠ»Π΅Π²Π΅ΡΡΠ΅ΠΊΡΡΠ°Π΄Π΅Ρ. cso.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ Π² ΡΠ°ΠΉΠ»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ D3DCompileFromFile
ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ D3DCompileFromFile Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠ°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°.
Windows ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΠ°Π³Π°Π·ΠΈΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ D3DCompileFromFile Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π½ΠΎ Π½Π΅ Π΄Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ.
Vulkan. Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ
Π― ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊ Π² IT-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ CG Tribe, ΠΈ Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΊ Vulkan API (vulkan-tutorial.com).
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ Ρ ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Ρ Π²Π°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ ΠΏΠ΅ΡΠ²ΡΡ Π΄Π²ΡΡ Π³Π»Π°Π² ΡΠ°Π·Π΄Π΅Π»Π°, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ (Graphics pipeline basics), β Introduction ΠΈ Shader modules.
9. ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
10. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΈΠΏ-ΠΊΠ°ΡΡ
FAQ
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ
ΠΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅
Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π³Π»Π°Π² ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ β ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ ΡΠ΅ΠΊΡΡΡΡΡ ΠΌΠ΅ΡΠ΅ΠΉ Π² ΠΏΠΈΠΊΡΠ΅Π»ΠΈ Π² render target-Π°Ρ .
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΡΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ ΡΡ Π΅ΠΌΠ°:
Input assembler ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ ΡΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠ½ ΠΈΠ· Π±ΡΡΠ΅ΡΠΎΠ². ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΉ Π±ΡΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠ½ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΡ ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ΅ΡΡΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ (vertex shader) Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, Π΄Π»Ρ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²Π΅ΡΡΠΈΠ½ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π² ΡΠΊΡΠ°Π½Π½ΡΡ. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ Π΄Π°Π»Π΅Π΅ ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ.
Π¨Π΅ΠΉΠ΄Π΅ΡΡ ΡΠ΅ΡΡΠ΅Π»ΡΡΠΈΠΈ (tessellation shaders) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΠ΅ΠΉ Π·Π° ΡΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΠΈ. ΠΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π±Π»ΠΈΠ·Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΈΡΠΏΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π½Ρ ΠΈΠ»ΠΈ Π»Π΅ΡΡΠ½ΠΈΡΡ, ΠΌΠ΅Π½Π΅Π΅ ΠΏΠ»ΠΎΡΠΊΠΈΠΌΠΈ.
ΠΠ΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ (geometry shader) Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π° (ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π»ΠΈΠ½ΠΈΡ, ΡΠΎΡΠΊΠ°) ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΈΠ»ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ. ΠΠ΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠ΅ΠΉΠ΄Π΅Ρ ΡΠ΅ΡΡΠ΅Π»ΡΡΠΈΠΈ, ΡΠΎΠ»ΡΠΊΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ, Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π½Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΈΠ·-Π·Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Intel.
ΠΠ° ΡΡΠ°ΠΏΠ΅ ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ (rasterization) ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΈΠΌΠΈΡΠΈΠ² ΡΠ°ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ². Π€ΡΠ°Π³ΠΌΠ΅Π½ΡΡ β ΡΡΠΎ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ Π²ΠΎ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅ΡΠ΅. ΠΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡ ΠΎΠ΄ΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠΊΡΠ°Π½Π°, ΠΎΡΡΠ΅ΠΊΠ°ΡΡΡΡ, Π° Π°ΡΡΠΈΠ±ΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠ½Π½ΡΠΌ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠΌ, ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΡΡΡΡΡ ΠΏΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅. Π€ΡΠ°Π³ΠΌΠ΅Π½ΡΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π·Π° Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠΎΠΆΠ΅ ΠΎΡΡΠ΅ΠΊΠ°ΡΡΡΡ ΠΈΠ·-Π·Π° ΡΠ΅ΡΡΠ° Π³Π»ΡΠ±ΠΈΠ½Ρ (depth testing).
Π€ΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ (fragment shader) Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π² ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅ΡΡ ΠΈ Ρ ΠΊΠ°ΠΊΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π΅ΡΠ° ΠΈ Π³Π»ΡΠ±ΠΈΠ½Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΡΡΡΠ½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΈ Π½ΠΎΡΠΌΠ°Π»ΠΈ Π΄Π»Ρ ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΈΡ.
ΠΠ° ΡΡΠ°ΠΏΠ΅ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ² (color blending) ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ², ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π²ΠΎ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅ΡΠ΅. Π€ΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π° ΠΈΠ»ΠΈ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠ°ΠΏΡ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π·Π΅Π»Π΅Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ, Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠΌΠΈ (fixed-function). ΠΠ° ΡΡΠΈΡ ΡΡΠ°ΠΏΠ°Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π½ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π·Π°ΡΠ°Π½Π΅Π΅.
ΠΡΠ°ΠΏΡ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΎΡΠ°Π½ΠΆΠ΅Π²ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ, β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΡΠ°ΠΏΡ (programmable). ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΡ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΡΠ΅ ΡΠ΅ΠΉΠ΄Π΅ΡΡ Π΄Π»Ρ ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΡΡ Π·Π°Π΄Π°Ρ ΠΎΡ ΡΠ΅ΠΊΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»ΡΡΠ΅ΠΉ. ΠΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠ΄Π΅Ρ GPU Π΄Π»Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ°ΠΊ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΡΠ°ΠΏΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΡΠ΅Π»ΡΡΠΈΡ ΠΈ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΈΡΡΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΡΡ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡ. ΠΡΠ»ΠΈ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π³Π»ΡΠ±ΠΈΠ½Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ°ΡΡΡ ΡΠ΅Π½Π΅ΠΉ), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ°ΠΏΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Π½Π° ΡΠΊΡΠ°Π½Π΅: Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°. ΠΠ°Π»Π΅Π΅ ΠΌΡ Π½Π°ΡΡΡΠΎΠΈΠΌ Π½Π΅ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΡΠ°ΠΏΡ, ΡΠΊΠ°Π·Π°Π² ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΡΠ΅ΠΆΠΈΠΌ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ ΠΈ viewport. ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅ΡΠΎΠ².
Π¨Π΅ΠΉΠ΄Π΅ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ
ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΌΠΈ GPU ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠΈΠ΅ ΡΠ΅ΠΉΠ΄Π΅ΡΡ Π² Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΏΠΎΠ»ΡΡΠ°ΡΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅. Π ΡΠΎΠΌΡ ΠΆΠ΅ ΠΏΡΠΎΡΠ»ΠΎΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΠΊΠ°ΠΊ GLSL, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅Π½Π΄ΠΎΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡ Π²Π΅ΡΡΠΌΠ° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ. ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π΄Π»Ρ GPU ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π±ΡΠ» Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΈΡΠΊ, ΡΡΠΎ ΠΊΠΎΠ΄ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ, Π΅ΡΠ΅ Ρ ΡΠΆΠ΅, ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΡΠ΅ΠΉΠ΄Π΅Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ½Π°ΡΠ΅. ΠΡΠΎΡΡΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° SPIR-V ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΠ°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Π²ΡΡΡΠ½ΡΡ. Khronos Π²ΡΠΏΡΡΡΠΈΠ» ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ GLSL Π² SPIR-V. ΠΠ½ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠ΅ΠΉΠ΄Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΡΠ°Π½Π΄Π°ΡΡΡ, ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» SPIR-V Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ SPIR-V Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅ (Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ), Π½ΠΎ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΎΠ³ΠΎ Π΄Π΅Π»Π°ΡΡ. ΠΠΌΠ΅ΡΡΠΎ glslangValidator.exe ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ glslc.exe ΠΎΡ Google. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ glslc Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΡ ΠΆΠ΅ ΡΠΎΡΠΌΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΡΠΎ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ GCC ΠΈΠ»ΠΈ Clang, ΠΈ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, includes. ΠΠ±Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² Vulkan SDK, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ.
ΠΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π²Π΅ΡΡΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ. Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π΄Π²ΡΡ ΠΏΡΠ½ΠΊΡΠ°Ρ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠ΄ GLSL Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ SPIR-V ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ΅ΡΡΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ
ΠΠ΅ΡΡΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΡ Π²Ρ ΠΎΠ΄ΡΡΡΡ Π²Π΅ΡΡΠΈΠ½Ρ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²Π΅ΡΡΠΈΠ½Π½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π² ΠΌΠΈΡΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅, ΡΠ²Π΅Ρ, Π½ΠΎΡΠΌΠ°Π»Ρ ΠΈ ΡΠ΅ΠΊΡΡΡΡΠ½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ. ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ β ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΡ (clip space) ΠΈ Π°ΡΡΠΈΠ±ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΠΎΠΌΡ ΡΠ΅ΠΉΠ΄Π΅ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²Π΅Ρ ΠΈ ΡΠ΅ΠΊΡΡΡΡΠ½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ). ΠΠΎΠ·ΠΆΠ΅ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ°.
ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ΅ΡΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡΠΉ ΠΈΠ· Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π΅ΠΊΡΠΎΡΠ° Π½Π° Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ. ΠΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (normalized device coordinate) β ΡΡΠΎ Π³ΠΎΠΌΠΎΠ³Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ [-1, 1], ΠΈ ΠΏΡΠΎΠ΅ΡΠΈΡΡΡΡΠΈΠ΅ΡΡ Π½Π° ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅:
ΠΡΠ»ΠΈ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ OpenGL, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ° Y ΡΠ΅ΠΏΠ΅ΡΡ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΠΎ ΠΎΡΡΠ°ΠΆΠ΅Π½Π°. Π Π΄Π»Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Z Π·Π°Π΄Π°Π½ ΡΠΎΡ ΠΆΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΡΡΠΎ ΠΈ Π² Direct3D, ΠΎΡ 0 Π΄ΠΎ 1.
ΠΠ»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ, Π° ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Ρ Π²Π΅ΡΡΠΈΠ½ Π² Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠ³ΡΡΡ:
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠ΄Π°Π²Π°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ΅ΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° w Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΎΡ ΠΊΠ»ΠΈΠΏ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΊ ΡΠΊΡΠ°Π½Π½ΠΎΠΌΡ.
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½ΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠΌ Π±ΡΡΠ΅ΡΠ΅, Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° Π² Vulkan ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π΄Π°Π½Π½ΡΠΌΠΈ β Π·Π°Π΄Π°ΡΠ° Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½Π°Ρ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΎΡΠ»ΠΎΠΆΠΈΠΌ ΡΡΠΎ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π° ΡΠΊΡΠ°Π½Π΅ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ. Π ΠΏΠΎΠΊΠ° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ Ρ ΠΈΡΡΠΎΡΡΡ: Π²ΡΡΠ°Π²ΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π²Π΅ΡΡΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ. ΠΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π€ΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ
ΠΠ΅ΡΡΠΈΠ½Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ· Π²Π΅ΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°, ΠΎΠ±ΡΠ°Π·ΡΡΡ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ (ΠΏΠΈΠΊΡΠ΅Π»Π°ΠΌΠΈ) Π½Π° ΡΠΊΡΠ°Π½Π΅. Π€ΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠ²Π΅Ρ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π³Π»ΡΠ±ΠΈΠ½Ρ Π²ΠΎ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅ΡΠ΅ (ΠΈΠ»ΠΈ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅ΡΠ°Ρ ). Π§ΡΠΎΠ±Ρ ΠΎΠΊΡΠ°ΡΠΈΡΡ Π²Π΅ΡΡ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Π² ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ:
Π¦Π²Π΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ
ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΏΡΠΎΡΡΠΎ, ΠΌΠΎΠΆΠ΅Ρ, ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅?
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π½Π΅ΡΡΠΌ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ±Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠ°. Π‘Π½Π°ΡΠ°Π»Π° ΡΠΊΠ°ΠΆΠ΅ΠΌ ΡΠ²Π΅Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡΡΠ΅Ρ
Π²Π΅ΡΡΠΈΠ½. ΠΠ΅ΡΡΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ ΠΌΠ°ΡΡΠΈΠ² ΡΠ²Π΅ΡΠΎΠ²:
Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ²Π΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ Π²ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ Π²ΡΠ²Π΅ΡΡΠΈ ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΠΎ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅Ρ. ΠΠΎΠ±Π°Π²ΠΈΠΌ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠ²Π΅ΡΠ° Π² Π²Π΅ΡΡΠΈΠ½Π½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ Π΅Ρ Π² ΡΡΠ½ΠΊΡΠΈΠΈ main :
ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π΅ΠΌΡ Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ:
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ²
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° shader.vert Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ:
Π ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° shader.frag ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ:
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΡΡΡ ΠΊ glslc.exe Π½Π° ΠΏΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Vulkan SDK. ΠΠ²Π°ΠΆΠ΄Ρ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΠΎ ΡΠ°ΠΉΠ»Ρ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π³ΠΎ.
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΡΡΡ ΠΊ glslc Π½Π° ΠΏΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Vulkan SDK. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠΊΡΠΈΠΏΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ chmod + x compile.sh ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΅Π³ΠΎ.
ΠΡΠΈ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π³ΠΎΠ²ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ» GLSL ΠΈ Π²ΡΠ²Π΅ΡΡΠΈ Π΅Π³ΠΎ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ SPIR-V Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³Π° -o (output).
ΠΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΠΉΠ΄Π΅ΡΠ΅ Π΅ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΎΠΎΠ±ΡΠΈΡ Π²Π°ΠΌ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΠΊΠ°ΠΆΠ΅Ρ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π§ΡΠΎΠ±Ρ Π² ΡΡΠΎΠΌ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ±ΡΠ°ΡΡ ΡΠΎΡΠΊΡ Ρ Π·Π°ΠΏΡΡΠΎΠΉ ΠΎΡΠΊΡΠ΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ° ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² ΠΈ ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΉ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠΊΡΠΈΠΏΡ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ ΡΠ»Π°Π³ΠΎΠ² ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ²Π΅ΡΡΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Π² ΡΠΎΡΠΌΠ°Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π±ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΡΠΎΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² Vulkan SDK Π΅ΡΡΡ libshaderc β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π° GLSL Π² SPIR-V.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ΅ΠΉΠ΄Π΅ΡΠ°
ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΡ SPIR-V Π² Π½Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ. ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π΅ΡΠ½ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈ ΡΡΠΈΡΠ°ΡΡ Π²ΡΠ΅ Π±Π°ΠΉΡΡ Π·Π° ΠΎΠ΄ΠΈΠ½ Π²ΡΠ·ΠΎΠ²:
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π·Π°ΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ» ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΠΌ Π±ΡΡΠ΅Ρ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΠΉΠ΄Π΅ΡΠ½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π±ΡΡΠ΅Ρ Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΠ· Π½Π΅Π³ΠΎ VkShaderModule.
Π ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΠ΅ Π½Π°ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ, ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΉ Π°Π»Π»ΠΎΠΊΠ°ΡΠΎΡ ΠΈ Π²ΡΡ ΠΎΠ΄Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ. ΠΡΡΠ΅Ρ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ:
Π¨Π΅ΠΉΠ΄Π΅ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΡΠΎΠ½ΠΊΠ°Ρ ΠΎΠ±Π΅ΡΡΠΊΠ° Π΄Π»Ρ ΡΠ΅ΠΉΠ΄Π΅ΡΠ½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°, Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ°ΠΉΠ»Π°, ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ Π² Π½Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²ΠΊΠ° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° SPIR-V Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°. ΠΠΎΡΡΠΎΠΌΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ createGraphicsPipeline ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠ»Π°ΡΡΠ°:
Π£Π½ΠΈΡΡΠΎΠΆΠΈΠΌ ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² vkDestroyShaderModule. ΠΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ΄ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠ°Π²Π»Π΅Π½ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ:
Π‘Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΠ΅ΠΉΠ΄Π΅ΡΡ ΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΈΡ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΡΠ°Π΄ΠΈΡΠΌ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ° Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ VkPipelineShaderStageCreateInfo.
Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π»Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠ°ΡΡΠΈΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π½Π°ΠΌΠΈ ΡΡΡΡΠΊΡΡΡΡ. ΠΡΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π½Π°ΠΌ, ΡΡΠΎΠ±Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π½ΠΈΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°.
Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΡΠ°ΠΏΡ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅ΡΠ°. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π½Π΅ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌΡΠΌ ΡΡΠ°ΠΏΠ°ΠΌ.
ΠΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Detroit: Become Human Ρ Playstation 4 Π½Π° PC
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΠ΅ΡΠΈΠΈ ΠΏΠΎΡΡΠΎΠ² ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ³ΡΡ Detroit: Become Human Ρ PlayStation 4 Π½Π° PC.
Detroit: Become Human Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° Π½Π° PlayStation 4 Π² ΠΌΠ°Π΅ 2018 Π³ΠΎΠ΄Π°. ΠΡ Π½Π°ΡΠ°Π»ΠΈ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π΄Π»Ρ PC Π² ΠΈΡΠ»Π΅ 2018 Π³ΠΎΠ΄Π°, Π° Π²ΡΠΏΡΡΡΠΈΠ»ΠΈ Π΅Ρ Π² Π΄Π΅ΠΊΠ°Π±ΡΠ΅ 2019 Π³ΠΎΠ΄Π°. ΠΡΠΎ Π°Π΄Π²Π΅Π½ΡΡΡΠ° Ρ ΡΡΠ΅ΠΌΡ ΠΈΠ³ΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ°ΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΠΆΠ΅ΡΠ½ΡΡ Π»ΠΈΠ½ΠΈΠΉ. ΠΠ½Π° ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ Π³ΡΠ°ΡΠΈΠΊΡ, Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΡΠ°ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Quantic Dream.
3D-Π΄Π²ΠΈΠΆΠΎΠΊ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ:
Detroit: Become Human
ΠΡΠ±ΠΎΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ API
Π£ Π½Π°Ρ ΡΠΆΠ΅ Π±ΡΠ»Π° OpenGL-Π²Π΅ΡΡΠΈΡ Π΄Π²ΠΈΠΆΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΠΈ Π² Π½Π°ΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
ΠΠΎ Π½Π°ΠΌ Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π²ΡΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ³ΡΡ Π½Π° OpenGL:
ΠΡ Π²ΡΠ±ΠΈΡΠ°Π»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ DirectX 12 ΠΈ Vulkan, ΠΈΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΎΡΠ΅Π½Ρ ΡΡ ΠΎΠΆΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Vulkan Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π±Ρ Π½Π°ΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Linux ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΠ΅Π»Π΅ΡΠΎΠ½ΠΎΠ², Π° DirectX 12 ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Microsoft Xbox. ΠΡ Π·Π½Π°Π»ΠΈ, ΡΡΠΎ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΠ±ΠΎΠΈΡ API, Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΡΡΠ° ΡΠ°Π·ΡΠΌΠ½Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ API.
Vulkan ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Windows 7 ΠΈ Windows 8. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Ρ ΠΎΡΠ΅Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Detroit: Become Human Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΈΠ³ΡΠΎΠΊΠΎΠ², ΡΡΠΎ ΡΡΠ°Π»ΠΎ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΡΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π½ΡΠ» ΠΎΠ΄ΠΈΠ½ Π³ΠΎΠ΄, ΠΈ ΡΡΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΆΠ΅ ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ΅Π½, Π²Π΅Π΄Ρ Windows 10 ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠΈΡΠΎΠΊΠΎ!
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΠ°Π·Π½ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ API
OpenGL ΠΈ ΡΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ DirectX ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ GPU. ΠΡΠΈ API ΠΏΡΠΎΡΡΡ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΠΈ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ½ΠΈ ΠΏΠΎΡΡΡΠ°ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΎΠ±ΡΡΠΌ ΡΠ°Π±ΠΎΡΡ, ΡΠΊΡΡΡΡΠΉ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π² Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ 3D-Π΄Π²ΠΈΠΆΠΎΠΊ.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, PlayStation 4 API ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠΉ ΠΈ ΠΎΡΠ΅Π½Ρ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ Β«ΠΆΠ΅Π»Π΅Π·ΡΒ».
Vulkan Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π³Π΄Π΅-ΡΠΎ ΠΏΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅. Π Π½ΡΠΌ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΠ°Π·Π½ΡΡ GPU, Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ Π·Π°Π΄Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ ΠΈΠ»ΠΈ ΠΊΡΡΠ° ΡΠ΅ΠΉΠ΄Π΅ΡΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ ΠΎΡΡΠ°ΡΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ, Π΅Ρ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π΄Π΅Π»Π°ΡΡ Π½Π°ΠΌ! ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ Π½Π° PlayStation, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ ΡΠ΄ΠΎΠ±Π½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ.
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΠΈ
Π¦Π΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ PlayStation 4 β ΡΡΠΎ AMD Jaguar Ρ 8 ΡΠ΄ΡΠ°ΠΌΠΈ. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΎΠ½ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ PC; ΠΎΠ΄Π½Π°ΠΊΠΎ PlayStation 4 ΠΈΠΌΠ΅Π΅Ρ Π²Π°ΠΆΠ½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Β«ΠΆΠ΅Π»Π΅Π·ΡΒ». ΠΡ ΡΡΠΈΡΠ°Π΅ΠΌ, ΡΡΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ API PlayStation 4 Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π΅Π΅, ΡΠ΅ΠΌ Π²ΡΠ΅ API Π½Π° PC. ΠΠ½ ΠΎΡΠ΅Π½Ρ ΠΏΡΡΠΌΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΠΈ ΠΌΠ°Π»ΠΎ ΡΡΠ°ΡΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π²ΠΏΡΡΡΡΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΠΊΠ°Π΄Ρ. ΠΡ Π·Π½Π°Π»ΠΈ, ΡΡΠΎ Π²ΡΡΠΎΠΊΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π½Π° ΡΠ»Π°Π±ΡΡ PC.
ΠΡΡ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π»ΠΎΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ΅ΠΉΠ΄Π΅ΡΡ Π½Π° PlayStation 4 ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΡΠ°Π½Π΅Π΅, ΡΠΎ Π΅ΡΡΡ ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ. ΠΠ° PC Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ³ΡΡ: ΠΈΠ·-Π·Π° Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ GPU ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΡΠ°Π½Π΅Π΅.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Detroit: Become Human Π½Π° PlayStation 4 Ρ ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ². ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΎΡΡ Π±Π΅Π·ΡΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠ½Π½ΡΡ ΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΏΠΎΡΡΠΎΠΌ Π·Π½Π°Π»ΠΈ, ΡΡΠΎ ΡΡΠΎ ΡΡΠ°Π½Π΅Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
ΠΠΎΠ½Π²Π΅ΠΉΠ΅ΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ²
ΠΠ°ΠΊ ΠΌΡ Π·Π½Π°Π΅ΠΌ ΠΏΠΎ Π½Π°ΡΠ΅ΠΌΡ OpenGL-Π΄Π²ΠΈΠΆΠΊΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° PC. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π° ΠΈΠ³ΡΡ ΠΌΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΊΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ GPU Π½Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΠΈΡ ΡΡΠ°Π½ΡΠΈΠΉ. ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΊΡΡΠ° ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π΄Π»Ρ Detroit: Become Human Π·Π°Π½ΡΠ»Π° ΡΠ΅Π»ΡΡ Π½ΠΎΡΡ! ΠΡΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΌΡ ΠΊΡΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π½Π° ΡΡΡΠΎ. ΠΠΎ ΠΈΠ³ΡΠ° Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΡΠΎΡΠΌΠΎΠ·ΠΈΠ»Π°, Π²Π΅Π΄Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π² Π½Π°ΡΠΈΠ²Π½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ΅ΠΉΠ΄Π΅ΡΠ° GPU.
ΠΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ Vulkan Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΡΠ΅ΠΌ OpenGL.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Vulkan Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΡΠ·ΡΠΊ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ HLSL, Π° Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ SPIR-V. SPIR-V ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ½ ΡΡΠ°Π²Π½ΠΈΠΌ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΡΡΠ° ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² OpenGL.
Π OpenGL ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² Π½Π΅ Π·Π½Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ². ΠΡΠ°ΠΉΠ²Π΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ Π²ΡΠ·ΠΎΠ²Π° ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» GPU, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΡΠ·ΠΎΠ² ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Ρ Π½ΠΎΠ²ΡΠΌ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ»Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² CPU.
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΌΡ ΠΏΡΡΠ°Π»ΠΈΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ VkPipelines Π² ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ ΡΠΎΡΠΌΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΡ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ OpenGL. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ VkPipelineCache ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ»ΡΡ, ΠΈ ΡΠΎΡΠΌΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΏΠ°Π΄Π°Π»ΠΎ Π΄ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠΎΡΠΎΠΌ ΠΌΡ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ, ΡΡΠΎ ΡΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ VkPipelines Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° VkPipelineCache Π±ΡΠ» Π½Π΅Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ°ΠΊ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΡΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ.
Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅, ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ VkPipeline Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΈΠ³ΡΡ. ΠΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΡΡΡΠ°Π½ΠΈΠ»ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠΎΡΠΌΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡΡ: Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ VkPipelineCache Π·Π°Π½ΠΈΠΌΠ°Π»Π° ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π£ Π½Π°Ρ ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ΄Π΅ΠΉ ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°:
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ VkPipelines ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π²Π°ΡΡΠΈΡΡΠ΅ΡΡΡ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΎΠ½ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ° AMD Ryzen Threadripper Ρ 64 Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π΅ ΠΌΠΈΠ½ΡΡΡ. ΠΠΎ Π½Π° ΡΠ»Π°Π±ΡΡ PC ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ 20 ΠΌΠΈΠ½ΡΡ.
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π±ΡΠ»ΠΎ Π΄Π»Ρ Π½Π°Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄ΠΎΠ»Π³ΠΎ. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π΅ΡΡ ΡΠΈΠ»ΡΠ½Π΅Π΅ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π±ΡΠ»ΠΎ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ². ΠΠ°ΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅Π΅ ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΠΈΠΌ. ΠΠ»Ρ Detroit: Become Human ΡΡΠΎ Π±ΡΠ»ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΡΠ΄ΠΎΠΆΠ½ΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΡΠ²Π°ΡΡ Π²ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ. ΠΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΠ³ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠ½Π³ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ², Π½ΠΎ Π΄Π»Ρ Detroit: Become Human ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΏΠΎΠ·Π΄Π½ΠΎ.
ΠΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ²
ΠΡ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΠ΅ΡΡΡΡΠΎΠ² Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΈΠΏΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅ΡΡΡΡΠΎΠ²:
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ ΠΌΠ°Π»ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ², ΠΎΠ±ΡΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠ°Π΄ΡΠ°.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ²
ΠΠ°ΠΆΠ΅ ΠΏΡΠΈ ΠΌΠ°Π»ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΡΠ°Π²Π°Π»ΠΎΡΡ ΡΠ·ΠΊΠΈΠΌ ΠΌΠ΅ΡΡΠΎΠΌ. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π±ΠΎΡΠ° Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ², Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Π·Π°ΡΡΠ°ΡΠ½ΡΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Π΄ΡΠ΅ Detroit: Become Human ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΡΡΡΡ ΡΡΡΡΡ ΡΠ΅ΠΊΡΡΡΡ.
ΠΠΎΠ»ΡΡΠΈΠ²ΡΠΈΠ΅ΡΡ ΠΏΡΠΈ ΡΡΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ Π΄Π΅Π»ΡΡΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ ΠΊΠ°Π΄ΡΠΎΠ² β ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎΠΉΠ½ΡΡ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ, Π° Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π²Π΅ΠΊΡΠΎΡΠΎΠ² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΎ ΡΠΊΠΈΠ½Π½ΠΈΠ½Π³ΠΎΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ°Π΄ΡΠ°. ΠΠ°Π±ΠΎΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΡΡ ΠΊΠ°Π΄ΡΠΎΠ², ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ½ΠΎΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ GPU. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Π΄Π΅Π»ΡΡΡ ΠΊ Π³ΡΡΠΏΠΏΠ°ΠΌ ΠΈΠ· ΡΠ΅ΡΡΡΡΡ ΠΊΠ°Π΄ΡΠΎΠ².
Π ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅, ΡΡΠ° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠ½ΠΈΠ·ΠΈΠ»Π° Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² Π½Π° ΠΎΠ΄ΠΈΠ½-Π΄Π²Π° ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²Π΅Π»ΠΈΡΠΈΠ½.
ΠΠ°ΡΡΠΈΠ½Π³ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ²
ΠΠ° ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ ΡΠ΅ΡΠΈΠΈ ΡΡΠ°ΡΠ΅ΠΉ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ. ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΡ ΠΡΠ°ΠΌΠ΅Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅Ρ ΠΎ Π½Π΅ΠΎΠ΄Π½ΠΎΡΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² Π½Π° PC ΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π² ΠΊΠ°ΡΡΠ°Ρ AMD.