WebGL рдмрд┐рдЧрд┐рдирд░ рдЧрд╛рдЗрдб рдЕрдзреНрдпрд╛рдп 1: WebGL рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!

рдореИрдВ рдЙрддреНрдХреГрд╖реНрдЯ рдкреБрд╕реНрддрдХ "WebGL Beginner's Guide" рдХрд╛ рдореБрдлреНрдд рдЕрдиреБрд╡рд╛рдж рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреЛ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рди рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред

рд╕рд╛рдордЧреНрд░реА:


WebGL рдореВрд▓ рд░реВрдк рд╕реЗ OpenGL ES 2.0 (ES рдХрд╛ рдЕрд░реНрде рдПрдВрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдерд╛, рдЬреЛ Apple рдХреЗ iPhone рдФрд░ iPad рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП OpenGL рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рд▓реЗрдХрд┐рди рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдЖ, рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛ рдЧрдпрд╛, рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИред рдПрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╡рд┐рдЪрд╛рд░ рдиреЗ рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо, рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдФрд░ рдЪрд┐рдХрд┐рддреНрд╕рд╛ рдЗрдореЗрдЬрд┐рдВрдЧ рдЬреИрд╕реЗ рд╡реЗрдм 3 рдбреА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдПрдХ рдирдпрд╛ рдмреНрд░рд╣реНрдорд╛рдВрдб рдЦреЛрд▓ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг, рдЗрди рдФрд░ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ 3 рдбреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдФрд░ рдЯреИрдмрд▓реЗрдЯ рдЬреИрд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рд╡реЗрдм рд╡реАрдбрд┐рдпреЛ рдЧреЗрдо рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдЧреИрд▓рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ 3D рдЖрд░реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЕрдкрдиреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп 3D рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдбреЗрдЯрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реБрдП, рдЖрдкрдХреЛ рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд╣рд▓рд╛ рдХрджрдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реИ рдЙрдкрдпреБрдХреНрдд рд╡рд╛рддрд╛рд╡рд░рдгред
рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:




рд╕рд┐рд╕реНрдЯрдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ


WebGL рд╡реЗрдм-рдЖрдзрд╛рд░рд┐рдд 3D рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ API рд╣реИред рдЬреИрд╕реЗ, рдЗрд╕реЗ рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЬрд┐рд╕ рд╕рдордп рдпрд╣ рдкреБрд╕реНрддрдХ рд▓рд┐рдЦреА рдЧрдИ рдереА, рдпрджрд┐ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЗрдВрдЯрд░рдиреЗрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрд╡рддрдГ WebGL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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

WebGL рдХреНрдпрд╛ рд╣реИ?


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


WebGL рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд░рдЪрдирд╛


рдХрд┐рд╕реА рднреА 3D рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рддрд░рд╣, WebGL рдХреЛ 3D рджреГрд╢реНрдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрди рдореВрд▓ рддрддреНрд╡реЛрдВ рдкрд░ рдкреБрд╕реНрддрдХ рдХреЗ рдкрд╣рд▓реЗ рдЪрд╛рд░ рдЕрдзреНрдпрд╛рдпреЛрдВ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред рдЕрдзреНрдпрд╛рдп 5 рд╕реЗ рд╢реБрд░реВ, рд╣рдо рдЙрди рддрддреНрд╡реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдЬреЛ 3 рдбреА рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд░рдВрдЧ рдФрд░ рдмрдирд╛рд╡рдЯ, рдФрд░ рдлрд┐рд░, рдмрд╛рдж рдореЗрдВ, рд╣рдо рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред
рд╣рдо рдЬрд┐рди рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

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

рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдХреИрдирд╡рд╛рд╕ рдирд┐рд░реНрдорд╛рдг


рдЖрдЗрдП рдПрдХ рд╡реЗрдмрдкреЗрдЬ рдмрдирд╛рдПрдВ рдФрд░ HTML5 рдХреИрдирд╡рд╛рд╕ рдЬреЛрдбрд╝реЗрдВред рдХреИрдирд╡рд╛рд╕ рдПрдХ рд╡реЗрдм рдкреЗрдЬ рдкрд░ рдПрдХ рдЖрдпрддрд╛рдХрд╛рд░ рддрддреНрд╡ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ 3 рдбреА рджреГрд╢реНрдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  1. рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдм рдкреЗрдЬ рдмрдирд╛рдПрдВ:

    <!DOCTYPE html> <html> <head> <title> WebGL Beginner's Guide - Setting up the canvas </title> <style type="text/css"> canvas {border: 2px dotted blue;} </style> </head> <body> <canvas id="canvas-element-id" width="800" height="600"> Your browser does not support HTML5 </canvas> </body> </html> 

  2. рдлрд╝рд╛рдЗрд▓ рдХреЛ ch1_Canvas.html рд░реВрдк рдореЗрдВ ch1_Canvas.html ред
  3. рдПрдХ рд╕рдорд░реНрдерд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓реЗрдВред
  4. рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:




рдмрд╕ рдХреНрдпрд╛ рд╣реБрдЖ?
рд╣рдордиреЗ рдЕрднреА рдПрдХ рд╕рд░рд▓ рд╡реЗрдм рдкреЗрдЬ рдмрдирд╛рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреИрдирд╡рд╛рд╕ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рд╣рдорд╛рд░реЗ 3D рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред рдЖрдЗрдП рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрддреНрд╡реЛрдВ рдХреЛ рджреЗрдЦреЗрдВред
рд╕реАрдорд╛ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ рд╢реИрд▓реА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛
рдпрд╣ рдПрдХ рдРрд╕рд╛ рдХреЛрдб рд╣реИ рдЬреЛ рдХреИрдирд╡рд╛рд╕ рдХреА рд╢реИрд▓реА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ:

 <style type="text/css"> canvas {border: 2px dotted blue;} </style> 


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

рдпрджрд┐ рдХреИрдирд╡рд╛рд╕ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
рдпрджрд┐ рдЖрдкрдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ: Your browser does not support HTML5 (рдЬреЛ рдХрд┐ рдЯреИрдЧреНрд╕ рдХреЗ рдмреАрдЪ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛) рдХрд╛ Your browser does not support HTML5 , рддреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ WebGL рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рднреА HTML5 рд╕рдорд░реНрдерд┐рдд рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ WebGL рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрддрд╛ рдмрд╛рд░ рдореЗрдВ about:config рдФрд░ рдлрд┐рд░ webgl.disabled рд╕рдВрдкрддреНрддрд┐ рджреЗрдЦреЗрдВред рдЕрдЧрд░ true рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ true рддреЛ рдЬрд╛рдУ рдФрд░ рдмрджрд▓реЛред рдЬрдм рдЖрдк рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ рдФрд░ ch1_Canvas.html рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдзрд░рд╛рд╢рд╛рдпреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рдд рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИред
рдпрджрд┐ рдЖрдк рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдк рдХреИрдирд╡рд╛рд╕ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдиреЗ рдХреБрдЫ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдХрд┐рдпрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреВрд╕рд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИред

WebGL рд╕рдВрджрд░реНрдн


WebGL рд╕рдВрджрд░реНрдн рдПрдХ рд╣реИрдВрдбрд▓ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ) рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдо WebGL рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ WebGL рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (API) рдмрдирд╛рддреЗ рд╣реИрдВред
рд╣рдо рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рд╡реЗрдмрд▓реЙрдЧ рд╕рдВрджрд░реНрдн рдХреЛ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЕрдиреНрдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд┐рдиреНрд╣реЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡реЗрдмрдЬреАрдПрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рдЖрдк рд╕рдорд░реНрдерд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╣рдо рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рдХрд░ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ WebGL рд╕рдорд░реНрдерди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ (рд╣реИрдВрдбрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ)ред рдкреГрд╖реНрда рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдорд╛рдирдХ onLoad DOM рдЗрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
  1. рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдореЗрдВ ch1_Canvas.html рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЖрдк HTML / рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ)ред
  2. рдЯреИрдЧ рдХреЗ рдареАрдХ рдиреАрдЪреЗ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ

рд╣рдореЗрдВ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ onLoad рдЗрд╡реЗрдВрдЯ рдкрд░ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред body рдЯреИрдЧ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирд┐рдореНрди рдореЗрдВ рдмрджрд▓реЗрдВ:

  <body onLoad ="getGLContext()"> 


ch1_GL_Context.html рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВред
ch1_GL_Context.html рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ ch1_GL_Context.html рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВред
рдпрджрд┐ рдЖрдк WebGL рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдЬреИрд╕рд╛ рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:





рдмрд╕ рдХреНрдпрд╛ рд╣реБрдЖ?
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд░ (gl) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ WebGL рд╕рдВрджрд░реНрдн рдХрд╛ рд▓рд┐рдВрдХ рдорд┐рд▓рд╛ред рдЖрдЗрдП рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░ рдЙрд╕ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рдЖрдкрдХреЛ WebGL рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

  var names = ["webgl", "experimental-webgl", "webkit-3d", "moz-webgl"]; for (var i = 0; i < names.length; ++i) { try { gl = canvas.getContext(names[i]); } catch(e) {} if (gl) break; } 

getContext рдХреИрдирд╡рд╛рд╕ getContext рд╣рдореЗрдВ WebGL рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрджрд░реНрдн рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрджрд░реНрдн рдирд╛рдореЛрдВ рдХреЛ рдПрдХ рдирд╛рдо рд╕рд░рдгреА рдореЗрдВ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ред рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рди рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрдЬреАрдПрд▓ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ (рдЖрдк рдЗрд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ) рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИред
getContext рд╕рдВрджрд░реНрдн рдирд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░, 2D рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ HTML5 2D рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред WebGL рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рди рдорд╛рдирдХ рд╣реИред HTML5 2D рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ API рдкреВрд░реА рддрд░рд╣ рд╕реЗ WebGL рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдФрд░ рдЗрд╕ рдкреБрд╕реНрддрдХ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред

WebGL рд╕реНрдЯреЗрдЯ рдорд╢реАрди


WebGL рд╕рдВрджрд░реНрдн рдХреЛ рдПрдХ рд░рд╛рдЬреНрдп рдорд╢реАрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЬреИрд╕реЗ рд╣реА рдЖрдк рдЗрд╕рдХреА рдХрд┐рд╕реА рднреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рд╕рдВрд╢реЛрдзрди рддрдм рддрдХ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдЧрд╛ рдЬрдм рддрдХ рдЖрдк рдлрд┐рд░ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддреЗред рдЖрдк рдХрд┐рд╕реА рднреА рд╕рдордп рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрдкрдиреЗ WebGL рд╕рдВрджрд░реНрдн рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдпрд╣ рдЬрд╛рдирдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреИрдирд╡рд╛рд╕ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдХрд┐рд╕ рд░рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
  1. рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, ch1_GL_Attributes.html рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ:

      <html> <head> <title> WebGL Beginner's Guide - Setting WebGL context attributes </title> <style type="text/css"> canvas {border: 2px dotted blue;} </style> <script> var gl = null; var c_width = 0; var c_height = 0; window.onkeydown = checkKey; function checkKey(ev) { switch(ev.keyCode) { case 49: { // 1 gl.clearColor(0.3,0.7,0.2,1.0); clear(gl); break; } case 50: { // 2 gl.clearColor(0.3,0.2,0.7,1.0); clear(gl); break; } case 51: { // 3 var color = gl.getParameter(gl.COLOR_CLEAR_VALUE); // Don't get confused with the following line. It // basically rounds up the numbers to one decimal cipher //just for visualization purposes alert('clearColor = (' + Math.round(color[0]*10)/10 + ',' + Math.round(color[1]*10)/10+ ',' + Math.round(color[2]*10)/10+')'); window.focus(); break; } } } function getGLContext() { var canvas = document.getElementById("canvas-element-id"); if (canvas == null) { alert("there is no canvas on this page"); return; } var names = ["webgl", "experimental-webgl", "webkit-3d", "moz-webgl"]; var ctx = null; for (var i = 0; i < names.length; ++i) { try { ctx = canvas.getContext(names[i]); } catch(e) {} if (ctx) break; } if (ctx == null) { alert("WebGL is not available"); } else { return ctx; } } function clear(ctx) { ctx.clear(ctx.COLOR_BUFFER_BIT); ctx.viewport(0, 0, c_width, c_height); } function initWebGL() { gl = getGLContext(); } </script> </head> <body onLoad="initWebGL()"> <canvas id="canvas-element-id" width="800" height="600"> Your browser does not support the HTML5 canvas element. </canvas> </body> </html> 

  2. рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд╣рдорд╛рд░реЗ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирдП рдбрд┐рдЬрд╛рдЗрди рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдордЭрд╛рдПрдВрдЧреЗред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 4 рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реИрдВ:
    • checkKey : рдпрд╣ рдПрдХ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рд╣реИред рдпрд╣ рдХреАрдмреЛрд░реНрдб рдЗрдирдкреБрдЯ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред
    • getGLContext : рд╣рдо рдкрд╣рд▓реЗ рд╣реА рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ
    • clear : рдХреИрдирд╡рд╛рд╕ рдХреЛ рд╡рд░реНрддрдорд╛рди рд░рдВрдЧ рд╕реЗ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ WebGL рд╕рдВрджрд░реНрдн рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, WebGL рдПрдХ рд╕реНрдЯреЗрдЯ рдорд╢реАрди рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреИрдирд╡рд╛рд╕ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдпрдирд┐рдд рд░рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ gl.clearColor рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рдВрдЧ рдмрджрд▓ рджрд┐рдпрд╛ gl.clearColor ред
    • initWebGL : рдпрд╣ рдлрд╝рдВрдХреНрд╢рди getGLContext рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ getGLContext рдЗрд╡реЗрдВрдЯ рдкрд░ рдХреЙрд▓ рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди getGLContext рдмреЗрд╣рддрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ ctx рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдВрджрд░реНрдн рддрдм рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ gl рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред

  3. рдПрдХ рд╕рдорд░реНрдерд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ test_gl_attributes.html рдЦреЛрд▓реЗрдВред
  4. рдкреНрд░реЗрд╕ 1. рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рдХреИрдирд╡рд╛рд╕ рдЕрдкрдиреЗ рд░рдВрдЧ рдХреЛ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд░рдВрдЧ рдХреЛ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ 3 рджрдмрд╛рдПрдВред
  5. рдЬрдм рддрдХ рд╣рдо gl.clearColor рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╕рдлрд╛рдИ рдХрд╛ рд░рдВрдЧ рдмрджрд▓рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рд▓реЗрддреЗ, рддрдм рддрдХ рдХреИрдирд╡рд╛рд╕ рд╣рд░реЗ рд░рдВрдЧ рдХрд╛ gl.clearColor рд╣реИред 2. рдЗрд╕реЗ рджрдмрд╛рдХрд░ рдмрджрд▓реЗрдВред рдпрджрд┐ рдЖрдк рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд░рдВрдЧ рдиреАрд▓реЗ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рд░рдВрдЧ рдХрд╛ рд╣реИ, рддреЛ 3 рджрдмрд╛рдПрдВред

рдмрд╕ рдХреНрдпрд╛ рд╣реБрдЖ?
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣рдо рдЙрд╕ рд░рдВрдЧ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ WebGL рдХреИрдирд╡рд╛рд╕ рдХреЛ clearColor рдлрд╝рдВрдХреНрд╢рди рдХрд╣рдХрд░ clearColor рдХрд░рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рд╣рдордиреЗ рдХреИрдирд╡рд╛рд╕ рдлрд┐рд▓ рдХреЗ рд╡рд░реНрддрдорд╛рди рд░рдВрдЧ рдорд╛рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП getParameter (gl.COLOR_CLEAR_VALUE) рдлрд╝рдВрдХреНрд╢рди getParameter (gl.COLOR_CLEAR_VALUE) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рд╕рдВрдкреВрд░реНрдг рдкреБрд╕реНрддрдХ рдореЗрдВ, рд╣рдо рд╕рдорд╛рди рдирд┐рд░реНрдорд╛рдг рджреЗрдЦреЗрдВрдЧреЗ рдЬрдм рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рдВрдХреНрд╢рди рд╕рдВрджрд░реНрдн рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ getParameter WebGL рдлрд╝рдВрдХреНрд╢рди рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рддрд░реНрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ COLOR_CLEAR_VALUE )ред
рд╕рдВрджрд░реНрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ WebGL API рддрдХ рдкрд╣реБрдБрдЪреЗрдВ
рдпрд╣ рднреА рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╕рднреА WebGL рд╕реБрд╡рд┐рдзрд╛рдПрдБ WebGL рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рд╣реИрдВред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рд╕рдВрджрд░реНрдн рдЪрд░ gl ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕ рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ WebGL API рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

3 рдбреА рджреГрд╢реНрдп рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ


рдЕрдм рддрдХ, рд╣рдордиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡реЗрдмрдЬреАрдПрд▓ рд╕рдВрджрд░реНрдн рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдЕрдЧрд▓рд╛ рдХрджрдо рд╡рд╕реНрддреБрдУрдВ, рдкреНрд░рдХрд╛рд╢ рдФрд░ рдХреИрдорд░реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдореЗрдВ рд╡реЗрдмрдЬреАрдПрд▓ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╡реЗрдмрдЬреАрдПрд▓ рджреГрд╢реНрдп рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рд╡рд░реНрдЪреБрдЕрд▓ рдХрд╛рд░ рдбреАрд▓рд░рд╢рд┐рдк

рдкреБрд╕реНрддрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо WebGL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЖрднрд╛рд╕реА рдХрд╛рд░ рдбреАрд▓рд░рд╢рд┐рдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВрдЧреЗред рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рджреГрд╢реНрдп рдХреЛ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рдХрд╛рд░, рдХрдИ рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрдд рдФрд░ рдПрдХ рдХреИрдорд░рд╛ рд╣реЛрдЧрд╛ред
рдкреБрд╕реНрддрдХ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЙрд╕ рджреГрд╢реНрдп рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдЬреИрд╕реЗ рд╣рдо рдмрдирд╛рдПрдВрдЧреЗред
  1. рдХрд┐рд╕реА рднреА рд╕рдорд░реНрдерд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ ch1_Car.html рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ
  2. рдЖрдкрдХреЛ рдПрдХ рд╡реЗрдмрд▓реЙрдЧ рджреГрд╢реНрдп рдПрдХ рдХрд╛рд░ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:



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

рдмрд╕ рдХреНрдпрд╛ рд╣реБрдЖ?
рд╣рдордиреЗ рд╡реЗрдмрдЬреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд░рд▓ рджреГрд╢реНрдп рдЗрдВрдЯрд░рдиреЗрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИред
рдЗрд╕ рджреГрд╢реНрдп рдореЗрдВ рдирд┐рдореНрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

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

рд╕рд╛рд░рд╛рдВрд╢


рдЗрд╕ рдЕрдзреНрдпрд╛рдп рдореЗрдВ, рд╣рдордиреЗ рдЪрд╛рд░ рдореВрд▓ рддрддреНрд╡реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬреЛ рд╣рдореЗрд╢рд╛ рдХрд┐рд╕реА рднреА WebGL рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрддреЗ рд╣реИрдВ: рдХреИрдирд╡рд╛рд╕, рдСрдмреНрдЬреЗрдХреНрдЯ, рд▓рд╛рдЗрдЯ рдФрд░ рдХреИрдорд░рд╛ред
рд╣рдордиреЗ рдПрдХ HTML5 рд╡реЗрдмрдкреЗрдЬ рдореЗрдВ рдХреИрдирд╡рд╛рд╕ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╕реАрдЦрд╛, рдЗрд╕рдХреА рдЖрдИрдбреА, рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЙрд╕ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд┐рд╕рдиреЗ рд╡реЗрдмрдЬреАрдПрд▓ рд╕рдВрджрд░реНрдн рдмрдирд╛рдпрд╛ред рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ WebGL рдПрдХ рд╕реНрдЯреЗрдЯ рдорд╢реАрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ, рд╣рдо getParameter рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдХрд┐рд╕реА рднреА рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдЧрд▓реЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рд╡реЗрдмрд▓реЙрдЧ рджреГрд╢реНрдп рдореЗрдВ 3D рдореЙрдбрд▓ рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рд░реЗрдВрдбрд░ рдХрд░реЗрдВред

рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди рд▓рд┐рдВрдХ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж!

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


All Articles