╚π≡α ±ΓεΦ∞Φ ≡≤Ωα∞Φ: ╤ετΣαφΦσ ≥≡σ⌡∞σ≡φεπε Φπ≡εΓεπε ΣΓΦµΩα φα ßατσ GLScene
╤≥α≥ⁿ ε∩≤ßδΦΩεΓαφα Γ Σσ± ≥ε∞ φε∞σ≡σ "╚π≡ε∞αφΦΦ" τα 2004 πεΣ.
└Γ≥ε≡ ∞α≥σ≡Φαδα:
╩εφ±≥αφ≥Φφ └≡≥σ∞ⁿσΓ
═σΩε≥ε≡εσ Γ≡σ∞ φαταΣ ∞√ τα≥≡απΦΓαδΦ ≥σ∞≤ ±ετΣαφΦ Ωε∞∩ⁿ■≥σ≡φ√⌡ Φπ≡ Φ ≡α±±Ωατ√ΓαδΦ εß ≤φΦΩαδⁿφε∞ ßσ±∩δα≥φε∞ ≥≡σ⌡∞σ≡φε∞ ΣΓΦµΩσ, φα∩Φ±αφφε∞ φα Delphi - GLScene (ΣΓΦµεΩ ταßΦ≡αΘ≥σ ± φα°σπε CD/DVD). ╥σ∞α ±ετΣαφΦ ∩εδφε÷σφφ√⌡ ≥≡σ⌡∞σ≡φ√⌡ Ωε∞∩ⁿ■≥σ≡φ√⌡ Φπ≡ ß√δα Γα∞ ε≈σφⁿ Φφ≥σ≡σ±φα, ε ≈σ∞ ∞εµφε ß√δε ±≤ΣΦ≥ⁿ ∩ε ΩεδΦ≈σ±≥Γ≤ ∩≡Φ°σΣ°Φ⌡ ∩Φ±σ∞. ╬ΣφαΩε ≥επΣα ∞√ ≡σ°ΦδΦ, ≈≥ε ≡α±±Ωατ√Γα≥ⁿ ε ∩≡επ≡α∞∞Φ≡εΓαφΦΦ ∩εΣ ΣΓΦµεΩ - ±δΦ°Ωε∞ ±δεµφε. ╤ ≥σ⌡ ∩ε≡ Γα° ≤≡εΓσφⁿ τα∞σ≥φε Γετ≡ε± (εß ²≥ε∞ ≥αΩµσ ∞εµφε ±≤ΣΦ≥ⁿ ∩ε ∩Φ±ⁿ∞α∞ Φ ∩ε αΩ≥ΦΓφε±≥Φ φα ⌠ε≡≤∞σ µ≤≡φαδα), Γ√ ±≥αδΦ ßεδσσ ∩εΣΩεΓαφ√ Γ Γε∩≡ε±α⌡ ∩≡επ≡α∞∞Φ≡εΓαφΦ . ╬±εßσφφε ∩ε±δσ ∩≤ßδΦΩα÷ΦΦ ÷ΦΩδα "╩δαΣεΓα ∩≡επ≡α∞∞Φ±≥α".
╤ ²≥επε φε∞σ≡α ∞√ φα≈Φφασ∞ ∩≤ßδΦΩα÷Φ■ ±σ≡ΦΦ ±≥α≥σΘ, Γ Ωε≥ε≡√⌡ Σσ≥αδⁿφε ≡α±±∞ε≥≡Φ∞ ≡ατδΦ≈φ√σ ²≥α∩√ ±ετΣαφΦ ≥≡σ⌡∞σ≡φεΘ Φπ≡√. ┬√ ∩εΓ√±Φ≥σ ±ΓεΦ φαΓ√ΩΦ ∩≡επ≡α∞∞Φ≡εΓαφΦ , Φ, ≈≥ε φατ√Γασ≥± , ταπδ φΦ≥σ τα ταΓσ±≤ ≥αΘφ√, ε≥Σσδ ■∙≤■ ±σ≡ⁿστφ√⌡ ≡ατ≡αßε≥≈ΦΩεΓ Φπ≡ ε≥ ∩≡ε±≥√⌡ ±∞σ≡≥φ√⌡.
─ΓΦµεΩ δ■ßεΘ Φπ≡√ ±ΩδαΣ√Γασ≥± Φτ ∞φεπΦ⌡ Φ ≈α±≥ε φσταΓΦ±Φ∞√⌡ ≈α±≥σΘ-ΩΦ≡∩Φ≈ΦΩεΓ: Ωεφ≥≡εδⁿ ±≥εδΩφεΓσφΦΘ, ⌠ΦτΦ≈σ±Ωα ∞εΣσδⁿ, Φπ≡εΓεΘ Φφ≥σ≡⌠σΘ±, πδαΓφεσ ∞σφ■, ταπ≡≤τΩα ≤≡εΓφσΘ Φ ∞φεπεσ Σ≡≤πεσ. ┼±≥ⁿ ±∩σ÷Φ⌠Φ≈σ±ΩΦσ ΩΦ≡∩Φ≈ΦΩΦ, Ωε≥ε≡√σ φ≤µφ√ ≥εδⁿΩε Σδ ΩαΩεπε-≥ε εΣφεπε µαφ≡α. ═α∩≡Φ∞σ≡, ∞εΣ≤δⁿ ∩επεΣφ√⌡ ΓδσφΦΘ Γαµσφ Φ φ≤µσφ Γ αΓΦα÷Φεφφε∞ ΦδΦ ∞ε≡±Ωε∞ ±Φ∞≤δ ≥ε≡σ, α Γ ±≥≡α≥σπΦΦ ≡σαδⁿφεπε Γ≡σ∞σφΦ εφ Γ≥ε≡ε±≥σ∩σφσφ ΦδΦ Γεεß∙σ φσ φ≤µσφ, α Γ ⌠≤≥ßεδⁿφε∞ ±Φ∞≤δ ≥ε≡σ φΦ Ω ≈σ∞≤ ∞εΣ≤δⁿ Γ√±≥≡σδεΓ. ═ε φσ±ΩεδⁿΩε Σσ± ≥ΩεΓ ΩΦ≡∩Φ≈ΦΩεΓ ∩≡Φ±≤≥±≥Γ≤■≥ Γ δ■ßεΘ Φπ≡σ. ┬ ±σ≡ΦΦ ±≥α≥σΘ ∞√ ≡α±±Ωαµσ∞ ε ΩαµΣε∞ Φτ ≥αΩΦ⌡ ΩΦ≡∩Φ≈ΦΩεΓ, ∩εΩαµσ∞, ΩαΩ εφ ≡σαδΦτ≤σ≥± , Φ ΩαΩ σπε ±Γ τα≥ⁿ ± ε±≥αδⁿφ√∞Φ. ╩ Ωεφ÷≤ ÷ΦΩδα Γ√ ±∞εµσ≥σ Φτ ²≥Φ⌡ ΩΦ≡∩Φ≈ΦΩεΓ ±εß≡α≥ⁿ ±Γε■ ±εß±≥Γσφφ≤■ Ωε∞∩ⁿ■≥σ≡φ≤■ Φπ≡≤ ΣεΓεδⁿφε Γ√±εΩεπε ≤≡εΓφ .
╫≥ε ²≥ε Γ√ ≥≤≥ Σσδασ≥σ?
![╨Φ±.1 ╚φεπΣα ≥≡σ⌡∞σ≡φ√σ ΣΓΦµΩΦ Γ∞σ±≥σ ± φεΓ√∞ ≤≡εΓφσ∞ αß±≥≡αΩ÷ΦΦ ∩≡σΣδαπα■≥ ΣεΓεδⁿφε ²Ωτε≥Φ≈σ±ΩΦΘ Φφ±≥≡≤∞σφ≥α≡ΦΘ, ≈≥εß√ Φ∞ ≤∩≡αΓδ ≥ⁿ.](/file/11552/Igromania_11.ISO/InfoBlock/Igromania/GL-part1/1.jpg) |
╨Φ±.1 ╚φεπΣα ≥≡σ⌡∞σ≡φ√σ ΣΓΦµΩΦ Γ∞σ±≥σ ± φεΓ√∞ ≤≡εΓφσ∞ αß±≥≡αΩ÷ΦΦ ∩≡σΣδαπα■≥ ΣεΓεδⁿφε ²Ωτε≥Φ≈σ±ΩΦΘ Φφ±≥≡≤∞σφ≥α≡ΦΘ, ≈≥εß√ Φ∞ ≤∩≡αΓδ ≥ⁿ. |
─δ ≥σ⌡, Ω≥ε ∩≡ε∩≤±≥Φδ ΩαΩΦσ-≥ε Φτ ∩≡σΣ√Σ≤∙Φ⌡ ∞εΦ⌡ ±≥α≥σΘ (ΦδΦ Σαµσ Γ±σ), ε≥Γσ≈≤ φα ΓετφΦΩ°Φσ ≤ Γα± Γε∩≡ε±√. ╥αΩ ±Ωατα≥ⁿ, φσßεδⁿ°εσ ≥σ⌡φΦ≈σ±Ωεσ Γ±≥≤∩δσφΦσ.
╧ε≈σ∞≤ Delphi? ▌≥α ±≡σΣα ≡ατ≡αßε≥ΩΦ Φ τ√Ω ∩≡επ≡α∞∞Φ≡εΓαφΦ Object Pascal Σε±≥α≥ε≈φε πΦßΩΦσ, ≈≥εß√ ±ετΣα≥ⁿ ∩εδφε÷σφφ≤■ ≥≡σ⌡∞σ≡φ≤■ Φπ≡≤ ∩≡αΩ≥Φ≈σ±ΩΦ δ■ßεπε µαφ≡α ± ±εΓ≡σ∞σφφ√∞ ≤≡εΓφσ∞ π≡α⌠ΦΩΦ. ╠φεπΦσ Γετ≡ατ ≥, ≈≥ε ±≥αφΣα≡≥ε∞ Σσ-⌠αΩ≥ε ≡ατ≡αßε≥ΩΦ Ωε∞∩ⁿ■≥σ≡φ√⌡ Φπ≡ Γδ σ≥± MSVC++ ΦδΦ Σ≡≤πΦσ ±≡σΣ√ φα ε±φεΓσ ╤++. ═ε ∩εΣεßφ√σ ±≥αφΣα≡≥√, ΩαΩ ²≥ε ≈α±≥ε ß√Γασ≥, ±ΩδαΣ√Γα■≥± ±≥Φ⌡ΦΘφε. ═σ ß≤Σσ∞ ±∞σ°ΦΓα≥ⁿ ΣΓα ∩εφ ≥Φ : τ√Ω Φ ±≡σΣα ≡ατ≡αßε≥ΩΦ.
C++, ßστ≤±δεΓφε, ∞ε∙φσσ, ≈σ∞ Object Pascal. ═ε εφ Φ ∞σφσσ Γ√±εΩε≤≡εΓφσΓ√Θ, ≥ε σ±≥ⁿ Γ ≡ατ√ ±δεµφσσ. ─δ φεΓΦ≈ΩεΓ ╤++ ∩εΣ⌡εΣΦ≥ ±δαßε. Object Pascal µσ φσ ≥εδⁿΩε ∩≡ε±≥εΘ, φε Φ Σε±≥α≥ε≈φε πΦßΩΦΘ, ≈≥εß√ φα φσ∞ ∞εµφε ß√δε ≡ατ≡αßε≥α≥ⁿ ∩εδφε÷σφφ≤■ Ωε∞∩ⁿ■≥σ≡φ≤■ Φπ≡≤ ±εΓ≡σ∞σφφεπε ≤≡εΓφ . ╥σ∩σ≡ⁿ ε ±≡σΣα⌡. ╥≤≥ ≥αΩ Ωα≥σπε≡Φ≈φε φσ ±Ωαµσ°ⁿ. ╤≡σΣα ≡ατ≡αßε≥ΩΦ - Σσδε ΓΩ≤±α Φ ∩≡ΦΓ√≈ΩΦ ΩαµΣεπε ΩεφΩ≡σ≥φεπε ∩≡επ≡α∞∞Φ±≥α. ╧εΣσδ■±ⁿ ±ΓεΦ∞ ∞φσφΦσ∞ φα ²≥ε≥ ±≈σ≥. MSVC++ πσφσ≡Φ≡≤σ≥ φσ∞φεπε ßεδσσ ß√±≥≡√Θ ΩεΣ, ≈σ∞ Delphi. ╤εß±≥Γσφφε, φα ²≥ε∞ ∩≡σΦ∞≤∙σ±≥Γα ταΩαφ≈ΦΓα■≥± (∩εΓ≥ε≡■±ⁿ: φα ∞εΘ ±≤ß·σΩ≥ΦΓφ√Θ Φ φΦ Ω ≈σ∞≤ φσ εß τ√Γα■∙ΦΘ Γτπδ Σ). ╩ετ√≡Φ Delphi: ßεδⁿ°α ±Ωε≡ε±≥ⁿ Ωε∞∩Φδ ÷ΦΦ (Γ Σσ± ≥ΩΦ Φ Σαµσ ±ε≥φΦ ≡ατ ß√±≥≡σσ, ≈σ∞ MSVC++), Γ√±εΩεσ Ωα≈σ±≥Γε ±≡σΣ±≥Γ ε≥δαΣΩΦ (Γ ßεδⁿ°Φφ±≥Γσ ±δ≤≈ασΓ Delphi ≤Ωατ√Γασ≥ ≥ε≈φε ≥≤ ±≥≡εΩ≤ ΩεΣα, Γ Ωε≥ε≡εΘ ±εΣσ≡µΦ≥± ε°ΦßΩα, ≥επΣα ΩαΩ MSVC++ ∞εµσ≥ ≤Ωατα≥ⁿ ±≥≡ε≈Ω≤ τα φσ±ΩεδⁿΩε ±≥≡αφΦ÷ ε≥ Φ±Ωε∞εΘ) Φ ≤Σεßφ√Θ Φφ≥σ≡⌠σΘ±.
![╨Φ±.2 ╚φεπΣα ≤≡εΓσφⁿ αß±≥≡αΩ÷ΦΦ ΣΓΦµΩα ΓΩδ■≈ασ≥ Γ ±σß φσ ≥εδⁿΩε εß≡αßε≥Ω≤ π≡α⌠ΦΩΦ Φ τΓ≤Ωα, φε Φ ∩εΣΣσ≡µΩ≤ ∞≤δⁿ≥Φ∩δσσ≡α. ╥αΩεΓ, φα∩≡Φ∞σ≡, Fly 3D, ≡στ≤δⁿ≥α≥ ≡αßε≥√ Ωε≥ε≡επε Γ√ ΓΦΣΦ≥σ φα ±Ω≡Φφ°ε≥σ.](/file/11552/Igromania_11.ISO/InfoBlock/Igromania/GL-part1/2.jpg) |
╨Φ±.2 ╚φεπΣα ≤≡εΓσφⁿ αß±≥≡αΩ÷ΦΦ ΣΓΦµΩα ΓΩδ■≈ασ≥ Γ ±σß φσ ≥εδⁿΩε εß≡αßε≥Ω≤ π≡α⌠ΦΩΦ Φ τΓ≤Ωα, φε Φ ∩εΣΣσ≡µΩ≤ ∞≤δⁿ≥Φ∩δσσ≡α. ╥αΩεΓ, φα∩≡Φ∞σ≡, Fly 3D, ≡στ≤δⁿ≥α≥ ≡αßε≥√ Ωε≥ε≡επε Γ√ ΓΦΣΦ≥σ φα ±Ω≡Φφ°ε≥σ. |
╧ε≈σ∞≤ GLScene? ▀ ∩εΓΦΣαδ Φ ∩σ≡σ∩≡εßεΓαδ ∞φεπε ßσ±∩δα≥φ√⌡ ≥≡σ⌡∞σ≡φ√⌡ ΣΓΦµΩεΓ, φε ε±≥αφεΓΦδ± Φ∞σφφε φα ²≥ε∞. ┼πε ±α∞εσ πδαΓφεσ ∩≡σΦ∞≤∙σ±≥Γε: GLScene ∩ε±≥ε φφε ±εΓσ≡°σφ±≥Γ≤σ≥± . ╨ατ≡αßε≥≈ΦΩΦ φσ ∩ε±≥αΓΦδΦ ≥ε≈Ω≤ Φ, ±Ωε≡σσ Γ±σπε, φσ ∩ε±≥αΓ ≥ σσ φΦΩεπΣα. ─ΓΦµεΩ ∩ε±≥ε φφε ²Γεδ■÷ΦεφΦ≡≤σ≥ Φ Γ∩Φ≥√Γασ≥ Γ ±σß Γ±σ φεΓΦφΩΦ ≥σ⌡φΦ≈σ±Ωεπε ∩≡επ≡σ±±α. ▌≥ε σΣΦφ±≥Γσφφ√Θ Φτ ΦτΓσ±≥φ√⌡ ∞φσ ßσ±∩δα≥φ√⌡ ΣΓΦµΩεΓ, ∩≡ε Ωε≥ε≡√Θ φΦΩεπΣα φσ ±Ωαµ≤≥ "≤±≥α≡σδ". ═σ±ΩεδⁿΩε ±ε≥σφ ∩ε±≥ε φφε ≡αßε≥α■∙Φ⌡ φαΣ "ΣΓΦπα≥σδσ∞" ²φ≥≤τΦα±≥εΓ φσ Σε∩≤±≥ ≥ ²≥επε. ╩αΩ ∩≡Φ∞σ≡: Γ ΣΓΦµΩσ ∩εΣΣσ≡µΩα ±α∞√⌡ ∩σ≡Γ√⌡ °σΘΣσ≡εΓ ∩ε ΓΦδα±ⁿ ≤µσ ≈σ≡στ φσ±ΩεδⁿΩε ∞σ± ÷σΓ ∩ε±δσ ≥επε, ΩαΩ NVidia Γ√∩≤±≥Φδα ±εε≥Γσ≥±≥Γ≤■∙Φσ Φφ±≥≡≤∞σφ≥αδⁿφ√σ ±≡σΣ±≥Γα.
┼∙σ εΣφε ∩≡σΦ∞≤∙σ±≥Γε: Γ Ωε∞∩δσΩ≥σ ± GLScene ∩ε±≥αΓδ ■≥± σπε ∩εδφ√σ Φ±⌡εΣφΦΩΦ. ═εΓΦ≈Ωα∞ ²≥ε≥ ⌠αΩ≥, φαΓσ≡φεσ, Γ≡ Σ δΦ ß≤Σσ≥ ∩εδστσφ. ╒ε≥ ∩ετφαΩε∞Φ≥ⁿ± ± Φ±⌡εΣφΦΩα∞Φ, φα∩Φ±αφφ√∞Φ ≡≤ΩεΘ ∩≡ε⌠σ±±Φεφαδα - ²≥ε ∞φεπε ±≥εΦ≥. └ Γε≥ ß√Γαδ√σ ∩≡επ≡α∞∞Φ±≥√ ≈≤Γ±≥Γ≤■≥ ε±φεΓφεΘ ±∞√±δ ²≥Φ⌡ ±δεΓ: ΓσΣⁿ εφΦ ±∞επ≤≥ ∩σ≡σΩ≡αΦΓα≥ⁿ ΣΓΦµεΩ, ΩαΩ Φ∞ ΓτΣ≤∞ασ≥± . ┼ΣΦφ±≥Γσφφεσ ≤±δεΓΦσ Γ ±εε≥Γσ≥±≥ΓΦΦ ± δΦ÷σφτΦσΘ MPL: δ■ß√σ Φτ∞σφσφΦ Γ Φ±⌡εΣφΦΩα⌡ Σεδµφ√ ß√≥ⁿ Σε±≥≤∩φ√ Ωεε≡ΣΦφα≥ε≡≤ ∩≡εσΩ≥α (±σΘ≈α± Ωεε≡ΣΦφα≥ε≡ - ▌≡ΦΩ ├≡αφµ). ┬Σ≡≤π Γα° ΩεΣ σ∙σ Ωε∞≤-φΦß≤Σⁿ ∩≡ΦπεΣΦ≥± ?!
═σ±∞ε≥≡ φα ≥ε, ≈≥ε Γ±σ ∩≡Φ∞σ≡√ ΩεΣα, Ωε≥ε≡√σ ß≤Σ≤≥ ∩≡ΦΓεΣΦ≥ⁿ± Γ ²≥ε∞ ÷ΦΩδσ ±≥α≥σΘ, ß≤Σ≤≥ φα∩Φ±αφ√ φα Delphi ± ∩≡Φ∞σφσφΦσ∞ GLScene, εφΦ ß≤Σ≤≥ ∩εδστφ√ Φ ≥σ∞, Ω≥ε ∩≡επ≡α∞∞Φ≡≤σ≥ φα Σ≡≤πΦ⌡ τ√Ωα⌡ Φ ± Σ≡≤πΦ∞Φ π≡α⌠Φ≈σ±ΩΦ∞Φ ßΦßδΦε≥σΩα∞Φ. ┬σΣⁿ εß∙Φσ ∩≡Φφ÷Φ∩√ ±ετΣαφΦ π≡α⌠Φ≈σ±Ωεπε ΣΓΦµΩα φσ ταΓΦ± ≥ φΦ ε ≥επε, φΦ ε≥ Σ≡≤πεπε. ╚≥αΩ... ∞√ φα≈Φφασ∞.
╟α≈σ∞ φ≤µσφ ≥≡σ⌡∞σ≡φ√Θ ΣΓΦµεΩ?
![╨Φ±.3 Delphi+GLScene ù ΦΣσαδⁿφα ±≡σΣα ≡ατ≡αßε≥ΩΦ Ωε∞∩ⁿ■≥σ≡φ√⌡ Φπ≡ Σδ φεΓΦ≈ΩεΓ](/file/11552/Igromania_11.ISO/InfoBlock/Igromania/GL-part1/3.jpg) |
╨Φ±.3 Delphi+GLScene ù ΦΣσαδⁿφα ±≡σΣα ≡ατ≡αßε≥ΩΦ Ωε∞∩ⁿ■≥σ≡φ√⌡ Φπ≡ Σδ φεΓΦ≈ΩεΓ |
╥εΓα≡Φ∙Φ φεΓΦ≈ΩΦ, ±ε±≡σΣε≥ε≈ⁿ≥σ±ⁿ! ┬ετ∞εµφε, ≥ε, ≈≥ε ±σΘ≈α± ±Ωαµ≤, ± ∩σ≡Γεπε ≡ατα ß≤Σσ≥ φσ ε≈σφⁿ ∩εφ ≥φε. ╬ß τα≥σδⁿφε ∩σ≡σ≈Φ≥αΘ≥σ Φ ΓφΦΩφσ≥σ: ²≥ε εΣΦφ Φτ ε±φεΓφ√⌡ ∩≡Φφ÷Φ∩εΓ ∩≡επ≡α∞∞Φ≡εΓαφΦ Γεεß∙σ Φ ≡ατ≡αßε≥ΩΦ ±δεµφ√⌡ ±Φ±≥σ∞ (α Φπ≡α - ²≥ε ±δεµφα ±Φ±≥σ∞α) Γ ≈α±≥φε±≥Φ. ╧≡σΣ±≥αΓⁿ≥σ ±σßσ ΩαΩ≤■-φΦß≤Σⁿ ∩≡εc≥σφⁿΩ≤■ Φπ≡≤. ╧Φφπ-∩εφπ, Ω ∩≡Φ∞σ≡≤. ╧≡επ≡α∞∞Φ±≥ φα∩Φ±αδ σπε φα ≈Φ±≥ε∞ OpenGL, Φ±⌡εΣφΦΩΦ ≤∞σ±≥ΦδΦ±ⁿ ±≥≡εΩ ²ΣαΩ Γ 200. ╫≥ε ≥α∞ ß≤Σσ≥ ΣΓΦµΩε∞, α ≈≥ε ε±φεΓφ√∞ ΩεΣε∞ Φπ≡√? ╥αΩ ∩≡ ∞ε ±≡ατ≤ Φ φσ ±Ωαµσ°ⁿ... └ σ±δΦ ∩εΣ≤∞α≥ⁿ: ≥αΩεσ ≡ατΣσδσφΦσ φα ΣΓΦµεΩ Φ ε±φεΓφεΘ ΩεΣ Γεεß∙σ φσ φ≤µφε.
╥σ∩σ≡ⁿ ∩≡σΣ±≥αΓⁿ≥σ, ≈≥ε ∞√ ⌡ε≥Φ∞ ±Σσδα≥ⁿ ßεδσσ ΦδΦ ∞σφσσ ±σ≡ⁿστφ√Θ 3D action (Σσ± ≥ΩΦ ≥√± ≈ ±≥≡εΩ ΩεΣα). ╚ ß≤Σσ∞ ∞√ ∩≡επ≡α∞∞Φ≡εΓα≥ⁿ ≥αΩΦ∞ µσ ±∩ε±εßε∞, ΩαΩ σ±δΦ ß√ ∞√ ΣσδαδΦ ≥ε≥ ±α∞√Θ ∩Φφπ-∩εφπ. ╚ ±Ωε≡ε τα∩≤≥ασ∞± ! ─α, ²≥ε≥ ΩεΣ ß≤Σσ≥ ß√±≥≡√∞, ≥α∞ φσ ß≤Σσ≥ φΦ≈σπε δΦ°φσπε, φε... φΦ Γ± ΩΦΘ ∩≡επ≡α∞∞Φ±≥ ±∞εµσ≥ Σε∩Φ±α≥ⁿ σπε Σε Ωεφ÷α. └ ε°ΦßΩΦ Γ ≥αΩε∞ ∩δε≥φε∞ ΩεΣσ Φ±Ωα≥ⁿ - ±≤∙ΦΘ αΣ. ╟φα≈Φ≥, σπε φαΣε ΩαΩ-≥ε ≤∩ε≡ Σε≈Φ≥ⁿ. ╧≡ε∙σ Γ±σπε ²≥ε ±Σσδα≥ⁿ ± ∩ε∞ε∙ⁿ■ Γ√ΣσδσφΦ ≤≡εΓφσΘ αß±≥≡αΩ÷ΦΦ.
╙≡εΓσφⁿ αß±≥≡αΩ÷ΦΦ - ²≥ε εΣφε Φτ ΓαµφσΘ°Φ⌡ ∩εφ ≥ΦΘ ∞εΣ≤δⁿφεπε ∩≡επ≡α∞∞Φ≡εΓαφΦ . ╧≡σΣ±≥αΓⁿ≥σ, ≈≥ε Γ√ ╤≥≡εΦ≥σδⁿ, Φ Γα∞ φ≤µφε ∩ε±≥≡εΦ≥ⁿ Σε∞. ┬√ ε∩σ≡Φ≡≤σ≥σ ΩΦ≡∩Φ≈α∞Φ: ßσ≡σ≥σ ΩΦ≡∩Φ≈, ΩδαΣσ≥σ σπε φα ±≥≡ε ∙≤■± ±≥σφ≤, φα∞ατ√Γασ≥σ ≡α±≥Γε≡ε∞, ßσ≡σ≥σ ±δσΣ≤■∙ΦΘ ΩΦ≡∩Φ≈... ╩Φ≡∩Φ≈Φ -
![╨Φ±.4 ╤σΘ≈α± Φπ≡εΩ φαµ∞σ≥ φα Ωφε∩Ω≤, Φ Γ ∩≤≥ⁿ ≤±≥≡σ∞ ≥± Σσ± ≥ΩΦ ∩≤δⁿ Γ ±σΩ≤φΣ≤. └ ≈≥εß√ Φπ≡α φσ ≥ε≡∞ετΦδα, εφΦ φσ ß≤Σ≤≥ ±ετΣαΓα≥ⁿ± ∩≡ ∞ε Φτ ΓετΣ≤⌡α, α ∩σ≡σφσ±≤≥± ±■Σα Φτ τα²Ω≡αφφεπε αΩΩ≤∞≤δ ≥ε≡α.](/file/11552/Igromania_11.ISO/InfoBlock/Igromania/GL-part1/4.jpg) |
╨Φ±.4 ╤σΘ≈α± Φπ≡εΩ φαµ∞σ≥ φα Ωφε∩Ω≤, Φ Γ ∩≤≥ⁿ ≤±≥≡σ∞ ≥± Σσ± ≥ΩΦ ∩≤δⁿ Γ ±σΩ≤φΣ≤. └ ≈≥εß√ Φπ≡α φσ ≥ε≡∞ετΦδα, εφΦ φσ ß≤Σ≤≥ ±ετΣαΓα≥ⁿ± ∩≡ ∞ε Φτ ΓετΣ≤⌡α, α ∩σ≡σφσ±≤≥± ±■Σα Φτ τα²Ω≡αφφεπε αΩΩ≤∞≤δ ≥ε≡α. |
Γα° ≤≡εΓσφⁿ αß±≥≡αΩ÷ΦΦ. ╥σ∩σ≡ⁿ ∩≡σΣ±≥αΓⁿ≥σ, ≈≥ε Γ√ - ╟α±≥≡εΘ∙ΦΩ. ╚ Γα∞ φ≤µφε ∩ε±≥≡εΦ≥ⁿ ∞ΦΩ≡ε≡αΘεφ. ┬√ πεΓε≡Φ≥σ ±≥≡εΦ≥σδ■, πΣσ ±≥≡εΦ≥ⁿ Σε∞α, ΩαΩΦσ Σε∞α ±φε±Φ≥ⁿ. ─ε∞ - ²≥ε Γα° ≤≡εΓσφⁿ αß±≥≡αΩ÷ΦΦ. ┴√δε ß√ ±≥≡αφφε, σ±δΦ ß√ Γ√ ≤Ωατ√ΓαδΦ ±≥≡εΦ≥σδ■, ΩαΩεΘ ΩΦ≡∩Φ≈ Ω≤Σα Ωδα±≥ⁿ. ┬√ ±ΩαταδΦ: Γε≥ τΣσ±ⁿ ß≤Σσ≥ Σε∞. ┬±σ ε±≥αδⁿφ√σ ταßε≥√ ßσ≡σ≥ φα ±σß ╤≥≡εΦ≥σδⁿ. ═≤ α ≥σ∩σ≡ⁿ ∩≡σΣ±≥αΓⁿ≥σ, ≈≥ε Γ√ ╠²≡ πε≡εΣα. ╚ Γα∞ φσεß⌡εΣΦ∞ε Σα≥ⁿ ταΣαφΦσ ≥εδ∩σ ╟α±≥≡εΘ∙ΦΩεΓ Ω ≥αΩε∞≤-≥ε πεΣ≤ Σα≥ⁿ πε≡εΣ≤ ±≥εδⁿΩε-≥ε φεΓεπε µΦδⁿ . ┬≡ Σ δΦ Γ√ ß≤Σσ≥σ δΦ≈φε ∩δαφΦ≡εΓα≥ⁿ, πΣσ ΩαΩεΘ Σε∞ Σεδµσφ ±≥ε ≥ⁿ. ▌≥ε ≡αßε≥α τα±≥≡εΘ∙ΦΩα. ╙≡εΓσφⁿ αß±≥≡αΩ÷ΦΦ ∞²≡α - εß·σ∞ µΦδεπε ⌠εφΣα, Ωε≥ε≡√Θ ∞εµφε ≤ΓσδΦ≈ΦΓα≥ⁿ, ∞εµφε ≤∞σφⁿ°α≥ⁿ, α ΩαΩ ²≥ε ß≤Σσ≥ Γ√∩εδφ ≥ⁿ± - Σσδε Σσ± ≥εσ. ╧ε ßεδⁿ°ε∞≤ ±≈σ≥≤ φα ²≥ε∞ ≤≡εΓφσ αß±≥≡αΩ÷ΦΦ Γ±σ ≡αΓφε, Φτ ≈σπε ±≥≡ε ≥± Σε∞α: ⌡ε≥ⁿ Φτ ΩΦ≡∩Φ≈σΘ, ⌡ε≥ⁿ Φτ ßΦΓφσΘ ∞α∞εφ≥α.
![╨Φ±.5 ╧≡Φ∞σ≡ Mushroom Φτ Ωε∞∩δσΩ≥α GLScene ∩≡σΩ≡α±φε Φδδ■±≥≡Φ≡≤σ≥ ∩≡Φ∞σφσφΦσ ∩≡εΩ±Φ-εß·σΩ≥εΓ.](/file/11552/Igromania_11.ISO/InfoBlock/Igromania/GL-part1/5.jpg) |
╨Φ±.5 ╧≡Φ∞σ≡ Mushroom Φτ Ωε∞∩δσΩ≥α GLScene ∩≡σΩ≡α±φε Φδδ■±≥≡Φ≡≤σ≥ ∩≡Φ∞σφσφΦσ ∩≡εΩ±Φ-εß·σΩ≥εΓ. |
╚ ≤ ╠²≡α Γ ±∩Φ±Ωσ Ωε∞αφΣ ∩≡ε±≥ε φσ ∞εµσ≥ ß√≥ⁿ "╧εδεµΦ≥ⁿ ΩΦ≡∩Φ≈", ⌡ε≥ δ■ßα σπε Ωε∞αφΣα ≈σ≡στ φσ±ΩεδⁿΩε ≤≡εΓφσΘ αß±≥≡αΩ÷ΦΦ Ω ²≥ε∞≤ Φ ∩≡ΦΓσΣσ≥.
┬ ßεδσσ ΦδΦ ∞σφσσ ±δεµφεΘ Ωε∞∩ⁿ■≥σ≡φεΘ ∩≡επ≡α∞∞σ ΦδΦ Φπ≡σ - ≥ε µσ ±α∞εσ. ╩αµΣ√Θ ≤≡εΓσφⁿ αß±≥≡αΩ÷ΦΦ ε≥Γσ≈ασ≥ τα ±Γε■ ≈α±≥ⁿ ≡αßε≥√, ε∩Φ≡α ±ⁿ φα Γετ∞εµφε±≥Φ ßεδσσ φΦτΩεπε ≤≡εΓφ . ╩αµΣ√Θ ≤≡εΓσφⁿ αß±≥≡αΩ÷ΦΦ εßσ±∩σ≈ΦΓασ≥ ßεδσσ Γ√±εΩε∞≤ ≤≡εΓφ■ ≤Σεßφ√Θ Φφ≥σ≡⌠σΘ± Σδ ≡αßε≥√ ± εß·σΩ≥α∞Φ. ┬ Ωε∞∩ⁿ■≥σ≡φεΘ Φπ≡σ φΦµφΦΘ ≤≡εΓσφⁿ αß±≥≡αΩ÷ΦΦ - ²≥ε τ√Ω ∩≡επ≡α∞∞Φ≡εΓαφΦ (⌡ε≥ φα ±α∞ε∞ Σσδσ, ∞εµφε Ωε∩φ≤≥ⁿ σ∙σ πδ≤ßµσ - Σε µσδστα). ─αδσσ ΦΣ≤≥ Ωε∞αφΣ√ OpenGL API (σ±δΦ ∞√ Φ∞σφφε ± σπε ∩ε∞ε∙ⁿ■ ∩≡επ≡α∞∞Φ≡≤σ∞). ═α ²≥ε∞ ≤≡εΓφσ ∞√ ∞εµσ∞ ε≥Σα≥ⁿ Ωε∞αφΣ≤ Γ≡εΣσ "φα≡Φ±εΓα≥ⁿ ∩εδΦπεφ" Φ "∩ε∞σφ ≥ⁿ ∞σ±≥α∞Φ ΓΦΣΦ∞≤■ Φ ≥σφσΓ≤■ ≈α±≥Φ ΓΦΣσεß≤⌠σ≡α". ╧ε≥ε∞ - Ωε∞αφΣ√ GLScene. ═α ²≥ε∞ ≤≡εΓφσ ∞√ ∞εµσ∞ Σα≥ⁿ Ωε∞αφΣ√ Γ≡εΣσ "∩ε±≥≡εΦ≥ⁿ Ω≤ß", "ταπ≡≤τΦ≥ⁿ ∞εΣσδⁿ Γ ⌠ε≡∞α≥σ 3ds" Φ "φαδεµΦ≥ⁿ φα ∞εΣσδⁿ ≥αΩ≤■-≥ε ≥σΩ±≥≤≡≤". └ Γε≥ Σαδⁿ°σ -Φπ≡εΓεΘ ΣΓΦµεΩ. ╚, φαΩεφσ÷, Φπ≡εΓεΘ ΩεΣ, Ωε≥ε≡√Θ ∞εµσ≥ ΣαΓα≥ⁿ Φπ≡εΓε∞≤ ΣΓΦµΩ≤ Ωε∞αφΣ√ Γ≡εΣσ "ταπ≡≤τΦ≥ⁿ ≤≡εΓσφⁿ", "Γ√±≥≡σδΦ≥ⁿ ≥αΩΦ∞-≥ε ∩σ≡±εφαµσ∞ Φτ ≥αΩεπε-≥ε ε≡≤µΦ " Φ "∩εΩατα≥ⁿ τα±≥αΓε≈φ√Θ ≡εδΦΩ". ┬ ΦΣσαδⁿφε∞ ±δ≤≈ασ ΩαµΣ√Θ ≤≡εΓσφⁿ αß±≥≡αΩ÷ΦΦ ∩εδⁿτ≤σ≥± Ωε∞αφΣα∞Φ ≥εδⁿΩε ∩≡σΣ√Σ≤∙σπε ≤≡εΓφ . ═σ Γ±σπΣα ²≥ε Γετ∞εµφε. ═ε Ω ²≥ε∞≤ φαΣε ±≥≡σ∞Φ≥ⁿ± , ≥αΩ ΩαΩ Γ ≥αΩε∞ ±δ≤≈ασ ΩεΣ ß≤Σσ≥ ß√±≥≡√∞, ≤Σεßφ√∞ Φ δσπΩε ≈Φ≥ασ∞√∞.
─Φφα∞Φ≈σ±Ωεσ ±ετΣαφΦσ εß·σΩ≥εΓ
╠√ ≡α±±∞ε≥≡σδΦ Γσ≡≥ΦΩαδⁿφ≤■ ε≡παφΦτα÷Φ■ Ωε∞∩ⁿ■≥σ≡φεΘ Φπ≡√. ═ε ΩαµΣ√Θ ≤≡εΓσφⁿ αß±≥≡αΩ÷ΦΦ ∞εµφε ≡ατΣσδΦ≥ⁿ φα ±∞√±δεΓ√σ ßδεΩΦ - ∞εΣ≤δΦ. ─σδσφΦσ ²≥ε φσεß τα≥σδⁿφε Φ Γ±σπΣα ß≤Σσ≥ ≈Φ±≥ε ≤±δεΓφ√∞, ∩≡ε±≥ε ≥αΩ ∩≡ε∙σ ∩≡επ≡α∞∞Φ≡εΓα≥ⁿ. ╤σπεΣφ ∞√ ≡ατßσ≡σ∞ ∞αδσφⁿΩΦΘ, φε ε≈σφⁿ Γαµφ√Θ ∞εΣ≤δⁿ-ΩΦ≡∩Φ≈ΦΩ - ΣΦφα∞Φ≈σ±Ωεσ ±ετΣαφΦσ εß·σΩ≥εΓ, Ωε≥ε≡√Θ ∩≡Φ±≤≥±≥Γ≤σ≥ Γε Γ±σ⌡ ßστ Φ±Ωδ■≈σφΦ Φπ≡α⌡.
╧≡σΣ∩εδεµΦ∞, Γ√ ±ετΣασ≥σ ∞εΣ≤δⁿ Γεε≡≤µσφΦ Φ ⌡ε≥Φ≥σ τα∩≡επ≡α∞∞Φ≡εΓα≥ⁿ ε≈σ≡σΣⁿ Φτ ∩≤δσ∞σ≥α. ┬±σ ß√ φΦ≈σπε, φε ε≥Ω≤Σα Γ√ τφασ≥σ, ±ΩεδⁿΩε Φπ≡εΩ ∞εµσ≥ Γ√∩≤±≥Φ≥ⁿ ∩≤δⁿ τα Γ±■ Φπ≡≤? ╫σ≡στ ╨σΣαΩ≥ε≡ ╬ß·σΩ≥εΓ Γ IDE GLScene ∞εµφε ±ετΣαΓα≥ⁿ δ■ß√σ εß·σΩ≥√, φε
![╨Φ±.6 ╦σ±, ≡σαδΦτεΓαφφ√Θ ∩≡εΩ±Φ-εß·σΩ≥α∞Φ. ╟α∞σ≥ⁿ≥σ, ≈≥ε Γ±σ Σσ≡σΓⁿ ≡ατφ√σ ∩ε ≡ατ∞σ≡≤. ╬≥ εß·σΩ≥α-Φ±≥ε≈φΦΩα εß·σΩ≥ Ωδεφ ∞εµσ≥ φα±δσΣεΓα≥ⁿ ≥εδⁿΩε φσεß⌡εΣΦ∞√σ ²δσ∞σφ≥√, Γ Σαφφε∞ ±δ≤≈ασ ù πσε∞σ≥≡Φ■. └ ≡ατ∞σ≡√ Γ±σ⌡ ∩≡εΩ±Φ-εß·σΩ≥εΓ ΦφΣΦΓΦΣ≤αδⁿφ√.](/file/11552/Igromania_11.ISO/InfoBlock/Igromania/GL-part1/7.jpg) |
╨Φ±.6 ╦σ±, ≡σαδΦτεΓαφφ√Θ ∩≡εΩ±Φ-εß·σΩ≥α∞Φ. ╟α∞σ≥ⁿ≥σ, ≈≥ε Γ±σ Σσ≡σΓⁿ ≡ατφ√σ ∩ε ≡ατ∞σ≡≤. ╬≥ εß·σΩ≥α-Φ±≥ε≈φΦΩα εß·σΩ≥ Ωδεφ ∞εµσ≥ φα±δσΣεΓα≥ⁿ ≥εδⁿΩε φσεß⌡εΣΦ∞√σ ²δσ∞σφ≥√, Γ Σαφφε∞ ±δ≤≈ασ ù πσε∞σ≥≡Φ■. └ ≡ατ∞σ≡√ Γ±σ⌡ ∩≡εΩ±Φ-εß·σΩ≥εΓ ΦφΣΦΓΦΣ≤αδⁿφ√. |
≥εδⁿΩε σ±δΦ Γ√ ≈σ≥Ωε τφασ≥σ, ±ΩεδⁿΩε Φ ΩαΩΦ⌡ εß·σΩ≥εΓ Γα∞ φ≤µφε. ┬ ßεδⁿ°Φφ±≥Γσ ±δ≤≈ασΓ ²≥ε φσ∩≡Φσ∞δσ∞ε. ╩ ∩≡Φ∞σ≡≤, ≤ Γα± Γ Φπ≡σ σ±≥ⁿ 20 ≤≡εΓφσΘ, ≤ ΩαµΣεπε ≤≡εΓφ - ±ΓεΘ φαßε≡ εß·σΩ≥εΓ. ╚ ≈≥ε µσ, ±ετΣαΓα≥ⁿ ∩σ≡σΣ φα≈αδε∞ Φπ≡√ Γ±σ εß·σΩ≥√ Γ±σ⌡ ≤≡εΓφσΘ? ▌≥ε Σεδπε, Σα Φ ταΘ∞σ≥ επ≡ε∞φεσ ΩεδΦ≈σ±≥Γε ∩α∞ ≥Φ. ┼ΣΦφ±≥Γσφφ√Θ Γ√⌡εΣ - ±ετΣαΓα≥ⁿ εß·σΩ≥√ ∩≡ ∞ε Γε Γ≡σ∞ Φπ≡√, ΣΦφα∞Φ≈σ±ΩΦ. ┬ GLScene ΣΦφα∞Φ≈σ±Ωεσ ±ετΣαφΦσ δ■ßεπε εß·σΩ≥α ±ε±≥εΦ≥ Φτ ΣΓ≤⌡ ±≥αΣΦΘ: ±ετΣαφΦ ²Ωτσ∞∩δ ≡α Ωδα±±α ²≥επε εß·σΩ≥α Φ ∩≡Φ±ΓεσφΦσ σ∞≤ φσεß⌡εΣΦ∞√⌡ ±ΓεΘ±≥Γ. ┬ετⁿ∞σ∞ ≤µσ ≤∩ε∞ΦφαΓ°ΦΘ± ∩≡Φ∞σ≡ ± ε≈σ≡σΣ ∞Φ ≤ ∩≤δσ∞σ≥α Φ ΣΦφα∞Φ≈σ±ΩΦ ±ετΣαΣΦ∞ ∩≤δ■. ╧≡σΣ∩εδεµΦ∞, ∩≤δ ≤ φα± ß≤Σσ≥ ∩≡ε∞≥ε-±⌠σ≡εΘ. ╟α ±⌠σ≡√ Γ GLScene ε≥Γσ≈ασ≥ Ωδα±± TGLSphere. ╩αταδε±ⁿ ß√, ∞εµφε φα∩Φ±≥α≥ⁿ ≥αΩ:
Sphere:=TGLSphere.Create
╬ΣφαΩε Ωε∞αφΣα ≡αßε≥α≥ⁿ φσ ß≤Σσ≥, ≥αΩ ΩαΩ ΩαµΣε∞≤ εß·σΩ≥≤ Γ GLScene φαΣε τα≡σπΦ±≥≡Φ≡εΓα≥ⁿ± Γ ε≈σ≡σΣΦ εß·σΩ≥εΓ. ╩≡ε∞σ ≥επε, εß·σΩ≥ φσδⁿτ ±ετΣα≥ⁿ Γ "∩≤±≥ε≥σ", εφ Σεδµσφ ß√≥ⁿ ∩≡ΦΓ ταφ Ω ΩαΩε∞≤-≥ε εß·σΩ≥≤ ßεδσσ Γ√±εΩεπε ≤≡εΓφ . ╩ε≡φσΓεΘ εß·σΩ≥ ±α∞επε Γ√±εΩεπε ≤≡εΓφ - glscene1.Objects (σ±δΦ εß·σΩ≥ Ωε∞∩εφσφ≥α TGLScene ≤ Γα± φατ√Γασ≥± glscene1). ╧≡αΓΦδⁿφ√Θ Γα≡Φαφ≥:
Sphere:=TGLSphere (glscene1.Objects.AddNewChild(TGLSphere))
╨ατßσ≡σ∞ ²≥≤ ±≥≡ε≈Ω≤ ∩ε ≈α±≥ ∞. ╙ Ωε≡φσΓεπε εß·σΩ≥α glscene1.Objects ∞√ Γ√τ√Γασ∞ ∞σ≥εΣ AddNewChild, Ωε≥ε≡√Θ ΣεßαΓδ σ≥ Γ Ωε≡σφⁿ εß·σΩ≥ Ωδα±±α, ≤Ωαταφφ√Θ Γ ∩α≡α∞σ≥≡σ (Γ Σαφφε∞ ±δ≤≈ασ ²≥ε ±⌠σ≡α - TGLSphere). ╥αΩ ≥εµσ ∞εµφε: Γ ∩α≡α∞σ≥≡√ ∩≡ε÷σΣ≤≡α∞ ∩σ≡σΣαΓα≥ⁿ φσ εß·σΩ≥√, α ÷σδ√σ Ωδα±±√. ╟α≈σ∞ ∩σ≡σΣ ∩≡Φ±ΓεσφΦσ∞ φ≤µφε ∩≡σεß≡ατεΓαφΦσ ≥Φ∩α Ω TGLSphere? ─σδε Γ ≥ε∞, ≈≥ε ∞σ≥εΣ AddNewChild, ≈≥ε ß√ Γ√ σ∞≤ Γ ∩α≡α∞σ≥≡ φσ ∩σ≡σΣαδΦ, ΓετΓ≡α∙ασ≥ εß·σΩ≥ Ωδα±±α TGLBaseSceneObject. ═α± ²≥ε φσ ≤±≥≡αΦΓασ≥, ∩ε²≥ε∞≤ ∞√ Φ ∩≡σεß≡ατ≤σ∞ ≥Φ∩ Ω TGLSphere. ╧εδ≤≈ΦΓ°ΦΘ± εß·σΩ≥ ∩≡Φ±ΓαΦΓασ≥± ∩σ≡σ∞σφφεΘ Sphere. ╥σ∩σ≡ⁿ ± ∩ε∞ε∙ⁿ■ ²≥εΘ ∩σ≡σ∞σφφεΘ ∞√ ∞εµσ∞ φα°σΘ ∩≤δσ ταΣα≥ⁿ ≡ατφ√σ ∩α≡α∞σ≥≡√, φα∩≡Φ∞σ≡ ∩εδεµσφΦσ Γ ∩≡ε±≥≡αφ±≥Γσ:
Sphere.Position.X:=
Sphere.Position.Y:=
Sphere.Position.Z:=
╚δΦ ÷Γσ≥:
Sphere.Material.FrontProperties.Diffuse=
─Φφα∞Φ≈σ±Ωεσ
![╨Φ±.7 └ τΣσ±ⁿ ∩≡εΩ±Φ-εß·σΩ≥√ ù φσ Σσ≡σΓⁿ (Φφα≈σ εφΦ ß√δΦ ß√ ±δΦ°Ωε∞ εΣφεεß≡ατφ√∞Φ), α Γσ≥ΓΦ ± δΦ±≥ΓεΘ. ╚τ Γσ≥ΓσΘ ≤µσ ±εßΦ≡ασ≥± ⌠Φφαδⁿφεσ Σσ≡σΓε.](/file/11552/Igromania_11.ISO/InfoBlock/Igromania/GL-part1/6.jpg) |
╨Φ±.7 └ τΣσ±ⁿ ∩≡εΩ±Φ-εß·σΩ≥√ ù φσ Σσ≡σΓⁿ (Φφα≈σ εφΦ ß√δΦ ß√ ±δΦ°Ωε∞ εΣφεεß≡ατφ√∞Φ), α Γσ≥ΓΦ ± δΦ±≥ΓεΘ. ╚τ Γσ≥ΓσΘ ≤µσ ±εßΦ≡ασ≥± ⌠Φφαδⁿφεσ Σσ≡σΓε. |
±ετΣαφΦσ ∞εΣσδσΘ ∞√ ≡ατεß≡αδΦ, α ≥σ∩σ≡ⁿ ∩επεΓε≡Φ∞ ε ΣΦφα∞Φ≈σ±Ωε∞ Φ⌡ ≤φΦ≈≥εµσφΦΦ. ┬ ±α∞ε∞ Σσδσ, ∩≤δ ΩεπΣα-φΦß≤Σⁿ ∩ε∩αΣασ≥ Γ ±≥σφ≤, ≈σδεΓσΩα ΦδΦ µσ ≤δσ≥ασ≥ Γ πεδ≤ß≤■ Σαδⁿ. ╤ ²≥επε ∞ε∞σφ≥α εφα ßεδⁿ°σ φσ φ≤µφα. ┼±δΦ ∞√ ≥αΩ Φ ε±≥αΓΦ∞ σσ, εφα ß≤Σσ≥ ταφΦ∞α≥ⁿ ΩαΩ≤■-≥ε εßδα±≥ⁿ ∩α∞ ≥Φ. ╙≈Φ≥√Γα , ±ΩεδⁿΩε Γ√±≥≡σδεΓ Σσδασ≥ ±≡σΣφσ±≥α≥Φ±≥Φ≈σ±ΩΦΘ Ωσ∞∩σ≡, ∩εΩα σπε φ√≈Ω≤ φσ εßφα≡≤µα≥, φα∞ Γ±σΘ ∩α∞ ≥Φ Ωε∞∩ⁿ■≥σ≡α φσ ⌡Γα≥Φ≥, ≈≥εß√ ⌡≡αφΦ≥ⁿ ≥αΩεσ ΩεδΦ≈σ±≥Γε ∩≤δⁿ. ╧ε²≥ε∞≤ δ■ß√σ εß·σΩ≥√ Φπ≡√, Ωε≥ε≡√σ ±≥αδΦ φσφ≤µφ√∞Φ, φαΣε φσ∞σΣδσφφε ≤φΦ≈≥εµα≥ⁿ. ┼ΣΦφ±≥Γσφφ√Θ ∩≡αΓΦδⁿφ√Θ ±∩ε±εß ±Σσδα≥ⁿ ²≥ε - Γ√τΓα≥ⁿ ∞σ≥εΣ Free, φα∩≡Φ∞σ≡:
Sphere.Free
╫α±≥σφⁿΩε ß√Γασ≥ φσεß⌡εΣΦ∞ε ∩≡εΓσ≡Φ≥ⁿ, ±≤∙σ±≥Γ≤σ≥ δΦ εß·σΩ≥, ΦδΦ σπε ≤µσ ≤φΦ≈≥εµΦδΦ. ─δ ²≥επε ±≡αΓφΦΓασ∞ εß·σΩ≥ ± ≤φΦΓσ≡±αδⁿφεΘ Ωεφ±≥αφ≥εΘ φ≤δ - nil, φα∩≡Φ∞σ≡:
If Sphere
Begin
{±⌠σ≡≤ σ∙σ φσ ≤φΦ≈≥εµΦδΦ, τφα≈Φ≥, Σσδασ∞ τΣσ±ⁿ ≈≥ε-φΦß≤Σⁿ ∩εδστφεσ}
End
╚δΦ µσ Γ√τ√Γασ∞ ⌠≤φΩ÷Φ■ Assigned, Ωε≥ε≡α Σσδασ≥ ≥ε µσ ±α∞εσ. ╚ Γε≥ ≥≤≥ Γα± ∩εΣ±≥σ≡σπασ≥ εΣΦφ πΦπαφ≥±ΩΦΘ ∩εΣΓεΣφ√Θ Ωα∞σφⁿ, φα Ωε≥ε≡√Θ ≡αφε ΦδΦ ∩ετΣφε φα≥αδΩΦΓαδΦ±ⁿ Γ±σ ∩≡επ≡α∞∞Φ±≥√. ┼±δΦ Γ√ ε±ΓεßεΣΦδΦ εß·σΩ≥ ∞σ≥εΣε∞ Free, ²≥ε φσ πα≡αφ≥Φ≡≤σ≥, ≈≥ε ∩σ≡σ∞σφφα εß·σΩ≥α ±≥αδα ≡αΓφε nil! ╥ε σ±≥ⁿ ∩≡Φ ε∩≡σΣσδσφφε∞ ±≥σ≈σφΦΦ εß±≥ε ≥σδⁿ±≥Γ Γ ∩≡Φ∞σ≡σ Γ√°σ, Σαµσ σ±δΦ ±⌠σ≡α ≤φΦ≈≥εµσφα, ≤±δεΓΦσ ß≤Σσ≥ Γ√∩εδφ ≥ⁿ± . ┼±δΦ Γ√ Γ ≤±δεΓΦΦ ∩ε±δσ ∩≡εΓσ≡ΩΦ εß≡α∙ασ≥σ±ⁿ ± ²≥εΘ ±⌠σ≡σ (α ≥αΩ ∩ε≈≥Φ Γ±σπΣα Φ ß√Γασ≥), ∩≡εΦτεΘΣσ≥ Ω≡Φ≥Φ≈σ±Ωα ε°ΦßΩα, ≈≥ε ≈≡σΓα≥ε Γ√δσ≥ε∞ Φπ≡√ Γ ±ΦφΦσ ⌠ε≡≥ε≈ΩΦ. ╫≥εß√ πα≡αφ≥Φ≡εΓα≥ⁿ, ≈≥ε ε±ΓεßεµΣσφφ√Θ εß·σΩ≥ ±≥αφσ≥ ≡αΓφ√∞ nil, Φ±∩εδⁿτ≤Θ≥σ ±∩σ÷Φαδⁿφ≤■ ∩≡ε÷σΣ≤≡≤ FreeAndNil, φα∩≡Φ∞σ≡:
FreeAndNil(Sphere)
╥σ∩σ≡ⁿ Γ√ ∞εµσ≥σ ß√≥ⁿ ≤Γσ≡σφφ√∞Φ Γ ≥ε∞, ≈≥ε φΦΩεπΣα φσ εß≡α≥Φ≥σ±ⁿ Ω ≤µσ φσ±≤∙σ±≥Γ≤■∙σ∞≤ εß·σΩ≥≤. ╬∩Φ±αφφ≤■ ∩≡ε÷σΣ≤≡≤ ±ετΣαφΦ Φ ≤φΦ≈≥εµσφΦ εß·σΩ≥εΓ ∞εµφε ∩≡Φ∞σφ ≥ⁿ Ω δ■ß√∞ εß·σΩ≥α∞ GLScene.
╟α≈σ∞ Φπ≡α∞ αΩΩ≤∞≤δ ≥ε≡?
╨α±±∞ε≥≡Φ∞ ∩≡Φ∞σ≡ Γ√°σ ± ∩≤δσ∞σ≥ε∞. ╬ß√≈φε Γ Φπ≡α⌡ ∩≤δΦ - ²≥ε φσ ∩≡ε±≥ε ±⌠σ≡√, α ±δεµφ√σ εß·σΩ≥√, ≤ Ωε≥ε≡√⌡ Ω ≥ε∞≤ µσ σ∙σ Φ ≥σΩ±≥≤≡α Φ∞σσ≥± . ╩αµΣ√Θ ≡ατ, ΩεπΣα Γ√ ±ετΣασ≥σ ∩≤δ■, ε±ΓεßεµΣασ≥± ≤≈α±≥εΩ ∩α∞ ≥Φ, ≤±≥αφαΓδΦΓα■≥± ±ΓεΘ±≥Γα ²≥εΘ ∩≤δΦ, ταπ≡≤µασ≥± ∞εΣσδⁿ ∩≤δΦ, ταπ≡≤µασ≥± ≥σΩ±≥≤≡α (± ΓΦφ≈σ±≥σ≡α!).
![╨Φ±.8 ┬ Σαφφε∞ ±δ≤≈ασ ΣεµΣΦφΩΦ ù φσ ∩≡εΩ±Φ-εß·σΩ≥√, α εß√≈φ√σ εß·σΩ≥√, Ωε≥ε≡√σ ßσ≡≤≥± Φτ αΩΩ≤∞≤δ ≥ε≡α. ─δ ∩≡επ≡α∞∞Φ±≥εΓ ≥αΩ ß√δε ∩≡ε∙σ.](/file/11552/Igromania_11.ISO/InfoBlock/Igromania/GL-part1/8.jpg) |
╨Φ±.8 ┬ Σαφφε∞ ±δ≤≈ασ ΣεµΣΦφΩΦ ù φσ ∩≡εΩ±Φ-εß·σΩ≥√, α εß√≈φ√σ εß·σΩ≥√, Ωε≥ε≡√σ ßσ≡≤≥± Φτ αΩΩ≤∞≤δ ≥ε≡α. ─δ ∩≡επ≡α∞∞Φ±≥εΓ ≥αΩ ß√δε ∩≡ε∙σ. |
┬±σ ²≥ε ταφΦ∞ασ≥ ε∩≡σΣσδσφφεσ Γ≡σ∞ . ┼±δΦ ≈Φ±δε ∩≤δⁿ, Ωε≥ε≡√σ Φτ≡√πασ≥ ∩≤δσ∞σ≥ Γ ±σΩ≤φΣ≤, ε≈σφⁿ ΓσδΦΩε, ∞επ≤≥ φα≈α≥ⁿ± ΣΦΩΦσ ≥ε≡∞ετα, ε±εßσφφε φα ±δαß√⌡ Ωε∞∩ⁿ■≥σ≡α⌡. ╤ ≤φΦ≈≥εµσφΦσ∞ ∩≤δⁿ ≥αΩα µσ ∩≡εßδσ∞α: φαΣε Γ√π≡≤τΦ≥ⁿ εß·σΩ≥, ε±ΓεßεΣΦ≥ⁿ ∩α∞ ≥ⁿ... ╥ε µσ ±α∞εσ ε≥φε±Φ≥± φσ ≥εδⁿΩε Ω ∩≤δ ∞, φε Φ Ω δ■ß√∞ εß·σΩ≥α∞, Ωε≥ε≡√σ ≈α±≥Φ ∩ε Γδ ■≥± Φ Φ±≈στα■≥, φα∩≡Φ∞σ≡, Ω Ωα∩δ ∞ ΣεµΣ , Φ±Ω≡α∞ ε≥ ²δσΩ≥≡ε∩≡εΓεΣΩΦ... ╧εΣεßφα ≡α±≥ε≈Φ≥σδⁿφε±≥ⁿ ±Φ±≥σ∞φ√⌡ ≡σ±≤≡±εΓ Γ Ωε∞∩ⁿ■≥σ≡φ√⌡ Φπ≡α⌡ φσ∩≡Φσ∞δσ∞α. ┬√ µσ φσ ⌡ε≥Φ≥σ, ≈≥εß√ Γα°≤ Φπ≡≤ ∞εµφε ß√δε τα∩≤±≥Φ≥ⁿ ≥εδⁿΩε φα ±≤∩σ≡ Ω≡≤≥εΘ π≡α⌠Φ≈σ±ΩεΘ ±≥αφ÷ΦΦ?
┬√⌡εΣ ∩≡ε±≥εΘ. ╧≡ΦΩΦΣ√Γασ∞, ±ΩεδⁿΩε Γ ±≡σΣφσ∞ εß·σΩ≥εΓ ∩εΣεßφεπε ≡εΣα ∞εµσ≥ ±≤∙σ±≥ΓεΓα≥ⁿ εΣφεΓ≡σ∞σφφε. ─ε∩≤±≥Φ∞, ∩≤δσ∞σ≥ ∞εµσ≥ Γ√ß≡ε±Φ≥ⁿ φσ±ΩεδⁿΩε ±ε≥σφ ∩≤δⁿ τα Σσ± ≥εΩ ±σΩ≤φΣ, Φ τα ²≥ε≥ µσ Σσ± ≥εΩ ±σΩ≤φΣ ∩≤δΦ εß τα≥σδⁿφε Σεδσ≥ ≥ Σε ÷σδΦ. ╧σ≡σΣ φα≈αδε∞ Φπ≡√ ±ετΣασ∞ Γ±σ ±≥ε ∩≤δⁿ. ╦≤≈°σ Γ±σπε ²≥ε Σσδα≥ⁿ Γε Γ≡σ∞ ταπ≡≤τΩΦ ≤≡εΓφ . ═σßεδⁿ°εΘ ταΣσ≡µΩΦ φΦΩ≥ε φσ τα∞σ≥Φ≥. ─αδσσ ∩≤δΦ ∩ε∞σ∙α■≥± Γ ±∩Φ±εΩ ΦδΦ ∞α±±ΦΓ, Ωε≥ε≡√Θ φατ√Γασ∞ αΩΩ≤∞≤δ ≥ε≡ε∞. ─σδασ∞ ∩≤δΦ φσΓΦΣΦ∞√∞Φ ΦδΦ Γ√φε±Φ∞ Φ⌡ Ω≤Σα-φΦß≤Σⁿ τα ∩≡σΣσδ√ Φπ≡εΓεπε ∩≡ε±≥≡αφ±≥Γα. ╩αΩ ≥εδⁿΩε ∩≤δσ∞σ≥ φα≈αδ ±≥≡σδ ≥ⁿ, Γ∞σ±≥ε ≥επε, ≈≥εß√ ±ετΣαΓα≥ⁿ ∩≤δΦ, ∞√ ∩σ≡σ∞σ∙ασ∞ Γ φ≤µφεσ ∞σ±≥ε ≤µσ ±ετΣαφφ√σ ∩≤δΦ Φτ αΩΩ≤∞≤δ ≥ε≡α Φ Σσδασ∞ Φ⌡ ΓΦΣΦ∞√∞Φ. ╩αΩ ≥εδⁿΩε ∩≤δ Σε±≥Φπφσ≥ ÷σδΦ, ∞√ φσ ≤φΦ≈≥εµασ∞ σσ, α ΓφεΓⁿ Σσδασ∞ φσΓΦΣΦ∞εΘ Φ ∩ε∞σ∙ασ∞ Γ αΩΩ≤∞≤δ ≥ε≡. ┬ Φ≥επσ Σδ ΩαµΣεΘ ∩≤δΦ ∞√ ²Ωεφε∞Φ∞ Γ≡σ∞ ±ετΣαφΦ Φ Γ≡σ∞ ≤φΦ≈≥εµσφΦ . └ ²≥ε ε≈σφⁿ Φ ε≈σφⁿ ∞φεπε! └ ≈≥ε σ±δΦ ∞√ φσ∞φεπε ε°ΦßδΦ±ⁿ Γ ±ΓεΦ⌡ ∩≡ΦΩΦΣΩα⌡, ∩≤δΦ Γ αΩΩ≤∞≤δ ≥ε≡σ Ωεφ≈ΦδΦ±ⁿ, α ∩≤δσ∞σ≥ ∩≡εΣεδµασ≥ ±≥≡σδ ≥ⁿ? ╥≤≥ ≤µ φΦ≈σπε φσ ∩εΣσδασ°ⁿ - ∩≡ΦΣσ≥± φεΓ√σ ∩≤δΦ ±ετΣαΓα≥ⁿ ΣΦφα∞Φ≈σ±ΩΦ, ∩εΩα Γ αΩΩ≤∞≤δ ≥ε≡ φσ Γσ≡φ≤≥± ±≥α≡√σ. ╚ φεΓ√σ ∩≤δΦ ≥εµσ φσ ß≤Σσ∞ ≤φΦ≈≥εµα≥ⁿ, α τα∩α±σ∞ Γ αΩΩ≤∞≤δ ≥ε≡σ - ΓΣ≡≤π σ∙σ ∩εφαΣεß ≥± ...
└≥αΩα ΩδεφεΓ
![╨Φ±.9 ─ΓΦµεΩ δ■ßεΘ Φπ≡√ ±ε±≥εΦ≥ Φτ ΩΦ≡∩Φ≈ΦΩεΓ ≥αΩ µσ, ΩαΩ ²≥α ΩδαΣΩα. ╚ ≥αΩµσ, ΩαΩ Γ \'nqj ±≥σφσ, Γσ≡⌡φΦΘ ≤≡εΓσφⁿ Γ ΣΓΦµΩσ φσ ∞εµσ≥ ±≤∙σ±≥ΓεΓα≥ⁿ ßστ φΦµφΦ⌡.](/file/11552/Igromania_11.ISO/InfoBlock/Igromania/GL-part1/9.jpg) |
╨Φ±.9 ─ΓΦµεΩ δ■ßεΘ Φπ≡√ ±ε±≥εΦ≥ Φτ ΩΦ≡∩Φ≈ΦΩεΓ ≥αΩ µσ, ΩαΩ ²≥α ΩδαΣΩα. ╚ ≥αΩµσ, ΩαΩ Γ \'nqj ±≥σφσ, Γσ≡⌡φΦΘ ≤≡εΓσφⁿ Γ ΣΓΦµΩσ φσ ∞εµσ≥ ±≤∙σ±≥ΓεΓα≥ⁿ ßστ φΦµφΦ⌡. |
╧≤±≥ⁿ ≤ φα± σ±≥ⁿ ßεδⁿ°εΘ δσ±, Γ Ωε≥ε≡ε∞ ∞φεπε-∞φεπε εΣΦφαΩεΓ√⌡ Σσ≡σΓⁿσΓ, ΦδΦ ±Ωαµσ∞, ∞φεπε Σσ≡σΓⁿσΓ φσ±ΩεδⁿΩΦ⌡ ≡ατφ√⌡ ΓΦΣεΓ. ╧≡Φ∞σ≡ ∩ε⌡εµ φα ∩≡σΣ√Σ≤∙ΦΘ, ≥εδⁿΩε ∞√ ≥≤≥ φΦ≈σπε ΣΦφα∞Φ≈σ±ΩΦ φσ ±ετΣασ∞ Φ φσ ≤φΦ≈≥εµασ∞ - φα ²≥ε∞ ≤≡εΓφσ Σσ≡σΓⁿ σ±≥ⁿ Γ±σπΣα. ╧≡εßδσ∞α ß≤Σσ≥ ∩≡Φ ταπ≡≤τΩσ ≤≡εΓφ . ╤ετΣα≥ⁿ ±≥εδⁿΩε Σσ≡σΓⁿσΓ - ταΘ∞σ≥ επ≡ε∞φεσ Γ≡σ∞ . ═ε ΓσΣⁿ εφΦ Γ±σ εΣΦφαΩεΓ√σ! ╥ε σ±≥ⁿ ∞√ ≡ατ τα ≡ατε∞ ταπ≡≤µασ∞ ± ΓΦφ≈σ±≥σ≡α Φ ±ετΣασ∞ Γ ∩α∞ ≥Φ Ωε∩ΦΦ εΣφεπε Φ ≥επε µσ. ╟απ≡≤τΦδΦ. ╚π≡ασ∞. ╧σ≡σΣ ≡σφΣσ≡ε∞ ΩαµΣεπε Φτ Σσ≡σΓⁿσΓ Γ√∩εδφ ■≥± ∩εΣπε≥εΓΦ≥σδⁿφ√σ ∩≡ε÷σΣ≤≡√. ─δ ΩαµΣεπε Σσ≡σΓα εφΦ ß≤Σ≤≥ εΣφΦ∞Φ Φ ≥σ∞Φ µσ, φε Γ√τ√Γα≥ⁿ ∞√ Φ⌡ ß≤Σσ≥ ε∩ ≥ⁿ ßεδⁿ°εσ ≈Φ±δε ≡ατ, ∩ε ≈Φ±δ≤ Σσ≡σΓⁿσΓ! ╨α±≥ε≈Φ≥σδⁿφε ∩εδ≤≈ασ≥± . ╚
![╨Φ±.10 ┬ ²≥εΘ Σσ∞ΩΦ Φτ Ωε∞∩δσΩ≥α GLScene Γ±σ Ω≤ßΦΩΦ ±ετΣα■≥± ΣΦφα∞Φ≈σ±ΩΦ. ╬ß≡α≥Φ≥σ ΓφΦ∞αφΦσ, ≈≥ε φα ²≥α∩σ ±ετΣαφΦ ΩαµΣε∞≤ Ω≤ßΦΩ≤ ∩≡Φ±ΓαΦΓα■≥± ±ΓεΘ±≥Γα ∩≡ετ≡α≈φε±≥Φ.](/file/11552/Igromania_11.ISO/InfoBlock/Igromania/GL-part1/10.jpg) |
╨Φ±.10 ┬ ²≥εΘ Σσ∞ΩΦ Φτ Ωε∞∩δσΩ≥α GLScene Γ±σ Ω≤ßΦΩΦ ±ετΣα■≥± ΣΦφα∞Φ≈σ±ΩΦ. ╬ß≡α≥Φ≥σ ΓφΦ∞αφΦσ, ≈≥ε φα ²≥α∩σ ±ετΣαφΦ ΩαµΣε∞≤ Ω≤ßΦΩ≤ ∩≡Φ±ΓαΦΓα■≥± ±ΓεΘ±≥Γα ∩≡ετ≡α≈φε±≥Φ. |
∩α∞ ≥ⁿ ∩εΣ ΩαµΣεσ Σσ≡σΓε ≡στσ≡ΓΦ≡εΓα≥ⁿ φαΣε, Φ εß≡αßε≥Ωα ΩαµΣεπε Φτ φΦ⌡ Γ≡σ∞ ταφΦ∞ασ≥.
┬ε≥ ß√ ταπ≡≤τΦ≥ⁿ εΣφε σΣΦφ±≥Γσφφεσ Σσ≡σΓε, α ΩεπΣα φαΣε ß≤Σσ≥ Γ√Γσ±≥Φ φα ²Ω≡αφ ε±≥αδⁿφ√σ Σσ≡σΓⁿ , ∩≡ε±≥ε ∩εΩατα≥ⁿ π≡α⌠Φ≈σ±ΩεΘ ßΦßδΦε≥σΩσ, ε≥Ω≤Σα ß≡α≥ⁿ φσεß⌡εΣΦ∞√σ Σαφφ√σ. ▌≥ε µ ΩαΩα ²Ωεφε∞Φ ≡σ±≤≡±εΓ ∩εδ≤≈Φ≥± , ΩαΩεΘ ∩≡ε≡ε±≥ FPS! ╥αΩΦσ "δεµφ√σ" Σσ≡σΓⁿ (Φ φσ ≥εδⁿΩε Σσ≡σΓⁿ - ≈≥ε ≤πεΣφε), ε Ωε≥ε≡√⌡ Γ ∩α∞ ≥Φ ⌡≡αφΦ≥± ≥εδⁿΩε ≈α±≥φα Φφ⌠ε≡∞α÷Φ (∩εδεµσφΦσ Γ ∩≡ε±≥≡αφ±≥Γσ, ≤πδ√ ∩εΓε≡ε≥α), α εΣΦφαΩεΓα Φφ⌠ε≡∞α÷Φ ⌡≡αφΦ≥± ≥εδⁿΩε εΣΦφ ≡ατ, φατ√Γα■≥± ∩≡εΩ±Φ-εß·σΩ≥α∞Φ.
┬ GLScene Σδ ±ετΣαφΦ ∩≡εΩ±Φ-εß·σΩ≥εΓ ±≤∙σ±≥Γ≤σ≥ ±∩σ÷Φαδⁿφ√Θ Ωδα±± - TGLProxyObject. ╧εδⁿτεΓα≥ⁿ± Φ∞ ε≈σφⁿ ∩≡ε±≥ε. ╤φα≈αδα ±ετΣασ∞ εß·σΩ≥-Φ±≥ε≈φΦΩ, ≥ε σ±≥ⁿ σΣΦφ±≥Γσφφεσ Σσ≡σΓε, φα∩≡Φ∞σ≡ ≥αΩ:
Tree:=TGLFreeFrom(glscene1.objects.AddNewChild(TGLFreeFrom));
//╟απ≡≤µασ∞ σπε ∞εΣσδⁿ:
Tree.LoadFromFile('Tree.3ds');
//╟απ≡≤µασ∞ σπε ≥σΩ±≥≤≡≤:
Tree.Material.Texture.Disabled:=false;
Tree.Material.Texture.Image,LoadFromFile('tree.jpg');
//└ ≥σ∩σ≡ⁿ ±ετΣαΣΦ∞ Σσ± ≥ⁿ Σσ≡σΓⁿσΓ-ΩδεφεΓ Γ ±δ≤≈αΘφ√⌡ ∞σ±≥α⌡:
for i:=1 to 10 do begin
//╤ετΣασ∞ ε≈σ≡σΣφεΘ ∩≡εΩ±Φ-εß·σΩ≥
proxy:=TGLProxyObject(glscene1.objects.AddNewChild(TGLProxyObject));
with proxy do begin
//┬ ±ΓεΘ±≥Γε MasterObject τα∩Φ±√Γασ∞ φα°σ Σσ≡σΓε-εß≡ατσ÷
![╨Φ±.11 ╙φΦΩαδⁿφα ≥σ⌡φεδεπΦ Imposters, Ωε≥ε≡≤■ ΓφσΣ≡ΦδΦ Γ GLScene ±εΓ±σ∞ φσΣαΓφε, αΓ≥ε∞α≥Φ≈σ±ΩΦ ∩≡σεß≡ατ≤σ≥ ΣΦφα∞Φ≈σ±ΩΦ ±ετΣαΓασ∞√σ εß·σΩ≥√ Γ φαßε≡√ ±∩≡αΘ≥εΓ, Φ ⌡≡αφΦ≥ Φ⌡ Γ ∩α∞ ≥Φ. ┼±δΦ ≥≡σ⌡∞σ≡φ√Θ εß·σΩ≥ εΩαµσ≥± Σε±≥α≥ε≈φε ΣαδσΩε ε≥ φαßδ■Σα≥σδ , εφ Γ ÷σδ ⌡ ∩εΓ√°σφΦ ∩≡εΦτΓεΣΦ≥σδⁿφε±≥Φ τα∞σφ σ≥± φα ±∩≡αΘ≥.](/file/11552/Igromania_11.ISO/InfoBlock/Igromania/GL-part1/11.jpg) |
╨Φ±.11 ╙φΦΩαδⁿφα ≥σ⌡φεδεπΦ Imposters, Ωε≥ε≡≤■ ΓφσΣ≡ΦδΦ Γ GLScene ±εΓ±σ∞ φσΣαΓφε, αΓ≥ε∞α≥Φ≈σ±ΩΦ ∩≡σεß≡ατ≤σ≥ ΣΦφα∞Φ≈σ±ΩΦ ±ετΣαΓασ∞√σ εß·σΩ≥√ Γ φαßε≡√ ±∩≡αΘ≥εΓ, Φ ⌡≡αφΦ≥ Φ⌡ Γ ∩α∞ ≥Φ. ┼±δΦ ≥≡σ⌡∞σ≡φ√Θ εß·σΩ≥ εΩαµσ≥± Σε±≥α≥ε≈φε ΣαδσΩε ε≥ φαßδ■Σα≥σδ , εφ Γ ÷σδ ⌡ ∩εΓ√°σφΦ ∩≡εΦτΓεΣΦ≥σδⁿφε±≥Φ τα∞σφ σ≥± φα ±∩≡αΘ≥. |
MasterObject:=Tree;
//╧εΩατ√Γασ∞, ≈≥ε φα±δσΣεΓα≥ⁿ± Σεδµφα ≥εδⁿΩε ±≥≡≤Ω≥≤≡α εß·σΩ≥α
ProxyOptions:=[pooObjects];
//╬≡Φσφ≥α÷Φ■ Σσ≡σΓα Γ ∩≡ε±≥≡αφ±≥Γσ φαΣε ε±≥αΓΦ≥ⁿ φσΦτ∞σφφεΘ
Direction:= Tree.Direction;
Up:= Tree.Up;
//└ Γε≥ ∩εδεµσφΦσ ταΣασ∞ ±δ≤≈αΘφεσ
Position.X:=Random(100);
Position.Y:=Random(100);
//╚ ∩εΓσ≡φσ∞ Σσ≡σΓε φα ±δ≤≈αΘφ√Θ ≤πεδ, ≈≥εß√ δ≤≈°σ ±∞ε≥≡σδε±ⁿ
RollAngle:=Random(360);
end;
end;
╥σ∩σ≡ⁿ ≤ φα± σ±≥ⁿ Σσ± ≥εΩ Σσ≡σΓⁿσΓ ∩ε ÷σφσ εΣφεπε. ╬ß≡α≥Φ≥σ ΓφΦ∞αφΦσ, ≈≥ε σ±δΦ ∞√ ΩαΩ-φΦß≤Σⁿ Φτ∞σφΦ∞ εß·σΩ≥-ε≡ΦπΦφαδ, ²≥ε Φτ∞σφσφΦσ ∞πφεΓσφφε ε≥≡ατΦ≥± φα Γ±σ⌡ εß·σΩ≥α⌡-Ωδεφα⌡.
* * *
╠√ ≡α±±ΩαταδΦ ε ∩σ≡Γε∞ ΩΦ≡∩Φ≈ΦΩσ. ┬ ±δσΣ≤■∙Φ⌡ ±≥α≥ⁿ ⌡ ∞√ ∩εΣα≡Φ∞ Γα∞ ÷σδ√Θ π≡≤τεΓΦΩ ≥αΩΦ⌡ ΩΦ≡∩Φ≈σΘ, Φτ Ωε≥ε≡√⌡ Γ√ ±∞εµσ≥σ ∩ε±≥≡εΦ≥ⁿ ≥≡σ⌡∞σ≡φ√Θ Φπ≡εΓεΘ ΣΓΦµεΩ ±ΓεσΘ ∞σ≈≥√. ═≤ α ≈≥εß√ Γα∞ ß√δε ∩≡ε∙σ, φα Ωε∞∩αΩ≥ ∞√ Γ√ΩδαΣ√Γασ∞ ∩ε±δσΣφ■■ ∩≡ε≥σ±≥Φ≡εΓαφφ≤■ Γσ≡±Φ■ GLScene.