рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬреЛ рдХрдИ рд╢реАрд░реНрд╖-рджреГрд╢реНрдп рдЦреЗрд▓реЛрдВ рдореЗрдВ рдХрд╛рдлреА рдЖрдо рд╣реИ: рд╕реНрдХреНрд░реАрди рдкрд░ рджреБрд╢реНрдорди рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рд▓рд╛рдЦреЛрдВ рдХреЗ рдкреВрд░реЗ рдЭреБрдВрдб рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЕрдзрд┐рдорд╛рдирддрдГ рдПрдХ рдбреНрд░реЙ рдХреЙрд▓ рдореЗрдВред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдгрдпреЛрдВ рдкрд░ рдереЛрдбрд╝рд╛ рдСрдирд▓рд╛рдЗрди рд╢реЛрдз рдХрд┐рдпрд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдмрд╣реБрдд рдЕрд▓рдЧ рдереЗред
рдореИрдВ рдХрд┐рд╕реА рдХреЛ рднреА рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╢рд░реНрдо рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдорд╛рдзрд╛рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╢рд╛рдирджрд╛рд░ рдирд╣реАрдВ рдереЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдиреЗ рдкреНрд░рддреНрдпреЗрдХ рджреБрд╢реНрдорди рдХреЗ рд▓рд┐рдП рдПрдХ рдХреИрдирд╡рд╕ рд╡рд╕реНрддреБ рдХреЛ рдЬреЛрдбрд╝рд╛ (рдЬреЛ рдмрд╣реБрдд рдЕрдХреНрд╖рдо рд╣реИ)ред
рдЬрд┐рд╕ рд╡рд┐рдзрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореИрдВ рдЖрдпрд╛ рдерд╛ рд╡рд╣ рдЙрди рд╕рднреА рдЪреАрдЬреЛрдВ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рджреЗрдЦреА рд╣реИ, рдФрд░ рдХрд┐рд╕реА рднреА рдпреВрдЖрдИ рдХрдХреНрд╖рд╛рдУрдВ (рдХреИрдирд╡рд╕ рд╕рд╣рд┐рдд) рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдЬрдирддрд╛ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдФрд░ рдЬреЛ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ
рдЗрд╕реЗ рдЬреАрдердм рдкрд░ рдкреЛрд╕реНрдЯ
рдХрд┐рдпрд╛ ред
рдХреИрдирд╡рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ?
рдкреНрд░рддреНрдпреЗрдХ рджреБрд╢реНрдорди рдХреЗ рд▓рд┐рдП рдПрдХ рдХреИрдирд╡рд╕ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдмреБрд░рд╛ рдирд┐рд░реНрдгрдп рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рднреА рджреБрд╢реНрдордиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреИрдирд╡рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ; рдПрдХ рдПрдХрд▓ рдХреИрдирд╡рд╕ рднреА рдХреЙрд▓ рдмреИрдЪрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдЧрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдореЗрдВ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХреА рдорд╛рддреНрд░рд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдореЗрдВ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:
- рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреМрди рд╕реЗ рджреБрд╢реНрдорди рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдпреВрдЖрдИ рдкрдЯреНрдЯреА рд╕реЗ рдЪреБрдиреЗрдВред
- рдкрдЯреНрдЯреА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдХреИрдорд░реЗ рдореЗрдВ рджреБрд╢реНрдорди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░реЗрдВред
- рдкрдЯреНрдЯреА рдХреЗ "рднрд░рдиреЗ" рднрд╛рдЧ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ, рд╢рд╛рдпрдж рдЫрд╡рд┐ рдХреА рддрд░рд╣ред
- рджреБрд╢реНрдордиреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрдбрд╝реЗ рджреБрд╢реНрдордиреЛрдВ рдХреЗ рдкрд╛рд╕ рдмрдбрд╝реА рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рди рджрд┐рдЦреЗред
рд╡реИрд╕реЗ рднреА, рдпрд╣ рд╕рдм рдХреИрдирд╡рд╕ рдЬреНрдпреЛрдореЗрдЯреНрд░реА рдмрдлрд╝рд░реНрд╕ рдХреЛ рджреВрд╖рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рд╕рднреА рд╡рд░реНрдЯреЗрдХреНрд╕ рдбреЗрдЯрд╛ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдЧрд╛ред рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╕рдм рдРрд╕реЗ рд╕рд░рд▓ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдореЗрд░реЗ рдлреИрд╕рд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ
рдореЗрд░реА рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг:
- рд╣рдо 3 рдбреА рдореЗрдВ рджреБрд╢реНрдордиреЛрдВ рдХреЛ рдКрд░реНрдЬрд╛ рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реИрдВред
- рдпрд╣ рдЖрдкрдХреЛ рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдФрд░ рдЯреНрд░рд┐рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- рдкрдЯреНрдЯреА рдХреА рд╕реНрдерд┐рддрд┐ / рдЖрдХрд╛рд░ рдХреЛ рджреБрд╢реНрдорди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рд╣рдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдореЗрдВ рдзрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдХреИрдорд░реЗ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдЕрднреА рднреА рд╣реИред
- Shader рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╣рдореЗрд╢рд╛ рд╕рдм рдХреБрдЫ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ред
- рд╣рдо рдПрдХ рд╣реА рдбреНрд░реЙ рдХреЙрд▓ рдореЗрдВ рд╕рднреА рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреЗрдВрд╕рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
- рд╣рдо рдкрдЯреНрдЯреА рдХреА рдкреВрд░реНрдгрддрд╛ рдХреЗ рд╕реНрддрд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдпреВрд╡реА-рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЕрдм рдЖрдЗрдП рд╕рдорд╛рдзрд╛рди рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦреЗрдВред
рдХреНрдпрд╛ рд╡реГрддреНрддрд┐ рд╣реИ?
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ, рдорд╛рдирдХ рддрдХрдиреАрдХ рдХрд╛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд╕рд╛рдорд╛рдиреНрдп рд╢реАрд░реНрд╖ рдбреЗрдЯрд╛ рдФрд░ рд╕рд╛рдордЧреНрд░реА рд╣реЛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдбреНрд░реЙ рдХреЙрд▓ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдбреНрд░рд╛ рдХреЙрд▓ рд╕реАрдкреАрдпреВ рдФрд░ рдЬреАрдкреАрдпреВ рдкрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рднрд╛рд░ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреНрд░реЙ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдЙрди рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдкреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ shader рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЖрдк рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬрд╛рд▓ рдмрдлрд░ рдбреЗрдЯрд╛ рдПрдХреНрд╕ рдХреЛ рдПрдХ рдмрдлрд░ рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдХреЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдПрдХреНрд╕ рдЕрдзрд┐рдХрддрдо рдкреНрд░рддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрдкреА рдХреЛ рдмрджрд▓рдиреЗ / рд░рдВрдЧ / рднрд┐рдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП shader рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЛ рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдХреНрд░рдо рдореЗрдВ рдЗрд╕ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдХреНрд░рдорд╛рдВрдХрд┐рдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рд╣рдо рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рд░реЗрдВрдбрд░ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрджреЗрд╢ "рдХреЗрд╡рд▓ рдПрди рдХреЛ рд╕реМрдВрдкреЗрдВ", рдЬрд╣рд╛рдВ рдПрди рдРрд╕реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬреЛ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдлреНрд░реЗрдо
рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рдПрдХреНрд╕ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдХрдо рд╣реИред
рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рдПрдкреАрдЖрдИ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреЛрдб рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ "рдЗрдВрд╕реНрдЯреЗрдВрд╕рд┐рдВрдЧ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ; рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рд╕рд╛рде рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдпреВрдирд┐рдЯреА рдЗрдВрдЬрди рдЗрдВрд╕реНрдЯреЗрдВрдЯрд┐рдВрдЧ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ , рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рдПрдкреАрдЖрдИ рдФрд░ рд╢реЗрдбрд░ рдореИрдХреНрд░реЛ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдкреВрд░реНрдг 3 рдбреА рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рдЦреНрддреА рд╕реЗ рдмреЛрд▓рдирд╛, 2 рдбреА рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ - рд╣рдо рд╕рд░рд▓реАрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╡реЗ рд╣реИрдВ, рд╣рдо рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╣рдорд╛рд░реЗ shader рдХреЛ рд╕рд░рд▓ рдХрд░реЗрдЧрд╛, рдФрд░ 3D рд╕рдВрдХреЗрддрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдордВрдбрд▓рд┐рдпрд╛рдБ рдпрд╛ рдЖрд░реНрдХреНрд╕ред
рдХрдХреНрд╖рд╛ рдЦрд░рд╛рдм рд╣реЛрдиреЗ рдпреЛрдЧреНрдп
рд╣рдорд╛рд░реЗ рджреБрд╢реНрдордиреЛрдВ рдХреЗ рдкрд╛рд╕
Damageable
рдирд╛рдордХ рдПрдХ рдШрдЯрдХ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рд╛рд╕реНрдереНрдп
Damageable
рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЯрдХреНрдХрд░реЛрдВ рд╕реЗ рдиреБрдХрд╕рд╛рди рдЙрдард╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реЗрдЧреАред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
public class Damageable : MonoBehaviour { public int MaxHealth; public float DamageForceThreshold = 1f; public float DamageForceScale = 5f; public int CurrentHealth { get; private set; } private void Start() { CurrentHealth = MaxHealth; } private void OnCollisionEnter(Collision other) {
HealthBar рд╡рд╕реНрддреБ: рд╕реНрдерд┐рддрд┐ / рдмрд╛рд░реА
рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкрдЯреНрдЯреА рд╡рд╕реНрддреБ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рджреБрд╢реНрдорди рд╕реЗ рдЬреБрдбрд╝реА рд╕рд┐рд░реНрдл рдПрдХ рдХреНрд╡рд╛рдб рд╣реИред

рд╣рдо рдкрдЯреНрдЯреА рдХреЛ рд▓рдВрдмрд╛ рдФрд░ рдкрддрд▓рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд╕реНрддреБ рдХреЗ
рдкреИрдорд╛рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рд╕реАрдзреЗ рджреБрд╢реНрдорди рдХреЗ рдКрдкрд░ рд░рдЦрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд░реЛрдЯреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ, рд╣рдо
HealthBar.cs
рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░
HealthBar.cs
:
private void AlignCamera() { if (mainCamera != null) { var camXform = mainCamera.transform; var forward = transform.position - camXform.position; forward.Normalize(); var up = Vector3.Cross(forward, camXform.right); transform.rotation = Quaternion.LookRotation(forward, up); } }
рдпрд╣ рдХреЛрдб рд╣рдореЗрд╢рд╛ рдХреИрдорд░реЗ рдХреА рдУрд░ рдХреНрд╡рд╛рдб рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЖрдХрд╛рд░ рдореЗрдВ рдлреЗрд░рдмрджрд▓ рдФрд░ рд░реЛрдЯреЗрд╢рди
рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдиреНрд╣реЗрдВ рджреЛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХрддрд╛ рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рд╣рдореЗрд╢рд╛ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреВрд░реНрдг рд░реВрдкрд╛рдВрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдо рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ, рдкреИрдорд╛рдиреЗ / рд░реЛрдЯреЗрд╢рди рдХреЛ рдпрд╣рд╛рдВ рд╕реЗрдЯ рдХрд░рдирд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрдЯреНрдЯреА рдХреЛ рдЯреНрд░рд┐рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рд╕рдорд╛рдВрддрд░ рдЪрддреБрд░реНрднреБрдЬ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рд╣реЛрдЧрд╛ред рдпрджрд┐ рд╣рдордиреЗ рдЖрдХрд╛рд░ рдХрд╛ рдХрд╛рд░реНрдп рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рд╢реЗрдбрд░ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХреЛ рдШреБрдорд╛рдпрд╛ рд╣реИ, рддреЛ рдПрдХрддрд╛ рдЙрди рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдХреЛ рдХрд╛рдЯ рд╕рдХрддреА рд╣реИ, рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рдХрд░реАрдм рд╣реЛрдиреЗ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдмрджреНрдзреА рд╕рдорд╛рдВрддрд░ рдЪрддреБрд░реНрднреБрдЬ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдШреВрд░реНрдгрди рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, рд╣рдо рдЯреНрд░рдВрдХреЗрд╢рди рдХреЗ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдорддреМрд░ рдкрд░, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬреЛ рднреА рд╣реИ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ (рдПрдХрддрд╛ рдХреЛрдб рджреЗрд╢реА рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╣реИ, рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ)ред
рд╣рдо рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рд╣рдо рдЫрд╛рдпрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж рдкрдЯреНрдЯреА рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВред
Shader HealthBar
рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреНрд▓рд╛рд╕рд┐рдХ рд▓рд╛рд▓-рд╣рд░реА рдкрдЯреНрдЯреА рдмрдирд╛рдПрдВрдЧреЗред
рдореИрдВ рдмрд╛рдИрдВ рдУрд░ рдПрдХ рд╣рд░реЗ рдкрд┐рдХреНрд╕реЗрд▓ рдФрд░ рджрд╛рдИрдВ рдУрд░ рдПрдХ рд▓рд╛рд▓ рдХреЗ рд╕рд╛рде 2x1 рдмрдирд╛рд╡рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рдХреНрд▓реАрдкрд┐рдВрдЧ, рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдФрд░ рдХрдореНрдкреНрд░реЗрд╢рди рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдПрдбреНрд░реЗрд╕рд┐рдВрдЧ рдореЛрдб рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдХреНрд▓реИрдореНрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рд╕реНрдЯреНрд░рд┐рдк рдореЗрдВ рдкрд┐рдХреНрд╕рд▓ рд╣рдореЗрд╢рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд░реЗ рдпрд╛ рд▓рд╛рд▓ рд╣реЛрдВрдЧреЗ, рдФрд░ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдирд╣реАрдВ рдлреИрд▓реЗрдВрдЧреЗред рдпрд╣ рд╣рдореЗрдВ рд▓рд╛рд▓ рдФрд░ рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд░реЗрдЦрд╛ рдХреЛ рдиреАрдЪреЗ рдФрд░ рдкрдЯреНрдЯреА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реИрдбрд░ рдореЗрдВ рдмрдирд╛рд╡рдЯ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
(рдЪреВрдВрдХрд┐ рдХреЗрд╡рд▓ рджреЛ рд░рдВрдЧ рд╣реИрдВ, рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдХреЗ рдмрд┐рдВрджреБ рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП shader рдореЗрдВ рдЪрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрдирд╛рд╡рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рдордп рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдордзреНрдп рдмрдирд╛рд╡рдЯред)рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЙрди рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
Shader "UI/HealthBar" { Properties { _MainTex ("Texture", 2D) = "white" {} _Fill ("Fill", float) = 0 }
_MainTex
рдПрдХ рд▓рд╛рд▓-рд╣рд░реЗ рд░рдВрдЧ рдХреА рдмрдирд╛рд╡рдЯ рд╣реИ, рдФрд░
_Fill
0 рд╕реЗ 1 рддрдХ рдХрд╛ рдореВрд▓реНрдп рд╣реИ, рдЬрд╣рд╛рдБ 1 рдкреВрд░реНрдг рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╣реИред
рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдУрд╡рд░рд▓реЗ рдХрддрд╛рд░ рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░рд┐рдк рдХреЛ рдСрд░реНрдбрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рджреГрд╢реНрдп рдореЗрдВ рд╕рднреА рдЧрд╣рд░рд╛рдИ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдФрд░ рд╕рдм рдХреБрдЫ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛:
SubShader { Tags { "Queue"="Overlay" } Pass { ZTest Off
рдЕрдЧрд▓рд╛ рднрд╛рдЧ рд╕реНрд╡рдпрдВ shader рдХреЛрдб рд╣реИред рд╣рдо рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╢реЗрдбрд░ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ (рдЕрдирд▓рд┐рдорд┐рдЯреЗрдб), рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдПрдХрддрд╛ рд╕рддрд╣ рд╢реЗрдбреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рд╢реАрд░реНрд╖ / рдЦрдВрдб рд╢реЗрдб рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд▓рд┐рдЦреЗрдВ:
CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma multi_compile_instancing #include "UnityCG.cginc"
рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдорд╛рдирдХ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╣реИ, рдЬрд┐рд╕рдореЗрдВ
#pragma multi_compile_instancing
рдХрд╛ рдЕрдкрд╡рд╛рдж рд╣реИ, рдЬреЛ рдпреВрдирд┐рдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдЪреАрдЬ рдХреЛ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╢реАрд░реНрд╖ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗ:
struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; UNITY_VERTEX_INPUT_INSTANCE_ID };
рд╣рдореЗрдВ рдпрд╣ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХрддрд╛ (рдкрд░рд┐рд╡рд░реНрддрди) рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрдЧрд╛:
UNITY_INSTANCING_BUFFER_START(Props) UNITY_DEFINE_INSTANCED_PROP(float, _Fill) UNITY_INSTANCING_BUFFER_END(Props)
рдЗрд╕рд▓рд┐рдП рд╣рдо рдпрд╣ рдмрддрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдПрдХрддрд╛ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдкреНрд░реЙрдкреНрд╕" рдирд╛рдордХ рдПрдХ рдмрдлрд░ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рдЕрдВрджрд░ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реНрд▓реЛрдЯ рдХреЛ
_Fill
рдирд╛рдордХ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдЖрдк рдХрдИ рдмрдлрд╝рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд┐рднрд┐рдиреНрди рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рдХрдИ рдЧреБрдг рд╣реИрдВ, рддреЛ рдпрд╣ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ; рдЙрдиреНрд╣реЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░реЗ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп рдПрдХ рдмрдлрд░ рдХреЛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред
рд╣рдорд╛рд░реЗ рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдирдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдХрд╛рд░, рд╕реНрдерд┐рддрд┐ рдФрд░ рдШреБрдорд╛рд╡ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдП рд╣реИрдВред рдпрд╣
UnityObjectToClipPos
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛
UnityObjectToClipPos
, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрд╡реГрддреНрддрд┐ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмрд┐рдирд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдПрдХрд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрдкрдпреЛрдЧ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЬрдм рдЗрдВрдЬрди рдХреЗ рдЕрдВрджрд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдПрдХрддрд╛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рддреА рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ
_Fill
рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрдХреНрд░рдордг рдмрд┐рдВрджреБ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рд▓рд╛рд▓ рд╕реЗ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП UV рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдБ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ:
UNITY_SETUP_INSTANCE_ID(v); float fill = UNITY_ACCESS_INSTANCED_PROP(Props, _Fill);
UNITY_SETUP_INSTANCE_ID
рдФрд░
UNITY_ACCESS_INSTANCED_PROP
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд░рдВрддрд░ рдмрдлрд░ рд╕реЗ
_Fill
рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рддрдХ
UNITY_ACCESS_INSTANCED_PROP
рд╕рднреА рдЬрд╛рджреВ рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдХ рдЪрддреБрд░реНрднреБрдЬ рдХреЗ рдпреВрд╡реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреВрд░реЗ рдмрдирд╛рд╡рдЯ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╣реИ рдХрд┐ рдкрдЯреНрдЯреА рдХреА рд╡рд┐рднрд╛рдЬрди рд░реЗрдЦрд╛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рдмрдирд╛рд╡рдЯ рдХреЗ рдмреАрдЪ рдореЗрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЫреЛрдЯреЗ рдЧрдгрд┐рддреАрдп рдЧрдгрдирд╛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рдкрдЯреНрдЯреА рдХреЛ рдмрд╛рдИрдВ рдпрд╛ рджрд╛рдИрдВ рдУрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрдирд╛рд╡рдЯ рдХрд╛ рдХреНрд▓реИрдВрдк рдореВрд▓реНрдп рд╢реЗрд╖ рднрд╛рдЧ рдХреЛ рднрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЯреБрдХрдбрд╝рд╛ shader рд╕рд░рд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдХрд╛рдо рдкрд╣рд▓реЗ рд╣реА рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ:
return tex2D(_MainTex, i.uv);
рдкреВрд░реНрдг рдЯрд┐рдкреНрдкрдгреА shader рдХреЛрдб
GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз
рд╣реИ ред
рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рд╛рдордЧреНрд░реА
рдлрд┐рд░ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рд╣рдореЗрдВ рдмрд╕ рдЕрдкрдиреА рдкрдЯреНрдЯреА рдХреЛ рдЙрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реМрдВрдкрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬрд┐рд╕реЗ рдпрд╣ рд╢реЗрдбрд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд╕ рдКрдкрд░реА рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд shader рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдПрдХ рд▓рд╛рд▓-рд╣рд░реЗ рд░рдВрдЧ рдХреА рдмрдирд╛рд╡рдЯ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ, рдФрд░, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд,
"GPU рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ" рдмреЙрдХреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ ред

HealthBar рднрд░реЗрдВ рд╕рдВрдкрддреНрддрд┐ рдЕрджреНрдпрддрди
рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдмрд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ, рд╢реЗрдбрд░ рдФрд░ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдордЧреНрд░реА рд╣реИ, рдЕрдм рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
_Fill
рдкреНрд░реЙрдкрд░реНрдЯреА рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо
HealthBar.cs
рдЕрдВрджрд░ рдпрд╣ рдХрд░рддреЗ рд╣реИрдВ:
private void UpdateParams() { meshRenderer.GetPropertyBlock(matBlock); matBlock.SetFloat("_Fill", damageable.CurrentHealth / (float)damageable.MaxHealth); meshRenderer.SetPropertyBlock(matBlock); }
рд╣рдо
CurrentHealth
рдХреНрд▓рд╛рд╕
CurrentHealth
рдХреЛ 0 рд╕реЗ 1 рдХреЗ рдорд╛рди рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕реЗ
MaxHealth
рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо рдЗрд╕реЗ
MaterialPropertyBlock
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
_Fill
рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдкрдиреЗ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреНрд╕ рдХреЛ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
MaterialPropertyBlock
рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмрд┐рдирд╛ рдЗрдВрд╕реНрдЯреЗрдВрдЯ рдХрд┐рдП рднреА, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХрддрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд╢реЗрдбрд░реНрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рддрд░реАрдХрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рдЗрдВрд╕реНрдЯреЗрдВрд╕рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рднреА рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рд▓рд╛рдЦреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдПрдХ рдирд┐рд░рдВрддрд░ рдмрдлрд░ рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рде рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдПрдХ рд╕рдордп рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХреЗред
рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣рд╛рдВ рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХреЛрдб рдмрд▓реНрдХрд┐ рдЙрдмрд╛рдК рд╣реИ; рд╡рд┐рд╡рд░рдг рдХреЗ
рд▓рд┐рдП GitHub рднрдВрдбрд╛рд░ рджреЗрдЦреЗрдВред
рдбреЗрдореЛ
GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдбреЗрдореЛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмреБрд░рд╛рдИ рдиреАрд▓реЗ рдХреНрдпреВрдмреНрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╡реАрд░ рд▓рд╛рд▓ рдХреНрд╖реЗрддреНрд░реЛрдВ (рд╣реБрд░реНрд░реЗ!) рджреНрд╡рд╛рд░рд╛ рдирд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдзрд╛рд░рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдиреБрдХрд╕рд╛рди рдХреЛ рдЙрдард╛рддрд╛ рд╣реИред рдпреВрдирд┐рдЯреА 2018.3.6f1 рдореЗрдВ рд▓рд┐рдЦрд╛ рдбреЗрдореЛред
рдЗрдВрд╕реНрдЯреЗрдВрд╕рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдЖрдБрдХрдбрд╝реЗ рдкреИрдирд▓
Play рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж Game рдкреИрдирд▓ рдХреЗ рдКрдкрд░ Stats рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рддрдиреЗ рдбреНрд░реЙ рдХреЙрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреА рдмрджреМрд▓рдд рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ:

рдЧреЗрдо рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк HealthBar рд╕рд╛рдордЧреНрд░реА рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ тАЬGPU рд╕рдХреНрд╖рдо рдХрд░реЗрдВтАЭ
рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕рд╣реЗрдЬреЗ рдЧрдП рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рдПрдЧреАред
рдлреНрд░реЗрдо рдбрд┐рдмрдЧрд░
рдЧреЗрдо рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд┐рдВрдбреЛ> рд╡рд┐рд╢реНрд▓реЗрд╖рдг> рдлрд╝реНрд░реЗрдо рдбреАрдмрдЧрд░ рдкрд░ рдЬрд╛рдПрдВ, рдФрд░ рдлрд┐рд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ "рд╕рдХреНрд╖рдо рдХрд░реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдиреАрдЪреЗ рдмрд╛рдпреАрдВ рдУрд░ рдЖрдкрдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдП рдЧрдП рд╕рднреА рд░реЗрдВрдбрд░рд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рджреБрд╢реНрдордиреЛрдВ рдФрд░ рдЧреЛрд▓реЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреБрдиреМрддрд┐рдпрд╛рдВ рд╣реИрдВ (рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдк рдЙрдирдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреЗрдВрд╕рд┐рдВрдЧ рднреА рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред рдпрджрд┐ рдЖрдк рдиреАрдЪреЗ рдХреА рдУрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЖрдЗрдЯрдо "рдбреНрд░рд╛ рдореЗрд╢ (рдЗрдВрд╕реНрдЯреЗрдВрдЯ) рд╣реЗрд▓реНрдердмрд╛рд░" рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рдпрд╣ рд╕рд┐рдВрдЧрд▓ рдХреЙрд▓ рд╕рднреА рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдСрдкрд░реЗрд╢рди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЙрд╕ рдкрд░ рдСрдкрд░реЗрд╢рди рдкрд░, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕рднреА рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдПрдХ рдХреЙрд▓ рдореЗрдВ рддреИрдпрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рдлрд╝реНрд░реЗрдо рдбреАрдмрдЧрд░ рдореЗрдВ рд╣реИ, рддреЛ рдЖрдк рд╕рд╛рдордЧреНрд░реА рд╕реЗ GPU рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░реЗрдВ, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рдХрдИ рдореЗрдВ рдмрджрд▓ рдЧрдИ, рдФрд░ рдзреНрд╡рдЬ рдХреЛ рдПрдХ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рджред
рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛, рдЪреВрдВрдХрд┐ рдпреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рд░рд▓ 2 рдбреА рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдХреЛ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рджреБрд╢реНрдордиреЛрдВ рдХреЗ рдиреАрдЪреЗ рдЕрд░реНрдзрд╡реГрддреНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЪрд╛рдк рдореЗрдВ рдШрдЯрддреЗ рд╣реИрдВ, рдпрд╛ рдЙрдирдХреЗ рд╕рд┐рд░ рдХреЗ рдКрдкрд░ рд╕реЗ rhombuses рдХреЛ рдШреБрдорд╛рддреЗ рд╣реИрдВред рдЙрд╕реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЕрднреА рднреА рдЙрди рд╕рднреА рдХреЛ рдПрдХ рдХреЙрд▓ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред