рдЬреАрдПрд▓рдИрдПрд╕ 3 рдФрд░ рд╡реЗрдмрдЬреАрдПрд▓ 2 рдореЗрдВ рдЬреАрдкреАрдпреВ рдкрд░ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдЕрджреНрд╡рд┐рддреАрдп рдХрдгреЛрдВ рдХрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо

рдПрдХ рддрдХрдиреАрдХреА-рдбреЗрдореЛ рдЧреЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЬрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рд╡рд░реНрдгрди, рдФрд░ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдЗрд╕ рдбреЗрдореЛ рдХреЗ WebGL2 рд╕рдВрд╕реНрдХрд░рдг https://danilw.itch.io/flat-maze-web рдЕрдиреНрдп рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦ рджреЗрдЦреЗрдВред



рд▓реЗрдЦ рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкрд╣рд▓рд╛ рддрд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдФрд░ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдЦреЗрд▓ рдореЗрдВ рдЖрд╡реЗрджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдкрд╣рд▓рд╛ рднрд╛рдЧ :


  • рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
  • рд▓рд┐рдВрдХ рдФрд░ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдгред
  • рддрд░реНрдХ рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдоред
  • рддрд░реНрдХ рдХреА рд╕реАрдорд╛рдПрдБред рдХреАрдбрд╝реЗ / рд╕реБрд╡рд┐рдзрд╛рдПрдБ, рдФрд░ рдХреЛрдг рдХреАрдбрд╝реЗред
  • рд╕реВрдЪрдХрд╛рдВрдХ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪред

рдЧреЗрдо рдбреЗрдореЛ рдХрд╛ рджреВрд╕рд░рд╛ рд╡рд┐рд╡рд░рдг, рджреВрд╕рд░рд╛ рднрд╛рдЧ :


  • рдЗрд╕ рддрд░реНрдХ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБред рдФрд░ рдПрдХ рдорд┐рд▓рд┐рдпрди рдкрд┐рдХреНрд╕реЗрд▓ рдХрдгреЛрдВ рдХрд╛ рддреЗрдЬреА рд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрдиред
  • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдХреЛрдб рдкрд░ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ, рджреЛ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдЯрдХрд░рд╛рд╡ рдХрд╛ рд╡рд░реНрдгрдиред рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрддред
  • рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдУрдкреЗрдВрдЬрд╛рдорд░реНрдЯ, рдФрд░ рдЫрд╛рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд╛рдпрд╛рджрд╛рд░ред рдФрд░ cyberleninka.ru рдкрд░ рд▓реЗрдЦ рд▓рд┐рдВрдХ

рднрд╛рдЧ 1


1. рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ


рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдХрдг рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ ID , рдЖрдкрд╕ рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ-рд╣рдЬрд╛рд░реЛрдВ рдХрдгреЛрдВ рдХрд╛ рдЯрдХрд░рд╛рд╡ / рднреМрддрд┐рдХреА рд╣реИред


рдЬрдм рдкреНрд░рддреНрдпреЗрдХ рдХрдг рдХреЛ тАЛтАЛрдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд┐рд╕реА рднреА рдХрдг рдХреЗ рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрддрд╛ рд╣реИ , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреНрд░рд╡реНрдпрдорд╛рди, рдЗрд╕рдХрд╛ рд╕реНрд╡рд╛рд╕реНрдереНрдп (hp) рдпрд╛ рдХреНрд╖рддрд┐, рддреНрд╡рд░рдг, рдордВрджреА, рдЬреЛ рдХрд┐ рдХрдгреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ / рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдШрдЯрдирд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╕реНрддреБрдУрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХрдг рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рдЯрд╛рдЗрдорд░ рднреА рд╣реИрдВред , рдФрд░ рдЗрддрдиреЗ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИред


GLSL рдкрд░ рд╕рднреА рддрд░реНрдХ рдХрд┐рд╕реА рднреА рдЧреЗрдо рдЗрдВрдЬрди рдФрд░ рдХрд┐рд╕реА рднреА OS рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ GLES3 рд╕рдкреЛрд░реНрдЯ рд╣реИред


рдХрдгреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдлреНрд░реЗрдордмрдлрд╝рд░ (рдлреИрдмреЛ, рд╕рднреА рдкрд┐рдХреНрд╕реЗрд▓) рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред


рдХрдгреЛрдВ рдХреА рдПрдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рд╕рдВрдЦреНрдпрд╛ (рдЬрдм рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реЛрддреА рд╣реИ) (Resolution.x*Resolution.y/2)/2 ред x (Resolution.x*Resolution.y/2)/2 x рд╣рд░ рджреВрд╕рд░рд╛ рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИ рдФрд░ y рдореЗрдВ рд╣рд░ рджреВрд╕рд░рд╛ рдкрд┐рдХреНрд╕реЗрд▓ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд▓реЙрдЬрд┐рдХ рд╡рд┐рд╡рд░рдг рдРрд╕рд╛ рдХрд╣рддрд╛ рд╣реИред


рд▓реЗрдЦ рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдиреНрдпреВрдирддрдо рддрд░реНрдХ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░реЗ рдореЗрдВ, рдПрдХ рдЦреЗрд▓ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХреА рд╢рд░реНрддреЛрдВ рдХреЗ рд╕рд╛рде рддрд░реНрдХред


2. рд▓рд┐рдВрдХ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг


рдореИрдВрдиреЗ рдЗрд╕ рддрд░реНрдХ рдкрд░ рддреАрди рдбреЗрдореЛ рдХрд┐рдП:


1. GLSL рдХреЗ рдЯреБрдХрдбрд╝реЗ-рдЯреБрдХрдбрд╝реЗ рдкрд░, shadertoy рдкрд░ https://www.shadertoy.com/view/tstSz7 рдкрд░ , рд╕рднреА рддрд░реНрдХ рдореЗрдВ рдмрдлрд╝рд░ рдХреЛрдб рджреЗрдЦреЗрдВред рдпрд╣ рдХреЛрдб рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдпреВрд╡реА рдХреЗ рд╕рд╛рде рдПрдХ рдордирдорд╛рдирд╛ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЕрдВрд╢-рдХрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдЯреБрдХрдбрд╝реЗ-рдЯреБрдХрдбрд╝реЗ рдкрд░, рд╕реИрдХрдбрд╝реЛрдВ рдХрдгреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред



2. рдЗрдВрд╕реНрдЯреЗрдВрдЯреЗрдб рдкрд╛рд░реНрдЯрд┐рдХрд▓реНрд╕ рдХреЛ рд▓реЙрдЬрд┐рдХ рд▓реЙрдЬрд┐рдХ (рдЧреЛрдбреЛрдЯ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)



рд▓рд┐рдВрдХ рд╡реЗрдм рд╕рдВрд╕реНрдХрд░рдг , рдПрдХреНрд╕рдИ (рдЬреАрдд) , рд╕реНрд░реЛрдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрдг_2D_self_collision ред


рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг: рдпрд╣ рдЗрдВрд╕реНрдЯреЗрдВрд╕реНрдб-рдХрдгреЛрдВ рдкрд░ рдПрдХ рдмреБрд░рд╛ рдкреНрд░рджрд░реНрд╢рди рд╣реИ , рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдореИрдВ рдЕрдзрд┐рдХрддрдо рд╡реГрджреНрдзрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдкреВрд░рд╛ рдирдХреНрд╢рд╛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, 640x360 рдХрдг (230k) рд╣рдореЗрд╢рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣ рдмрд╣реБрдд рдХреБрдЫ рд╣реИред рдЦреЗрд▓ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдиреАрдЪреЗ рджреЗрдЦреЗрдВ, рд╡рд╣рд╛рдВ рдореИрдВрдиреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдгреЛрдВ рдХреЗ рдмрд┐рдирд╛, рдЗрд╕реЗ рд╕рд╣реА рдХрд┐рдпрд╛ред (рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдПрдХ рдХрдг рд╕реВрдЪрдХрд╛рдВрдХ рддреНрд░реБрдЯрд┐ рд╣реИ, рдпрд╣ рдХреЛрдб рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)


3. рдЦреЗрд▓, рдЦреЗрд▓ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗред рд▓рд┐рдВрдХ рд╡реЗрдм рд╕рдВрд╕реНрдХрд░рдг , exe (рдЬреАрдд) , рд╕реНрд░реЛрдд


3. рддрд░реНрдХ рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо


рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:


рддрд░реНрдХ рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓реА рд░реЗрдд рдХреЗ рд╕рдорд╛рди рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдВрд╢рд┐рдХ рдореВрд▓реНрдп (рдЙрд╕рдХреЗ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рднреАрддрд░ рд╢рд┐рдлреНрдЯ) рдФрд░ рд╡рд░реНрддрдорд╛рди рддреНрд╡рд░рдг рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред


рддрд░реНрдХ рдкрд┐рдХреНрд╕рд▓ рдХреЛ рддреНрд░рд┐рдЬреНрдпрд╛ 1 рдореЗрдВ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ, рдХрд┐ рдЙрдирдХреА рдЕрдЧрд▓реА рд╕реНрдерд┐рддрд┐ рдЗрд╕ рдкрд┐рдХреНрд╕реЗрд▓ рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреА рд╣реИ (рдЗрд╕ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдХрд╛рд░рдг, рдиреАрдЪреЗ рдкреНрд░рддрд┐рдмрдВрдз рджреЗрдЦреЗрдВ) , рдкреНрд░рддрд┐рдХрд░реНрд╖рдг (рдЯрдХрд░рд╛рд╡) рдХреЗ рд▓рд┐рдП рддреНрд░рд┐рдЬреНрдпрд╛ 2 рдореЗрдВ рднреА рдкрд┐рдХреНрд╕реЗрд▓ред


рдпреВрдиреАрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рддрд░реНрдХ рдХреЛ рдЗрдВрдЯ-рдлреНрд▓реЛрдЯ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдХреЗ, рдФрд░ рджрд┐рдП рдЧрдП рдкреЛрдЬрд╝рд┐рд╢рди рдФрд░ pos рд╕реНрдкреАрдб рдХреЗ рд▓рд┐рдП рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдХреЗ рдмрдЪрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдбреЗрдЯрд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: (рдЗрд╕ рдмрдЧ рдХреЗ рдХрд╛рд░рдг, рдкреНрд░рддрд┐рдмрдВрдз рджреЗрдЦреЗрдВ)


 pixel.rgba r=[0xfffff-posx, 0xf-data] g=[0xfffff-posy, 0xf-data] b=[0xffff-velx, 0xff-data] a=[0xffff-vely, 0xff-data] 


рдХреЛрдб рдореЗрдВ , BufC https://www.shadertoy.com/view/tstSz7 , 115 рдЯреНрд░рд╛рдВрд╕реНрдлрд╝реЙрд░реНрдо-рдЪреЗрдХ, 139 рдЯрдХреНрдХрд░-рдЪреЗрдХ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдирдВрдмрд░ред


рдЖрд╕рдиреНрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдпреЗ рд╕рд░рд▓ рд▓реВрдк рд╣реИрдВред рдФрд░ рд╕реНрдерд┐рддрд┐ рдпрд╣ рд╣реИ, рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╡рд░реНрддрдорд╛рди рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд░рд╛рдмрд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рдЗрд╕ рдкрд┐рдХреНрд╕реЗрд▓ (рдЗрд╕ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдХрд╛рд░рдг) , рдФрд░ рдкрдбрд╝реЛрд╕реА рдкрд┐рдХреНрд╕рд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ vel рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдорд╛рди рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдХреЛрдИ рд╣реЛред


рдпрд╣ рд╕рдм рдХрдг рддрд░реНрдХ рд╣реИред


рдХрдгреЛрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ 1 рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рджреВрд░реА рдкрд░ рд░рдЦрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрджрд┐ рд╡реЗ 1 рдкрд┐рдХреНрд╕реЗрд▓ рд╕реЗ рдЕрдзрд┐рдХ рдХрд░реАрдм рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддрд┐рдХрд░реНрд╖рдг рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЦреЗрд▓ рдореЗрдВ рдПрдХ рднреВрд▓рднреБрд▓реИрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдирдХреНрд╢рд╛, рдХрдг рдЙрдирдХреЗ рдмреАрдЪ 1 рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рджреВрд░реА рдХреЗ рдХрд╛рд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЦрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред


рдЗрд╕рдХреЗ рдмрд╛рдж рдкреНрд░рддрд┐рдкрд╛рджрди (рд░реЗрдВрдбрд░рд┐рдВрдЧ) рдЖрддрд╛ рд╣реИ, рдЦрдВрдб-рд╢реЗрдбрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдХреНрд╕рд▓ рдХреЛ 1 рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдВрд╕реНрдЯреЗрдВрдЯреЗрдб-рдкрд╛рд░реНрдЯрд┐рдХрд▓реНрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдПрдХ рд░реИрдЦрд┐рдХ рджреГрд╢реНрдп рд╕реЗ рджреЛ рдЖрдпрд╛рдореА рд╕рд░рдгреА рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд INSTANCE_ID рдкрддреЗ рдкрд░ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


4. рддрд░реНрдХ рдХреА рд╕реАрдорд╛ред рдмрдЧреНрд╕ / рд╕реБрд╡рд┐рдзрд╛рдПрдБ, рдФрд░ ANGLE рдмрдЧреНрд╕


  1. рдкрд┐рдХреНрд╕реЗрд▓ рдЖрдХрд╛рд░ , рдХреЛрдб рдореЗрдВ BALL_SIZE , рдЧрдгрдирд╛ рдХреА рд╕реАрдорд╛ рдХреЗ рднреАрддрд░, sqrt(2)/2 рд╕реЗ рдЕрдзрд┐рдХ рдФрд░ 1 рд╕реЗ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред 1 рдХреЗ рдХрд░реАрдм, рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдЕрдВрджрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реНрдерд╛рди (рдкрд┐рдХреНрд╕реЗрд▓ рд╕реНрд╡рдпрдВ), рдЬрд┐рддрдирд╛ рдХрдо рд╕реНрдерд╛рдиред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдПрдХ-рджреВрд╕рд░реЗ рдореЗрдВ рди рдЧрд┐рд░реЗрдВ, 1 рд╕реЗ рдХрдо рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЫреЛрдЯреА рд╡рд╕реНрддреБрдПрдВ рд╣реЛрдВ, рддреЛ 1 рдкрд┐рдХреНрд╕реЗрд▓ (рдЧрдгрдирд╛) рд╕реЗ рдХрдо рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рднреНрд░рдо рдкреИрджрд╛ рд╣реЛрддрд╛ рд╣реИред
  2. рдЧрддрд┐ 1 рдкрд┐рдХреНрд╕реЗрд▓ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЕрдиреНрдпрдерд╛ рдкрд┐рдХреНрд╕реЗрд▓ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рд▓реЗрдХрд┐рди рдлреНрд░реЗрдо рдкреНрд░рддрд┐ 1 рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдЧрддрд┐ рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрджрд┐ рдЖрдк рдХрдИ рдлреНрд░реЗрдордмрдлрд╝рд░ (рдлрд╝реЛрдмреЛ / рд╡реНрдпреВрдкреЛрд░реНрдЯ) рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдХрдИ рд▓реЙрдЬрд┐рдХ рдЪрд░рдгреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдлрд╝реНрд░реЗрдо-рдЧрддрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝реЗрдмреЛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рдЧреБрдирд╛ рдмрдврд╝ рдЬрд╛рдПрдЧреАред рдпрд╣ рдореИрдВрдиреЗ рдлрд▓реЛрдВ рдХреЗ рдбреЗрдореЛ рдореЗрдВ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ shadertoy (bufC рдХреЛ bufD рдкрд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛) рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
  3. рджрдмрд╛рд╡ рд╕реАрдорд╛ (рдЬреИрд╕реЗ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг, рдпрд╛ рдЕрдиреНрдп рдмрд▓-рд╕рд╛рдорд╛рдиреНрдп-рдирдХреНрд╢рд╛)ред рдпрджрд┐ рдХрдИ рдкрдбрд╝реЛрд╕реА рдкрд┐рдХреНрд╕реЗрд▓ рдЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рд▓реЗрддреЗ рд╣реИрдВ (рдКрдкрд░ рдЪрд┐рддреНрд░ рджреЗрдЦреЗрдВ), рддреЛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдмрдЪрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╢реЗрд╖ рдкрд┐рдХреНрд╕реЗрд▓ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред Shadertoy рдкрд░ рдбреЗрдореЛ рдореЗрдВ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ , рдорд╛рдЙрд╕ рдХреЛ рдлреЛрд░реНрд╕ рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ, MOUSE_F рдХрд╛ рдорд╛рди рдХреЙрдорди 10 рдореЗрдВ рдмрджрд▓реЗрдВ, рдФрд░ рдХрдгреЛрдВ рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдХреЛрдиреЗ рддрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗрдВ, рд╡реЗ рдПрдХ рджреВрд╕рд░реЗ рдореЗрдВ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдпрд╛ maxG рдореЗрдВ рдЧреБрд░реБрддреНрд╡ рдорд╛рди maxG рд╕рд╛рде рд╕рдорд╛рди рд╣реИ ред
  4. рдПрдВрдЧрд▓ рдореЗрдВ рдмрдЧред рдЗрд╕ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП GPU (рдЗрдВрд╕реНрдЯреЗрдВрд╕реНрдб) -рдкрд╛рд░реНрдЯрд┐рдХрд▓ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ (рд╕рд╕реНрддрд╛, рддреЗрдЬ) рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП , рдЕрдиреНрдп рд╕рднреА рдХрдг рдкреИрд░рд╛рдореАрдЯрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП- shader рдореЗрдВ ред рд▓реЗрдХрд┐рди рдПрдВрдЧрд▓ рд╢реИрдбрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝реЗрдмреЛ-рдЯреЗрдХреНрд╕рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ , рдЗрд╕рд▓рд┐рдП рд▓реЙрдЬрд┐рдХ рдХреЗ рднрд╛рдЧ рдХреА рдЧрдгрдирд╛ рдХреЛ рд╡реЗрд░рдЯреЗрдХреНрд╕-рд╢реЗрдбрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╢реЗрдбрд░ рд╕реЗ рдЗрдВрдбреЗрдХреНрд╕ рдирдВрдмрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореИрдВрдиреЗ GPU рдХрдгреЛрдВ рдХреЗ рд╕рд╛рде рджреЛрдиреЛрдВ рдбреЗрдореЛ рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛ред
  5. рджреЛрдиреЛрдВ рдбреЗрдореЛ рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рдмрдЧ (рдЦреЗрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рд╕реНрдерд┐рддрд┐ рдорд╛рди рдЦреЛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдпрд╣ 1/0xfffff рдХрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ 1/0xfffff рдмрдЧ рдкрд░реАрдХреНрд╖рдг рдпрд╣рд╛рдВ https://www.shadertoy.com/view/WdtSWS рд╣реИ
    рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдЧ рдХрд╣рд╛ред

рдмрдЧ рдХреЛ рдареАрдХ рдХрд░реЗрдВ:
рд╕реНрдерд┐рддрд┐ рдорд╛рди рдХреЛ рдЗрдВрдЯ-рдлреНрд▓реЛрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рди рдХрд░реЗрдВ , рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ 0xff рдЧрд╛рдпрдм рд╣реЛ 0xff , 8 рдмрд┐рдЯреНрд╕ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП 0xffff рд╡реИрд▓реНрдпреВ рдмрдиреА рд░рд╣реЗрдЧреА, рдЬреЛ рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ рд╕рдХрддреА рд╣реИред
рдореИрдВрдиреЗ рдЦреЗрд▓ рдбреЗрдореЛ рдореЗрдВ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 0xffff рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ 0xffff рдЬрд╣рд╛рдВ рдХрдг рдкреНрд░рдХрд╛рд░, рдПрдиреАрдореЗрд╢рди рдЯрд╛рдЗрдорд░, рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЕрднреА рднреА рдЦрд╛рд▓реА рд╕реНрдерд╛рди рд╣реИред


5. рдЗрдВрдбреЗрдХреНрд╕ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ


рдЗрдВрд╕реНрдЯреЗрдВрдЯ-рдкрд╛рд░реНрдЯрд┐рдХрд▓ рдХрд╛ рдЕрдкрдирд╛ INSTANCE_ID , рдпрд╣ рдлреНрд░реЗрдо рд▓реЙрдХрд░ рдХреА рдмрдирд╛рд╡рдЯ рд╕реЗ рдПрдХ рдХрдг рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдг рд▓реЙрдЬрд┐рдХ (bufC, shader рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг) рд╣реЛрддрд╛ рд╣реИ, рдЕрдЧрд░ рд╣рдо рдЗрд╕ рдХрдг рдХреЗ рдХрдг рдХреЛ тАЛтАЛрдЕрдирдкреИрдХ рдХрд░рддреЗ рд╣реИрдВ (рджреЗрдЦреЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ) рдЗрд╕ рдЖрдИрдбреА рдХреА рдЖрдИрдбреА , рдЗрд╕ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рд╣рдо рдХрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдмрдирд╛рд╡рдЯ рдкрдврд╝рддреЗ рд╣реИрдВ (bufB) , рдПрдХ shader рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг)ред


Shadertoy рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, bufB рдкреНрд░рддреНрдпреЗрдХ рдХрдг рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд░рдВрдЧ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рджреНрд░рд╡реНрдпрдорд╛рди, рддреНрд╡рд░рдг, рдордВрджреА рдиреЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдерд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреЛрдИ рднреА рддрд╛рд░реНрдХрд┐рдХ рдХреНрд░рд┐рдпрд╛рдПрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрд┐рд╕реА рднреА рдХрдг рдХреЛ тАЛтАЛрдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ (teleport) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдХреЛрдб рдореЗрдВ рд╕рдВрдЧрдд рддрд╛рд░реНрдХрд┐рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ), рдЖрдк рдХреАрдмреЛрд░реНрдб рд╕реЗ рдХрд┐рд╕реА рднреА рдХрдг рдпрд╛ рд╕рдореВрд╣ рдХреА рдЧрддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...


рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдХрдг рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рд╕рд╛рдзрд╛рд░рдг рдХрдг рдереЗ, GPU рдХрдг рд╕реЗ рджреЛ-рддрд░рдлрд╛ рдкрд╣реБрдВрдЪ рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕реАрдкреАрдпреВ рд╕реЗ рднреА рдЖрдк рдХрдг рд░рд╛рдЬреНрдп рдХреЛ рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ (рддрд╛рд░реНрдХрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдмрдирд╛рд╡рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдбреЗрдЯрд╛ рдмрдлрд░)ред


рднрд╛рдЧ реи


1. рдЗрд╕ рддрд░реНрдХ рдХреА рдкреНрд░рдпреБрдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБред рдФрд░ рдПрдХ рд▓рд╛рдЦ рдкрд┐рдХреНрд╕реЗрд▓ рдХрдгреЛрдВ рдХрд╛ рддреЗрдЬреА рд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди


рдХрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдлреНрд░реЗрдордмрдлрд╝рд░ (рдлреИрдмреЛ / рд╡реНрдпреВрдкреЛрд░реНрдЯ) рдХрд╛ рдЖрдХрд╛рд░ 1280x720 рд╣реИ, рднрд╛рдЧреЛрдВ 1 рдХреЗ рдмрд╛рдж рд╕реНрдерд┐рдд рд╣реИрдВ, рдпрд╣ 230 рд╣рдЬрд╛рд░ рд╕рдХреНрд░рд┐рдп рдХрдг (рднреВрд▓рднреБрд▓реИрдпрд╛ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рддрддреНрд╡) рд╣реИред
рд╕реНрдХреНрд░реАрди рдкрд░ рд╣рдореЗрд╢рд╛ 12 рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЬреАрдкреАрдУ-рдЗрдВрд╕реНрдЯреЗрдВрдЯ рдХрдг рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред


рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:


  • рдЦрд┐рд▓рд╛рдбрд╝реА рддрд░реНрдХ рдХрдг рддрд░реНрдХ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдХрдг рдмрдлрд░ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИред
  • рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдЯрдХрд░рд╛рддреЗ рд╣реА рдЦрд┐рд▓рд╛рдбрд╝реА рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
  • рд░рд╛рдХреНрд╖рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдПрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддреА рд╣реИрдВред
  • рдЦрд┐рд▓рд╛рдбрд╝реА рдкрд░ 2 рд╣рдорд▓реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдПрдХ рдХреЗ рдЖрд╕рдкрд╛рд╕ рд╕рдм рдХреБрдЫ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдлрд╛рдпрд░рдмреЙрд▓ рдЬреИрд╕реЗ рдХрдг рдмрдирд╛рддрд╛ рд╣реИ (рдЪрд┐рддреНрд░ рдЗрд╕ рддрд░рд╣ рд╣реИ)
  • рдлрд╛рдпрд░рдмреЙрд▓ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдкрдирд╛ рджреНрд░рд╡реНрдпрдорд╛рди рд╣реИ, рдФрд░ рдЕрдиреНрдп рдХрдгреЛрдВ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдХреЗ рджреНрд╡рд┐рдкрдХреНрд╖реАрдп рдЯреНрд░реИрдХрд┐рдВрдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
  • рдЕрдиреНрдп рдХрдг рдЬреИрд╕реЗ рдХрд┐ рдХрд╛рд╕реНрдЯ рдФрд░ рдЬрд╝реАрдореН (рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдбрд╛рд▓реА рдЕрдЬреЗрдп рд╣реИ) рдПрдХ рдЖрдЧ рдХреЗ рдЧреЛрд▓реЗ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдореЗрдВ рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рддреА рд╣реИ
  • рдПрдХ рдЯрдХреНрдХрд░ рдХреЗ рдмрд╛рдж рдЖрдЧ рдХрд╛ рдЧреЛрд▓рд╛ рдирд┐рдХрд▓рддрд╛ рд╣реИ
  • рднреМрддрд┐рдХреА рдХреЗ рд╕реНрддрд░ - рдкреЗрдбрд╝ рдФрд░ рд╡рд░реНрдЧ рдЦрд┐рд▓рд╛рдбрд╝реА рджреНрд╡рд╛рд░рд╛ рдЦрджреЗрдбрд╝ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдиреНрдп рдХрдг рдЖрдкрд╕ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдЧ рдХреЗ рдЧреЛрд▓реЗ рдкрд░ рдХреЛрдИ рддреНрд╡рд░рдг рдХрд╛рд░реНрдп рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
  • рдПрдиреАрдореЗрд╢рди рдЯрд╛рдЗрдорд░ рдкреНрд░рддреНрдпреЗрдХ рдХрдг рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрдВ

рдлрд▓реЛрдВ рдХреЗ рдбреЗрдореЛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЬрд╣рд╛рдВ рдУрд╡рд░рд╣реЗрдб рд╣реИ, рдЗрд╕ рдЧреЗрдо рдореЗрдВ GPU- рдЗрдВрд╕реНрдЯреЗрдВрдЯ рдХрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗрд╡рд▓ 12 рд╣рдЬрд╛рд░ рд╣реИред


рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдирдХреНрд╢реЗ рдХреЗ рд╡рд░реНрддрдорд╛рди рдЬрд╝реВрдо ( рдЬрд╝реВрдо ) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ, рдФрд░ рд╡реГрджреНрдзрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рддрдХ рд╕реАрдорд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдХреНрд░реАрди рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕рд╛рде рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╛рд░рд┐рдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рдмрд╣реБрдд рд╕реНрдерд┐рддрд┐рдЬрдиреНрдп рд╣реИ, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╡рд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрд╡реЗрджрди рдорд┐рд▓реЗрдЧрд╛ред


2. рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдХреЛрдб рдкрд░ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВред


рд╕рднреА рдЧреЗрдо рдХреЛрдб GPU рдкрд░ рд╣реИред


/Shaders/scene2/particle_logic2.shader рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд░реНрдЯреЗрдХреНрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░реАрди рдореЗрдВ рдХрдгреЛрдВ рдХреА рд╢рд┐рдлреНрдЯ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдПрдХ рдХрдг shader рдлрд╝рд╛рдЗрд▓ (рд╡рд░реНрдЯреЗрдХреНрд╕ рдФрд░ рдЯреБрдХрдбрд╝рд╛) рд╣реИ, рди рдХрд┐ рдПрдХ рдЗрдВрд╕реНрдЯреЗрдВрдЯ shader, рдЗрдВрд╕реНрдЯреЗрдВрдЯ shader рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдХрд╛рд░рдг рдЧреБрдЬрд░рддрд╛ рд╣реИ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдмрдЧред


рдХрдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдгреЛрдВ рдХреА рдмрд╛рддрдЪреАрдд рдХрд╛ рдкреВрд░рд╛ рддрд░реНрдХ, рдпрд╣ рдПрдХ рдлреНрд░реЗрдо shader shader рдлрд╝рд╛рдЗрд▓ shaders / scene2 / рдХрдгреЛрдВ_fbo_logic.shader рдХреА рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ


 // 1-2 ghost // 3-zombi // 4-18 blocks // +20 is on fire // 40 is bullet(right) 41 left 42 top 43 down 

рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдкрд┐рдХреНрд╕реЗрд▓ [pos.x, pos.y, [0xffff-vel.x, 0xff-data1],[0xffff-vel.y, 0xff-data2]]
data1 рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ, data2 рдПрдХ HP рдпрд╛ рдЯрд╛рдЗрдорд░ рд╣реИред


рдЯрд╛рдЗрдорд░ рдкреНрд░рддреНрдпреЗрдХ рдХрдг рдореЗрдВ рдлрд╝реНрд░реЗрдо рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЯрд╛рдЗрдорд░ рдХрд╛ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп 255 рд╣реИ, рдореБрдЭреЗ рдЗрд╕рдХреА рдмрд╣реБрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдХреЗрд╡рд▓ 1-16 рдЕрдзрд┐рдХрддрдо ( 0xf ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ 0xf рдЕрдкреНрд░рдпреБрдХреНрдд рд░рд╣рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдЪрдкреА рдореВрд▓реНрдп рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред (рд╡рд╣ рд╣реИ, рд╣рд╛рдБ, рдореИрдВ рдЯрд╛рдЗрдорд░ рдХреЗ рд▓рд┐рдП 0xff рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ , рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдиреАрдореЗрд╢рди рдХреЗ 16 рд╕реЗ рдХрдо рдлреНрд░реЗрдо рд╣реИрдВ, рдФрд░ 0xf рдкрд░реНрдпрд╛рдкреНрдд 0xf , рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА)
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 0xff рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЬрд▓рддреЗ рд╣реБрдП рдкреЗрдбрд╝реЛрдВ рдХреЗ рдЯрд╛рдЗрдорд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ 255 рдлреНрд░реЗрдо рдХреЗ рдмрд╛рдж рд▓рд╛рд╢ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рдЯрд╛рдЗрдорд░ рддрд░реНрдХ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХрдг type_hp_logic рд╢реЗрдбрд░ (рдКрдкрд░ рд▓рд┐рдВрдХ) рдореЗрдВ type_hp_logic рдореЗрдВ рд╣реИред


рдПрдХ рджреЛ-рддрд░рдлрд╝рд╛ рдЯрдХреНрдХрд░ рдСрдкрд░реЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬрдм рдПрдХ рдЖрдЧ рдХрд╛ рдЧреЛрд▓рд╛ рдкрд╣рд▓реА рд╣рд┐рдЯ рдкрд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рдФрд░ рдЬрд┐рд╕ рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдорд╛рд░рд╛ рдЧрдпрд╛ рдерд╛ рд╡рд╣ рднреА рдЕрдкрдиреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддрд╛ рд╣реИред


рдлрд╝рд╛рдЗрд▓ рд╢реЗрдбреНрд╕ / рд╕реАрди 2 / рдХрдг_рдлрдмреЛ_рд▓реЙрдЬрд┐рдХ.рд╢реЗрдпрд░ рд▓рд╛рдЗрди 438:


 if (((real_index == 40) || (real_index == 41) || (real_index == 42) || (real_index == 43)) && (type_hp.y > 22)) { int h_id = get_id(fragCoord + vec2(float(x), float(y))); ivec2 htype_hp = unpack_type_hp(h_id); int hreal_index = htype_hp.x; if ((hreal_index != 40) && (hreal_index != 41) && (hreal_index != 42) && (hreal_index != 43)) type_hp.y = 22; } else { if (!need_upd) { int h_id = get_id(fragCoord + vec2(float(x), float(y))); ivec2 htype_hp = unpack_type_hp(h_id); int hreal_index = htype_hp.x; if (((hreal_index == 40) || (hreal_index == 41) || (hreal_index == 42) || (hreal_index == 43)) && (htype_hp.y > 22)) { need_upd = true; } } } 

real_index рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ, рдкреНрд░рдХрд╛рд░ рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ, 40-43 рдПрдХ рдЖрдЧ рдХрд╛ рдЧреЛрд▓рд╛ рд╣реИ ред
рдЖрдЧреЗ type_hp.y > 22 рдЯрд╛рдЗрдорд░ рдХрд╛ рдореВрд▓реНрдп рд╣реИ, рдЕрдЧрд░ рдпрд╣ 22 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рддреЛ рдЖрдЧ рдХрд╛ рдЧреЛрд▓рд╛ рдХреБрдЫ рднреА рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
h_id = get_id(... рд╕рд╛рдордиреЗ рдЖрдП рдХрдг рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ HP (рдЯрд╛рдЗрдорд░) рдХрд╛ рдорд╛рди рд▓реЗрдВ
hreal_index != 40... рдЙрдкреЗрдХреНрд╖рд┐рдд рдкреНрд░рдХрд╛рд░ (рдЕрдиреНрдп рдЖрдЧ рдХрд╛ рдЧреЛрд▓рд╛ )
type_hp.y = 22 рдПрдХ рдЯрд╛рдЗрдорд░ type_hp.y = 22 рдкрд░ рд╕реЗрдЯ рд╣реИ, рдпрд╣ рдПрдХ рд╕рдВрдХреЗрддрдХ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЧ рдХрд╛ рдЧреЛрд▓рд╛ рдПрдХ рд╡рд╕реНрддреБ рд╕реЗ рдЯрдХрд░рд╛ рдЧрдпрд╛ред
else { if (!need_upd) рдЪрд░ need_upd рдЪреЗрдХ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рджреЛрд╣рд░рд╛рдпрд╛ рдЯрдХрд░рд╛рд╡ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд▓реВрдк рдореЗрдВ рд╣реИ, рд╣рдо рдПрдХ рдлрд╛рдпрд░рдмреЙрд▓ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВред
h_id = get_id(... рдпрджрд┐ рдЕрднреА рддрдХ рдХреЛрдИ рдЯрдХреНрдХрд░ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рддреЛ рд╣рдо рдкреНрд░рдХрд╛рд░ рдФрд░ рдЯрд╛рдЗрдорд░ рдХреА рдПрдХ рд╡рд╕реНрддреБ рд▓реЗрддреЗ рд╣реИрдВред
hreal_index == 40...htype_hp.y > 22 рдХрд┐ рдЯрдХреНрдХрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдЧ рдХрд╛ рдЧреЛрд▓рд╛ рд╣реИ рдФрд░ рдпрд╣ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред
need_upd = true flag рдХрд┐ рдЖрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред


рдЖрдЧреЗ рдХреА рд▓рд╛рдЗрди 481
if((need_upd)&&(real_index<24)){ real_index <24 рдкреНрд░рдХрд╛рд░ рдХреЗ 24 рд╕реЗ рдХрдо рдЧреИрд░ рдЬрд▓рддреЗ рд╣реБрдП рдЬрд╝реЛрдВрдмреА рдФрд░ рднреВрдд рдХреЗ рдкреЗрдбрд╝ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рдо рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд╕реНрддреБрдУрдВ рдХреА рд▓рдЧрднрдЧ рдХреЛрдИ рднреА рдмрд╛рддрдЪреАрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред


рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд:


рдлрд╛рдЗрд▓ рд╢реЗрдбрд░реНрд╕ / рд╕реАрди 2 / рд▓реЙрдЬрд┐рдХ.рд╢реЗрдпрд░ рд▓рд╛рдЗрди 143 рдлрдВрдХреНрд╢рди player_collision


рдпрд╣ рддрд░реНрдХ 4x4 рдкрд┐рдХреНрд╕реЗрд▓ рддреНрд░рд┐рдЬреНрдпрд╛ рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдИ рддрддреНрд╡ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдЬрд╛рдБрдЪ рдЕрдЧрд▓реЗ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдПрдХ рд░рд╛рдХреНрд╖рд╕ рд╣реИ рддреЛ рд╣рдо рдЦрд┐рд▓рд╛рдбрд╝реА рд╕реЗ рдПрдЪрдкреА рд▓реЗрддреЗ рд╣реИрдВред


рдпрд╣ рдереЛрдбрд╝рд╛ рдЧрд▓рдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ , рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдПрдХ рд╣рдорд▓реЗ рдХреЗ рджреМрд░рд╛рди рдЦрд┐рд▓рд╛рдбрд╝реА рдФрд░ рдкреНрд░рддрд┐рдХрд░реНрд╖рдг рдкреНрд░рднрд╛рд╡ рд╕реЗ рдХрдг рджреВрд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ:


рдПрдХ рдлрд╝реНрд░реЗрдордмрдлрд╝рд░ (рд╡реНрдпреВрдкреЛрд░реНрдЯ) рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрддрдорд╛рди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрдг ( рдХрдг_рдлреЛрдм_рд▓реЙрдЬрд┐рдХ.рд╢реЗрдпрд░ ) рдЗрд╕реЗ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ (рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ) рдмрдирд╛рд╡рдЯ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдореВрд▓реНрдп рдХреЛ рдЙрд╕рдХреА рдЧрддрд┐ рдФрд░ рд╕реНрдерд┐рддрд┐ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░реНрдХ рдХрд╛ рдкреВрд░рд╛ рдХреЛрдб рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рд╕рд┐рд░реНрдл рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдмрд▓ рд╣реИ


рдмрд╛рдПрдВ рдорд╛рдЙрд╕ рдмрдЯрди рдХреЗ рдХреНрд▓рд┐рдХ рдкрд░, рдлрд╛рдпрд░рдмреЙрд▓ рдЧреЛрд▓реЗ рдЙрдбрд╝рддреЗ рд╣реИрдВ; рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдмрд╣реБрдд рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдирд╣реАрдВ рд╣реИ , рд╡реЗ рд╕рд╣реА рдирд╣реАрдВ рдереЗ рдФрд░ рдЗрд╕ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред


рдЖрдк рдпрд╛ рддреЛ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реА рдкрд╛рд░реА рдХреЗ рд╕рд╛рде рд╕реНрдкреЙрди рдХрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд╖реЗрддреНрд░ (рдЖрдХрд╛рд░) рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
рдпрд╛ рдЖрдк рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╛рдпрд░рдмреЙрд▓ рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╡рд╕реНрддреБ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд╛рдпрд░рдмреЙрд▓ рд╕реЗ рдХрдгреЛрдВ рдХреЛ рдзрдХреНрдХрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдлрд░ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ ...
рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рд╕рдордЭреЗрдВрдЧреЗред


3. рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдВрдХ рдУрдкреЗрдВрдЬрд╛рдорд░реНрдЯ рдФрд░ рдЫрд╛рдпрд╛ рд╢реЗрдбрд░ рдХреЗ рд╕рд╛рде


рдореБрдЭреЗ cyberleninka.ru рдкрд░ рдПрдХ рд▓реЗрдЦ рдХрд╛ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛
рдЬрд┐рд╕рдореЗрдВ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд░реНрдгрди, рд╢рд╛рдпрдж рдЗрд╕рдореЗрдВ , рдореЗрд░реЗ, рд▓реЗрдЦ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдФрд░ рд╕рд╣реА рд╡рд┐рд╡рд░рдг рд╣реИред


рдЗрд╕ shader https://www.shadertoy.com/view/XsK3RR (рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдХреЛрдб рд╣реИ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЫрд╛рдпрд╛рджрд╛рд░ рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рд╢реЗрдбрд░ 1 рдбреА рд░реЗрдбрд┐рдпрд▓ рд▓рд╛рдЗрдЯрдореИрдк рдмрдирд╛рддрд╛ рд╣реИ



рдФрд░ рдлрд░реНрд╢ рдкреЗрдВрдЯрд┐рдВрдЧ рдХреЛрдб рдореЗрдВ рдЫрд╛рдпрд╛рдВрдХрди / рджреГрд╢реНрдп 2 / mainImage.shader


рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдВрдХ , рд╕рд╛рдЗрдЯ рд╕реЗ рдЧреЗрдо рдХреЗ рд╕рднреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ https://opengameart.org
fireball https://opengameart.org/content/animated-traps-and-obstructionles
рдЪрд░рд┐рддреНрд░ https://opengameart.org/content/legend-of-faune
рдкреЗрдбрд╝ рдФрд░ рдмреНрд▓реЙрдХ https://opengameart.org/content/lolly-set-01
(рдФрд░ opengameart рдХреЗ рд╕рд╛рде рдХреБрдЫ рдФрд░ рддрд╕реНрд╡реАрд░реЗрдВ)


рдореЗрдиреВ рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ 2D_GI shader рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗ , рдРрд╕реЗ рдореЗрдиреВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛:



рдЕрдВрдд рддрдХ рдХрд┐рд╕рдиреЗ рдкрдврд╝рд╛ - рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛ :)
рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ, рддреЛ рдкреВрдЫреЗрдВ, рдореИрдВ рдЕрдиреБрд░реЛрдз рдкрд░ рд╡рд┐рд╡рд░рдг рдХреЛ рдкреВрд░рдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

Source: https://habr.com/ru/post/hi474676/


All Articles