рдЪрд┐рддреНрд░ 1. рдкреЛрд╕реНрдЯ рдореЗрдВ рд╡рд░реНрдгрд┐рдд WebGL рд░реЗрдВрдбрд░рд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рд╡реЙрд▓реНрдпреВрдореЗрдЯреНрд░рд┐рдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред рд╡рд╛рдо: рдЙрдЪреНрдЪ рдХреНрд╖рдорддрд╛ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЯреАрди рдЕрдгреБ рдореЗрдВ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдиреЛрдВ рдХреЗ рд╕реНрдерд╛рдирд┐рдХ рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рд╡рд┐рддрд░рдг рдХрд╛ рдЕрдиреБрдХрд░рдгред рд╕рд╣реА: рдПрдХ рдмреЛрдиреНрд╕рд╛рдИ рд╡реГрдХреНрд╖ рдХрд╛ рдХрд┐рд▓реЛрдЧреНрд░рд╛рдоред рджреЛрдиреЛрдВ рдбреЗрдЯрд╛рд╕реЗрдЯ рдУрдкрди рд╕рд╛рдЗрдВрд╡рд┐рд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВредрд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рджреГрд╢реНрдп рдореЗрдВ, рддреАрди рдЖрдпрд╛рдореА рд╕реНрдХреЗрд▓рд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЙрд▓реНрдпреВрдореЗрдЯреНрд░рд┐рдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рд╕реНрдХреЗрд▓рд░ рдлрд╝реАрд▓реНрдб рдЕрдХреНрд╕рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рдЬрд╛рддреАрдп рдЧреНрд░рд┐рдб рд╣реЛрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдгреБ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЪрд╛рд░реНрдЬ рдШрдирддреНрд╡, рдПрдХ рдПрдордЖрд░рдЖрдИ рдпрд╛ рд╕реАрдЯреА рд╕реНрдХреИрди, рд╡рд┐рдорд╛рди рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣рд╡рд╛ рдХреА рдПрдХ рдзрд╛рд░рд╛, рдЖрджрд┐ред рд╡реЙрд▓реНрдпреВрдореЗрдЯреНрд░рд┐рдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡реИрдЪрд╛рд░рд┐рдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ: рдбреЗрдЯрд╛ рдХреЛ рдЖрдВрдЦреЛрдВ рдХреА рдХрд┐рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдирдореВрдирд╛ рдХрд░рдХреЗ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдирдореВрдиреЗ рдХреЛ рд░рдВрдЧ рдФрд░ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ, рд╣рдо рдРрд╕реЗ рд╕реНрдХреЗрд▓рд░ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рдЙрдкрдпреЛрдЧреА рдФрд░ рд╕реБрдВрджрд░ рдЪрд┐рддреНрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (рджреЗрдЦреЗрдВ 1 рджреЗрдЦреЗрдВ)ред GPU рд░реЗрдВрдбрд░рд░ рдореЗрдВ, рдРрд╕реЗ рддреНрд░рд┐-рдЖрдпрд╛рдореА рд╕реНрдХреЗрд▓рд░ рдлрд╝реАрд▓реНрдб рдХреЛ 3D рдмрдирд╛рд╡рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рд╣рд╛рд▓рд╛рдБрдХрд┐, WebGL1 3D рдмрдирд╛рд╡рдЯ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реЙрд▓реНрдпреВрдо рд░реЗрдВрдбрд░рд┐рдВрдЧ рдореЗрдВ рдЙрдирдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред WebGL2 рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ 3D рдмрдирд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛, рдЬрд┐рд╕рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдПрдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдФрд░ рддреЗрдЬрд╝ рд╡реЙрд▓реНрдпреВрдо рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реАред рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╣рдо рд╡реЙрд▓реНрдпреВрдореЗрдЯреНрд░рд┐рдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рдЧрдгрд┐рддреАрдп рдмреБрдирд┐рдпрд╛рджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд╡реЙрд▓реНрдпреВрдореЗрдЯреНрд░рд┐рдХ рд░реЗрдВрдбрд░рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ WebGL2 рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ! рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╡реЙрд▓реНрдпреВрдореЗрдЯреНрд░рд┐рдХ
рдСрдирд▓рд╛рдЗрди рд░реЗрдВрдбрд░рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
1. рдкрд░рд┐рдЪрдп
рдЪрд┐рддреНрд░ 2: рднреМрддрд┐рдХ рд╡реЙрд▓реНрдпреВрдореЗрдЯреНрд░рд┐рдХ рдкреНрд░рддрд┐рдкрд╛рджрди, рдорд╛рддреНрд░рд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢ рдХреЗ рдЕрд╡рд╢реЛрд╖рдг рдФрд░ рдЙрддреНрд╕рд░реНрдЬрди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рд╕рд╛рде рд╣реА рд╕рд╛рде рдмрд┐рдЦрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рднрд╛рд╡ рднреАредрд╡реЙрд▓реНрдпреВрдореЗрдЯреНрд░рд┐рдХ рдбреЗрдЯрд╛ рд╕реЗ рдПрдХ рднреМрддрд┐рдХ рд░реВрдк рд╕реЗ рдпрдерд╛рд░реНрдерд╡рд╛рджреА рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдпрд╣ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХрд╛рд╢ рдХрд┐рд░рдгреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд┐рдЦрд░рд╛ рд╣реБрдЖ рд╣реЛрддрд╛ рд╣реИ (рдЪрд┐рддреНрд░ 2)ред рдпрджреНрдпрдкрд┐ рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдПрдХ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХрд╛рд╢ рдХреЗ рдкреНрд░рд╕рд╛рд░ рдХрд╛ рдореЙрдбрд▓рд┐рдВрдЧ рд╕реБрдВрджрд░ рдФрд░ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рдмрдирд╛рддрд╛ рд╣реИ, рдпрд╣ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛ рд▓рдХреНрд╖реНрдп рд╣реИред рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ, рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЕрдиреБрд╕рдВрдзрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдкрдиреЗ рд╢реЛрдз рдХрд╛рд░реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рдкреВрдЫрдирд╛ рдФрд░ рдЙрдирдХрд╛ рдЙрддреНрддрд░ рджреЗрдирд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреМрддрд┐рдХ рдмрд┐рдЦрд░рдиреЗ рд╡рд╛рд▓рд╛ рдореЙрдбрд▓ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдЙрддреНрд╕рд░реНрдЬрди-рдЕрд╡рд╢реЛрд╖рдг рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рддреЛ рдорд╣рдВрдЧрд╛ рдмрд┐рдЦрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рднрд╛рд╡реЛрдВ рдХреА рдЕрдирджреЗрдЦреА рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдХрд┐рд╕реА рддрд░рд╣ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдЙрддреНрд╕рд░реНрдЬрди-рдЕрд╡рд╢реЛрд╖рдг рдореЙрдбрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рдЙрддреНрд╕рд░реНрдЬрди-рдЕрд╡рд╢реЛрд╖рдг рдореЙрдбрд▓ рдореЗрдВ, рд╣рдо рдкреНрд░рдХрд╛рд╢ рдкреНрд░рднрд╛рд╡ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЪрд┐рддреНрд░ 2 рдореЗрдВ рдХреЗрд╡рд▓ рдХрд╛рд▓реА рдХрд┐рд░рдг рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЙрди рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВ рдЬреЛ рдмрд┐рдВрджреАрджрд╛рд░ рдЧреНрд░реЗ рдХрд┐рд░рдгреЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред рдЖрдпрддрди рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд░рдгреЗрдВ рдФрд░ рдЖрдБрдЦреЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рд╡рд╛рд▓реА рдорд╛рддреНрд░рд╛ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд░рдВрдЧ рдХреЛ рдЬрдорд╛ рдХрд░рддреА рд╣реИрдВ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рдлреАрдХреА рдкрдбрд╝ рдЬрд╛рддреА рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╡реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЕрд╡рд╢реЛрд╖рд┐рдд рди рд╣реЛ рдЬрд╛рдПрдБред рдЕрдЧрд░ рд╣рдо рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдВрдЦреЛрдВ рд╕реЗ рдХрд┐рд░рдгреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХрд┐рд░рдг рдХреЗ рд╕рд╛рде рдЙрддреНрд╕рд░реНрдЬрди рдФрд░ рдЕрд╡рд╢реЛрд╖рдг рдЬрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЙрд▓реНрдпреВрдо рдкрд░ рдмреАрдо рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдХреЗ рдЖрдВрдЦ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд╢ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рдЖрдпрддрди рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдХрд┐рд░рдг рдХреЛ рд▓реЗрдВ
рдФрд░ рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рдорд╛рддреНрд░рд╛ рд╕реЗ рдмрд╛рд╣рд░
ред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрднрд┐рдиреНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдВрдЦ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд╢ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЪреВрдВрдХрд┐ рдХрд┐рд░рдг рд╡реЙрд▓реНрдпреВрдо рд╕реЗ рдЧреБрдЬрд░рддреА рд╣реИ, рд╣рдо рдЙрддреНрд╕рд░реНрдЬрд┐рдд рд░рдВрдЧ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ
рдФрд░ рдЕрд╡рд╢реЛрд╖рдг
рд╣рд░ рдмрд┐рдВрджреБ рдкрд░
рдХрд┐рд░рдг рдХреЗ рд╕рд╛рдеред рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдкрд░ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдкреНрд░рдХрд╛рд╢ рдлреАрдХрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдВрдЦ рддрдХ рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ рдЖрдпрддрди рдХрд╛ рдЕрд╡рд╢реЛрд╖рдг рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдЧрдгрдирд╛ рд╢рдмреНрдж рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ
ред
рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕ рдЕрднрд┐рдиреНрдирддрд╛ рдХреА рдЧрдгрдирд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЕрдиреБрдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдХрдИ рдирдореВрдиреЗ рд▓реЗрдХрд░ рдЗрдВрдЯреАрдЧреНрд░рд▓ рдХреЗ рдЕрдиреБрдорд╛рди рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ
рдЕрдВрддрд░рд╛рд▓ рдореЗрдВ рдХрд┐рд░рдг рдХреЗ рд╕рд╛рде
рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рджреВрд░реА рдкрд░ рд╕реНрдерд┐рдд рд╣реИ
рдПрдХ рджреВрд╕рд░реЗ (рдЪрд┐рддреНрд░рд╛ 3) рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдФрд░ рдЗрди рд╕рднреА рдирдореВрдиреЛрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд▓рд┐рдЦреЗрдВред рдкреНрд░рддреНрдпреЗрдХ рдирдореВрдиреЗ рдмрд┐рдВрджреБ рдкрд░ рднрд┐рдЧреЛрдирд╛ рд╢рдмреНрдж рдкрд┐рдЫрд▓реЗ рдирдореВрдиреЛрдВ рдореЗрдВ рдЕрд╡рд╢реЛрд╖рдг рд╕рдВрдЪрдп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЙрддреНрдкрд╛рдж рдмрди рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рд░рд╛рд╢рд┐ рдХреЛ рдФрд░ рднреА рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рднрд┐рдЧреЛрдирд╛ рдЕрд╡рдзрд┐ ()
) рдЙрд╕реЗ рдЯреЗрд▓рд░ рдХреЗ рдкрд╛рд╕ред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рднреА рд╣рдо рдЕрд▓реНрдлрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддреЗ рд╣реИрдВ
ред рдпрд╣ рд╣рдореЗрдВ рд╕рд╛рдордиреЗ рд╕реЗ рдкреАрдЫреЗ рддрдХ рдХреА рдЧрдИ рдЕрд▓реНрдлрд╛ рдХрдВрдкреЛрдЬрд╝рд┐рдВрдЧ рдХрд╛ рд╕рдореАрдХрд░рдг рджреЗрддрд╛ рд╣реИ:
рдЪрд┐рддреНрд░рд╛ 3: рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЙрддреНрд╕рд░реНрдЬрди-рдЕрд╡рд╢реЛрд╖рдг рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рдЕрднрд┐рдиреНрди рдХреА рдЧрдгрдирд╛редрдЙрдкрд░реЛрдХреНрдд рд╕рдореАрдХрд░рдг рдПрдХ рд▓реВрдк рдХреЗ рд▓рд┐рдП рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдХрд┐рд░рдг рдЪрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрджрдо рдмрдврд╝рд╛рддреЗ рд╣реИрдВ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд░реВрдк рд╕реЗ рд░рдВрдЧ рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕рд┐рд▓рд╕рд┐рд▓рд╛ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рдпрд╛ рддреЛ рдХрд┐рд░рдг рдорд╛рддреНрд░рд╛ рдЫреЛрдбрд╝ рджреЗрддреА рд╣реИ рдпрд╛ рд╕рдВрдЪрд┐рдд рд░рдВрдЧ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (
)ред рдЙрдкрд░реЛрдХреНрдд рдпреЛрдЧ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдЧрдгрдирд╛ рдкрд░рд┐рдЪрд┐рдд рдлреНрд░рдВрдЯ-рдЯреВ-рдмреИрдХ рдХрдВрдкреЛрдЬрд╝рд┐рдВрдЧ рд╕рдореАрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреА рдЬрд╛рддреА рд╣реИ:
рдЗрди рдЕрдВрддрд┐рдо рд╕рдореАрдХрд░рдгреЛрдВ рдореЗрдВ рдЙрдЪрд┐рдд рдорд┐рд╢реНрд░рдг рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдХреА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ,
ред
рд╡реЙрд▓реНрдпреВрдо рдЫрд╡рд┐ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЖрдВрдЦреЛрдВ рдХреЛ рдХрд┐рд░рдг рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдкрд░ рдЯреНрд░реЗрд╕ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рдХрд┐рд░рдг рдХреЗ рд▓рд┐рдП рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рд░рдг (рдпрд╛ рдкрд┐рдХреНрд╕реЗрд▓) рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдо рдЫрд╡рд┐ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ GPU рдХрд╛рдо рдЖрддрд╛ рд╣реИред рдЯреБрдХрдбрд╝рд╛ shader рдореЗрдВ рдХрд┐рд░рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ, рд╣рдо рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рд╡реЙрд▓реНрдпреВрдо рд░реЗрдВрдбрд░рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирд╛рдВрддрд░ GPU рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!

рдЪрд┐рддреНрд░ 4: рдЖрдпрддрди рдЧреНрд░рд┐рдб рдХреЗ рдКрдкрд░ рдХрдЯрд╛рдИ рдХрд░рдирд╛ред2. WebGL2 рдкрд░ GPU рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдЦрдВрдбрди рд╢реЗрдбрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрд┐рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреАрдкреАрдпреВ рдХреЛ рдкрд┐рдХреНрд╕реЗрд▓ рдкрд░ рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд┐рд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдУрдкрдирдЧреЗрд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЬреНрдпрд╛рдорд┐рддреАрдп рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ (рдЪрд┐рддреНрд░рд╛ 5) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдЯреБрдХрдбрд╝рд╛ shader рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реАрдзрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдЬреНрдпреЛрдореЗрдЯреНрд░реА рдХреЛ рдкрд┐рдХреНрд╕рд▓ рдкрд░ рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг
рд╢реИрдбрд░ рдЯреЙрдп рдФрд░
рдбреЗрдореЛ рджреГрд╢реНрдп рд░реЗрдВрдбрд░рд░реНрд╕ рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛, рдЬреЛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ shader рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдкреВрд░реНрдг-рд╕реНрдХреНрд░реАрди рддреНрд░рд┐рдХреЛрдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдпрд╣ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рдЕрд╕рд▓реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

рдЪрд┐рддреНрд░рд╛ 6: рдХрд┐рд░рдг рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрдЬреАрдПрд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиред рд╣рдо рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рд╡реЙрд▓реНрдпреВрдо рд╕рдорд╛рдВрддрд░ рдЪрддреБрд░реНрднреБрдЬ рдХреЗ рд╡реНрдпреБрддреНрдХреНрд░рдо рдЪреЗрд╣рд░реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЗрд╕ рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдЫреВрдиреЗ рд╡рд╛рд▓реЗ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдЯреБрдХрдбрд╝рд╛ shader рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛред рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХреЗ рдЕрдВрджрд░, рд╣рдо рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХрджрдо рд╕реЗ рдорд╛рддреНрд░рд╛ рдХрджрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд░рдгреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВредрдЗрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ, рдЕрд╕рд▓реА рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рдереЛрдХ рдЯреБрдХрдбрд╝рд╛ рд╢реЗрдбрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рдЕрднреА рднреА рдЙрдкрдпреЛрдЧреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХреНрд╖реЗрдк рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ рдФрд░ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХреИрдорд░реЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдЧрд╛, рд╡реЙрд▓реНрдпреВрдо рд╕реНрдкреЗрд╕ рдореЗрдВ рдЖрдВрдЦ рдХреА рджрд┐рд╢рд╛ рдФрд░ рдЖрдВрдЦреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрдЧрд╛ред рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдкрд░ рдЧрдгрдирд╛ рдХреА рдЧрдИ рдмреАрдо рджрд┐рд╢рд╛ рдХреЛ рддрдм GPU рдореЗрдВ рдлрд┐рдХреНрд╕реНрдб-рдлрдВрдХреНрд╢рди рдкреНрд░рдХреНрд╖реЗрдк рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рддреНрд░рд┐рднреБрдЬ-рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЦрдВрдб рдХреЗ рд▓рд┐рдП рдХрд┐рд░рдг рджрд┐рд╢рд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдереЛрдбрд╝реА рдХрдо рдЦрд░реНрдЪреАрд▓реА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрди рджрд┐рд╢рд╛рдУрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрднреА рднреА рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдирд╛ рд╣реИред
рд╣рдо рдПрдХ рдПрдХрд▓ рдШрди [0, 1] рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рд╕рдорд╛рдВрддрд░ рдЪрддреБрд░реНрднреБрдЬ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЕрд╕рдорд╛рди рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЙрд▓реНрдпреВрдо рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░реЗрдВрдЧреЗред рдЖрдВрдЦ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдХ рд╣реА рдХреНрдпреВрдм рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╕реНрдерд╛рди рдореЗрдВ рдмреАрдо рдХреА рджрд┐рд╢рд╛ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдПрдХ рд╣реА рдХреНрдпреВрдм рд╕реНрдкреЗрд╕ рдореЗрдВ Raymarching рд╣рдореЗрдВ рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдХрд┐рд░рдг рдХреЗ рджреМрд░рд╛рди рдмрдирд╛рд╡рдЯ рдХреЗ рдирдореВрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рд╡рдЯ рдХреЗ рд╕реНрдерд╛рди рдореЗрдВ рд╣реЛрдВрдЧреЗ рддреНрд░рд┐-рдЖрдпрд╛рдореА рдорд╛рддреНрд░рд╛ рдХреЗ [0, 1]ред
рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ рдХреЛ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рджреГрд╢реНрдпрддрд╛ рдмреАрдо рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЪрд┐рддреНрд░рд┐рдд рд░реЗрдЦрд╛рдЧрдгрд┐рдд рдкреАрда рдЪреЗрд╣рд░реЗ рдХреЛ рдЪрд┐рддреНрд░ 7 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
#version 300 es layout(location=0) in vec3 pos; uniform mat4 proj_view; uniform vec3 eye_pos; uniform vec3 volume_scale; out vec3 vray_dir; flat out vec3 transformed_eye; void main(void) {
рдЪрд┐рддреНрд░рд╛ 7: рдмреАрдо рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдЪрд┐рддреНрд░рд┐рдд рдмрд╛рдЙрдВрдбрд┐рдВрдЧ рд╡реЙрд▓реНрдпреВрдо рд╕рдорд╛рдВрддрд░ рдЪрддреБрд░реНрднреБрдЬ рдХреЗ рд╡реНрдпреБрддреНрдХреНрд░рдо рдЪреЗрд╣рд░реЗредрдЕрдм рдЬрдм рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд┐рдХреНрд╕рд▓реНрд╕ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╡реЙрд▓реНрдпреВрдо рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмреАрдо рдХреА рджрд┐рд╢рд╛ рдФрд░ рдЖрдВрдЦ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╢реАрд░реНрд╖ рдЫрд╛рдпрд╛ рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рд╡реЙрд▓реНрдпреВрдо рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдиреНрдп рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рдЯреБрдХрдбрд╝рд╛ shader рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдирдореВрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ 3 рдбреА рдмрдирд╛рд╡рдЯ рдирдореВрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдпрддрди рдЕрджрд┐рд╢ рдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ рдЦрдВрдб рд╣реИ, рдФрд░ рдпрджрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рд░рдВрдЧ рдорд╛рдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ -
) рдФрд░ рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ (
), рдлрд┐рд░ рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдореЗрдВ рдПрдХ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЫрд╡рд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдЧреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде рджрд┐рд▓рдЪрд╕реНрдк рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛, рд╢реЛрд░ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рдкреНрд░рддреНрдпреЗрдХ рдирдореВрдирд╛ рдореВрд▓реНрдп рдХреЛ рд╕реМрдВрдкреЗ рдЧрдП рд░рдВрдЧ рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП,
рдЯреНрд░рд╛рдВрд╕рдлрд░ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдордХ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд░рдВрдЧ рдорд╛рдирдЪрд┐рддреНрд░
рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд░реЗрдВрдбрд░рд░реНрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдлрд╝рдВрдХреНрд╢рди рд░рдВрдЧ рдФрд░ рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЛ рд╡реЙрд▓реНрдпреВрдо рд╕реЗ рд╕реИрдВрдкрд▓ рдХрд┐рдП рдЧрдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдп рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд╛рд░реНрдп рд╣реИрдВ, рдЖрдорддреМрд░ рдкрд░ рд╕рд░рд▓ рд░рдВрдЧ рдЦреЛрдЬ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдРрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд░рдВрдЧ рдФрд░ рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ (RGBA рдкреНрд░рд╛рд░реВрдк рдореЗрдВ) рдХреА рдПрдХ рдЖрдпрд╛рдореА рдмрдирд╛рд╡рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЙрд▓реНрдпреВрдо рдХрд┐рд░рдгреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддреЗ рд╕рдордп рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╡реЙрд▓реНрдпреВрдо рдмрдирд╛рд╡рдЯ рд╕реЗ рдирдореВрдирд╛ рдХрд┐рдП рдЧрдП рд╕реНрдХреЗрд▓рд░ рдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреА рдмрдирд╛рд╡рдЯ рдХрд╛ рдирдореВрдирд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╛рдкрд╕реА рд░рдВрдЧ рдореВрд▓реНрдпреЛрдВ рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдФрд░
рдирдореВрдирд╛ред
рдЯреБрдХрдбрд╝рд╛ shader рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдорд╛рддреНрд░рд╛ рдЖрдпрд╛рдо рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдмреАрдо рдЪрд░рдг рдЖрдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ (
) рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдмреАрдо рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд╡рд░ рдХрд╛ рдирдореВрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЪреВрдВрдХрд┐
рдкрд╛рд░рдВрдкрд░рд┐рдХ рдмреАрдо рд╕рдореАрдХрд░рдг рдХрд╛ рд░реВрдк рд╣реИ
, рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЛрдб рдореЗрдВ рд╢рдмреНрджрд╛рд╡рд▓реА рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗ, рдФрд░ рдирд┐рд░реВрдкрд┐рдд рдХрд░реЗрдВрдЧреЗ
рдХреИрд╕реЗ
ред рдЗрд╕реА рддрд░рд╣, рдЕрдВрддрд░рд╛рд▓
рдмреАрдо рдХреЗ рд╕рд╛рде, рдорд╛рддреНрд░рд╛ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░, рд╣рдо рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реВрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
ред
рдЦрдВрдб рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рд╡реЙрд▓реНрдпреВрдо рдХрд┐рд░рдг рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗ:
- рд╣рдо рджреГрд╢реНрдпрдорд╛рди рдХрд┐рд░рдг рдХреА рджрд┐рд╢рд╛ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╢реАрд░реНрд╖ рдХреА рдЫрд╛рдпрд╛ рд╕реЗ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ;
- рдЕрдВрддрд░рд╛рд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЙрд▓реНрдпреВрдо рдХреА рд╕реАрдорд╛рдУрдВ рдХреЗ рд╕рд╛рде рджреГрд╖реНрдЯрд┐ рдХреА рд░реЗрдЦрд╛ рдХреЛ рдкрд╛рд░ рдХрд░реЗрдВ рд╡реЙрд▓реНрдпреВрдо рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рдХрд┐рд░рдг рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛;
- рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХрджрдо рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд╡рд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдирдореВрдирд╛ рд▓рд┐рдпрд╛ рдЬрд╛рдП;
- рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдкрд░ рд╢реБрд░реВ рдЬрдм рддрдХ рд╣рдо рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддреЗ, рддрдм рддрдХ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреАрдо рдкрд░ рдЬрд╛рдПрдВ
- рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреБ рдкрд░ рд╣рдо рдорд╛рддреНрд░рд╛ рдХрд╛ рдирдореВрдирд╛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд░рдВрдЧ рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ;
- рд╣рдо рдЖрдЧреЗ рд╕реЗ рдкреАрдЫреЗ рдХреА рдУрд░ рдХрдВрдкреЛрдЬрд┐рдЯрд┐рдВрдЧ рд╕рдореАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдмреАрдо рдХреЗ рд╕рд╛рде рд░рдВрдЧ рдФрд░ рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдЬрдорд╛ рдХрд░реЗрдВрдЧреЗред
рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдХреВрд▓рди рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рд╕рдВрдЪрдпрд┐рдд рд░рдВрдЧ рдХреЛ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЗрд╕реЗ рд╕рдВрдЪрд┐рдд рд░рдВрдЧ рд▓рдЧрднрдЧ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рд░рдВрдЧ рд▓рдЧрднрдЧ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рдХрд┐рд╕реА рднреА рдирдореВрдиреЗ рдХрд╛ рдкрд┐рдХреНрд╕реЗрд▓ рдкрд░ рд▓рдЧрднрдЧ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рд░рдВрдЧ рдкрд░реНрдпрд╛рд╡рд░рдг рджреНрд╡рд╛рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╡рд╢реЛрд╖рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдВрдЦ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗрдЧрд╛ред
рд╣рдорд╛рд░реЗ рд╡реЙрд▓реНрдпреВрдо рд░реЗрдВрдбрд░рд░ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдЯреБрдХрдбрд╝рд╛ shader рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реБрдП рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИрдВред
рдЪрд┐рддреНрд░рд╛ 8: рдЪрд┐рддреНрд░рд╛ 7 рдореЗрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рддреИрдпрд╛рд░ рдмреЛрдиреНрд╕рд╛рдИ рджреГрд╢реНрдп рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛редрд╡рд╣ рд╕рдм рд╣реИ!
рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд░реЗрдВрдбрд░рд░ рдЪрд┐рддреНрд░ 8 рдФрд░ рдЪрд┐рддреНрд░ 1 рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рдорд╛рди рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдЖрдк рдЗрд╕реЗ
рдСрдирд▓рд╛рдЗрди рднреА рдкрд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ WebGL рд╕рдВрджрд░реНрдн рддреИрдпрд╛рд░ рдХрд░рдиреЗ, рд╡реЙрд▓реНрдпреВрдо рдЯреЗрдХреНрд╕рдЪрд░ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ, рд╢реЗрдбреНрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╡реЙрд▓реНрдпреВрдо рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреВрдм рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛; рдкреВрд░реНрдг рд░реЗрдВрдбрд░ рдХреЛрдб
Github рдкрд░ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред