Π ΠΎΠ»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° ΠΈΠ³ΡΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ dxGraph (ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 4). ΠΠ½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΡΠ΅Π½Ρ, ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² Π½Π΅ΠΉ. ΠΠ»Π°ΡΡ dxGraph ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
- — vAngle (ΡΠ³ΠΎΠ» ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΊΠ°ΠΌΠ΅ΡΡ);
- — objEffect (ΠΌΠ°ΡΡΠΈΠ² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ID3DXEffect Ρ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°ΠΌΠΈ);
- — objTechnic (ΠΌΠ°ΡΡΠΈΠ² ΡΠ΅Ρ
Π½ΠΈΠΊ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ²);
- — objDev (ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Direct3D);
- — obj (ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° dxObj Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΡΠ΅Π½Ρ);
- — objVertex (ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IDirect3DVertexDeclaration9 Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡΠΈΠ½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠ°).
Π’Π°ΠΊΠΆΠ΅ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ dxGraph ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ initSceneObj Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠ΅Π½Ρ ΠΈ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΡΡΠ΅ΠΊΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ initObj Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π΅Π³ΠΎ ΡΠΈΠΏΠ° Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΡΠ΅ΡΠΊΠ°, Π½Π°Π·Π½Π°ΡΠ°ΡΡΡΡ ΡΡΡΠ΅ΠΊΡΡ ΠΈ ΡΠ΅Ρ
Π½ΠΈΠΊΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π½Π° ΡΡΠ΅Π½Π΅ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΡ
ΠΌΠΈΡΠΎΠ²ΡΡ
ΠΌΠ°ΡΡΠΈΡ. ΠΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ loadShader, Π° Π΄Π»Ρ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠ΅Π½Ρ — renderAll.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΠ΅Π½Ρ ΠΈΠΌΠ΅ΡΡ ΡΡ
ΠΎΠΆΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΡΡΡΠ΅ΠΊΡΠΎΠΌ. ΠΡΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠ²ΠΎΠΉ ΡΡΡΠ΅ΠΊΡ, ΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅Π»ΠΎΠΌ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, ΡΠΎ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΈΠ·Π»ΠΈΡΠ½Π΅ΠΌΡ ΡΠ°ΡΡ
ΠΎΠ΄Ρ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ²ΠΎΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ID3DEffect. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ·Π΄Π°Π½ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Ρ
ΡΠ°Π½ΡΡΠΈΠΉΡΡ Π² Π΄Π²ΠΈΠΆΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π΅Π³ΠΎ.
ΠΠΎ-Π²ΡΠΎΡΡΡ
, Π±ΡΠ΄Π΅Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΡΡΡ ΡΠ°ΡΡ
ΠΎΠ΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ², ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΎΠΉ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π·Π°Π΄Π°ΡΠ΅ΠΉ. ΠΡΠ»ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Π΅ΠΌΡΠΉ ΡΡΡΠ΅ΠΊΡ, ΡΡΠΎ ΡΡΠΊΠΎΡΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π΄Π²ΠΈΠΆΠΊΠ° Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ GraphicModule:
GraphicModule* gm.
ΠΠ°Π»Π΅Π΅, ΠΏΠΎΡΠ»Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Direct3D, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ:
gm = new GraphicModule (dxDev).
ΠΠ»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π½Ρ Π² ΡΠΈΠΊΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ CreateScene. Π Π½Π΅ΠΌ ΠΏΠΎΡΠ»Π΅ Π½Π°ΡΠ°Π»Π° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° BeginScene ΡΡΡΡΠΎΠΉΡΡΠ²Π° dxDev ΠΎΡΠΈΡΠ°Π΅ΡΡΡ Π±ΡΡΠ΅Ρ, Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ renderAll, Π° Π΄Π°Π»Π΅Π΅ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π½Ρ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
Π ΠΎΠ±ΡΠ΅ΠΌ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π° ΡΡΠ΅Π½Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΉΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ°ΠΏΡ:
- — ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π²Π΅ΡΡΠΈΠ½ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΉΠ΄Π΅ΡΠΎΠ²;
- — Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
- — Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΡΡΠ΅ΠΊΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°;
- — Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ΅Ρ
Π½ΠΈΠΊΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°;
- — ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°;
- — Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π²ΠΈΠ΄ΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°;
- — ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠ° Π²Π΅ΡΡΠΈΠ½;
- — Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° renderAll Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π° ΡΡΠ΅Π½Π΅.