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

рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЗрдВрдЬрди
JPCT-AE , рдЕрднреА рднреА рдкреБрд░рд╛рдирд╛ рд╣реИ, рдЬреЛ OpenGL ES 1.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд▓реЛрдб рд╣реЛ рд░рд╣реЗ рдореЙрдбрд▓ 3DS рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдЖрдП рд╣реИрдВред рдпрд╣рд╛рдВ рдХреЛрдИ рд╢реЗрдб, рд╕рдВрдХреБрдЪрд┐рдд рдмрдирд╛рд╡рдЯ, рд░реЗрдВрдбрд░-рдЯреВ-рдЯреЗрдХреНрд╕рдЪрд░ рдФрд░ рдЕрдиреНрдп рдлреИрд╢рдиреЗрдмрд▓ рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рдереАрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣рд╛рдБ рдЖрдк рдпрд╣ рд╕рдм рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
"рдиреНрдпреВ рдИрдпрд░ рдЯреНрд░реА" - рдУрдкрдирдЬреАрдПрд▓ ES 1.0 рдХрд╛ рдиреБрдХрд╕рд╛рди

рдпрд╣рд╛рдВ 2 рдЪреАрдЬреЗрдВ рд╕рд╛рдордиреЗ рдЖрдИрдВ: рдПрдореБрд▓реЗрдЯрд░ рдиреЗ рддреАрди рдЖрдпрд╛рдореА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдФрд░ рдЬреЗрдкреАрд╕реАрдЯреА-рдПрдИ рдХреЛ рдмрдирд╛рд╡рдЯ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЦреАрдВрдЪреА рд╣реИред
рдЙрд╕ рд╕рдордп рдХреЗ рдПрдореБрд▓реЗрдЯрд░ рдиреЗ рдУрдкрдирдЬреАрдПрд▓ рдИрдПрд╕ 1.0 рдХреЗ рдЦрд░рд╛рдм рддреАрди рдЖрдпрд╛рдореА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛ рди рдХреЗрд╡рд▓ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛, рдмрд▓реНрдХрд┐ рдЗрд╕реЗ рдмрд╣реБрдд рдЬрд▓реНрджреА рдФрд░ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ред рддрдм рд╕реЗ, рд╡рд┐рдХрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдг рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИред
JPCT-AE рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рддрдм рдкреНрд░рддреНрдпреЗрдХ рдмрдирд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд RAM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛, рдФрд░ рдореЗрдореЛрд░реА рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЕрдЪрд╛рдирдХ рдмрдВрдж рд╣реЛ рд╕рдХрддрд╛ рдерд╛ред рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрдВрдЬрди рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдпрд╣ рдмрдЧ рдкрд╣рд▓реЗ рд╣реА рддрдп рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ Android рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, OpenGL рд╕рдВрд╕рд╛рдзрди Dalvik рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдХреА рдЧрдгрдирд╛ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЗрдВрдЬрди рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдмрдирд╛рд╡рдЯ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрдореЛрд░реА рдХреЛ рдЦрд╛рд▓реА рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдереАред рдореБрдЭреЗ рдмрдирд╛рд╡рдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдирд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рднреА рд╕реНрдореГрддрд┐ рдореЗрдВ рдлрдВрд╕ рдЧрдП рдереЗ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЗрдкреАрд╕реАрдЯреА-рдПрдИ рдХреЗ рддрддреНрдХрд╛рд▓реАрди рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдУрдкрди-рд▓рд┐рдЧ рд╕рдВрджрд░реНрдн рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддреЗ рд╕рдордп рдПрдХ рдХрдордЬреЛрд░ рдмрдЧ рдерд╛ - рдмрдирд╛рд╡рдЯ рдЦреЛ рд╕рдХрддреА рд╣реИ рдпрд╛ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдИ рд╣рд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдлрд┐рд░ рд╕реЗ, рд╣рдо рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ JPCT-AE рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдпрд╣ рдмрдЧ рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рд╣рдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдХрд┐ рдЬреЗрдкреАрд╕реАрдЯреА-рдПрдИ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдиреЗ рдУрдкрдирдЬреАрдПрд▓ рдИрдПрд╕ 2.0 рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╢реЗрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рд╣реИ, рддрд╛рдХрд┐ рдиреМрд╕рд┐рдЦрд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХреЗрдВред
"рдЧреБрд▓рд╛рдм" - рдУрдкрди ES 2.0 рдФрд░ рдЕрд▓реНрдлрд╛ рдкрд░реАрдХреНрд╖рдг

рдпрд╣рд╛рдВ рд╣рдордиреЗ рдХрд┐рд╕реА рднреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдпрд╛ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛, рд╢реБрджреНрдз OpenGL ES 2.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ред
OpenGL ES 2.0 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рдерд╛ рдХрд┐ OpenGL ES 1.0 рдореЗрдВ рдЧреБрд▓рд╛рдм рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╣реБ-рд╕рдореНрдорд┐рд╢реНрд░рдг рдмрд╣реБрднреБрдЬ рдХреЛ рдЫрд╛рдВрдЯрдиреЗ рдХреЗ рд╕рд╛рде, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред рдЬреЛ рдлрд┐рд░ рд╕реЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ (рдЧрд╣рд░рд╛рдИ-рдкрд░реАрдХреНрд╖рдг рд╕рднреА рдХреЗ рдмрд╛рдж рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЗ рдХрд╛рд░рдг рдЦрд░рд╛рдм рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдЧрд╛ред
рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЕрд▓реНрдлрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдУрдкрдирдЬреАрдПрд▓ рдИрдПрд╕ 2.0 рдиреЗ рд╣рдореЗрдВ рдЗрд╕реЗ рддрддреНрд╡ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рдереАрдВред рдЕрд▓реНрдлрд╛ рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдпрдВ рддрддреНрд╡рддрдГ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
vec4 base = texture2D(sTexture, vTextureCoord); gl_FragColor = base; if(base.a < 0.5) { discard; }
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ PNG рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓реЛрдбрд┐рдВрдЧ рдЯреЗрдХреНрд╕рдЪрд░ рд╕реЗ рдЬреБрдбрд╝реЗ рдХреБрдЫ рдиреБрдХрд╕рд╛рди рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрдВрдЦреБрдбрд╝рд┐рдпреЛрдВ рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рдХреЛ рдПрдХ рдкрддрд▓реА рдХрд╛рд▓реА рд░реЗрдЦрд╛ рдорд┐рд▓рддреА рд╣реИ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рд▓реНрдХреА рдкрдВрдЦреБрдбрд╝рд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛрддреА рд╣реИ:
рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдорд╛рдирдХ рдмрдирд╛рд╡рдЯ рд▓реЛрдбрд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ рджреНрд╡рд╛рд░рд╛ рд░рдВрдЧ рдХреЛ рдЧреБрдгрд╛ рдХрд░рддрд╛ рд╣реИред рдЕрдкрдиреА рдЦреБрдж рдХреА рдмрдирд╛рд╡рдЯ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдПрдХ рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рджреВрд╕рд░реЗ, рдмрдирд╛рд╡рдЯ рдЕрд╕рдореНрдкреАрдбрд┐рдд рд╣реИ, рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕реА рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рд▓рдЧрддреА рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдзреАрдореА рдЦреАрдВрдЪреА рдЬрд╛рддреА рд╣реИред рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рд╕рдВрдкреАрдбрд╝рд┐рдд рдмрдирд╛рд╡рдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреБрд░рдВрдд рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддреА рд╣реИред рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ OpenGL ES 2.0 рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдорд╛рдирдХреАрдХреГрдд рдмрдирд╛рд╡рдЯ рд╕рдВрдкреАрдбрд╝рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо ETC1 рд╣реИред рдФрд░ рдпрд╣ рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рддреЛ рдЖрдкрдХреЛ рджреЛ рдмрдирд╛рд╡рдЯ рдХрд░рдиреА рд╣реЛрдЧреА - рд░рдВрдЧ (рдлреИрд▓рд╛рдирд╛), рдФрд░ рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ (рдЕрд╕реНрдкрд╖реНрдЯрддрд╛) рдХреЗ рд▓рд┐рдПред рджреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдмрдирд╛рд╡рдЯ рдЕрднреА рднреА рдПрдХ рд╣реА рдЖрдХрд╛рд░ рдХреЗ рдПрдХ рдЕрд╕рдореНрдкреАрдбрд┐рдд рдмрдирд╛рд╡рдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдореЗрдореЛрд░реА рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ (рдФрд░ рдЗрд╕рд▓рд┐рдП, рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ)ред рдЖрдк рдпрд╣ рднреА рддрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдмрдирд╛рд╡рдЯ рдХреЛ рд░рдВрдЧ рдмрдирд╛рд╡рдЯ рд╕реЗ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред
рд▓реЗрдХрд┐рди рдЗрди рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдмрд╛рдж рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрдм рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдЗрд╡ рд╡реЙрд▓рдкреЗрдкрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ - рдЯрд░реНрдмрд╛рдЗрдиред
"рдЯрд░реНрдмрд╛рдЗрди" - рд╢реЗрдбреНрд╕, рд╢реЗрдбреНрд╕, рд╢реЗрдбреНрд╕ ...

рдпрд╣рд╛рдВ рд╣рдордиреЗ рдУрдкрдирдЬреАрдПрд▓ рдИрдПрд╕ 2.0 рд╢реЗрдбреНрд╕ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╕рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдирдП рд╢реЗрдбреНрд╕ рдореЗрдВ рд╕реЗ рдпрд╣рд╛рдБ рдХреЛрд╣рд░рд╛ рд╣реИ (рдЕрдм рддрдХ рдкрд┐рдХреНрд╕реЗрд▓-рд╡рд╛рд░) рдФрд░ рдПрдХ рд▓реИрдВрдбрд╕реНрдХреЗрдк рд╢реЗрдбрд░, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рджрд▓реЛрдВ рд╕реЗ рдЫрд╛рдпрд╛ рдЪрд▓рддреА рд╣реИред
рдХреЛрд╣рд░реЗ рдХреЛ рд░реИрдЦрд┐рдХ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рддреБрд░рдВрдд рдЕрдзрд┐рдХ рдпрдерд╛рд░реНрдерд╡рд╛рджреА рдШрд╛рддреАрдп рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдШрд╛рддреАрдп рдХреЛрд╣рд░рд╛ рдЗрддрдирд╛ рдзреАрдорд╛ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╣рдордиреЗ рддреБрд░рдВрдд рдЗрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред
рд▓реИрдВрдбрд╕реНрдХреЗрдк рд╢реЗрдбрд░ рджреЛ рдмрдирд╛рд╡рдЯреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ - рдПрдХ рджреЛрд╣рд░рд╛рд╡ 512 * 512 рдШрд╛рд╕ рдХреА рдмрдирд╛рд╡рдЯ рдФрд░ рджреВрд╕рд░реА рдмрдирд╛рд╡рдЯ рдЬреЛ рд╕реНрдереИрддрд┐рдХ рдкрд░рд┐рджреГрд╢реНрдп рд▓рд╛рдЗрдЯрдореИрдк рдФрд░ рдХреНрд▓рд╛рдЙрдб рд╢реИрдбреЛ рдмрдирд╛рд╡рдЯ (рдХреЗрд╡рд▓ 64 * 128) рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред рдпрд╣рд╛рдВ, рд░рдВрдЧреЛрдВ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрд╢рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ - рд▓рд╛рдЗрдЯрдореИрдк рдХреЛ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЫрд╛рдпрд╛ рдФрд░ рдХреЛрд╣рд░реЗ рдХреЛ рдорд┐рдХреНрд╕ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдЖрдЧреЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрди рд╢реЗрдбреНрд╕ рдХреЛ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдмрдХреБрдЫ рдкрд┐рдХреНрд╕реЗрд▓ shader рдХреЛрдб рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред
"рдХрджреНрджреВ" - рдирдП рд╢реЗрдбреНрд╕, рддреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб

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

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

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

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рддрд╕реНрд╡реАрд░ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рд╣рдо рдкрд╛рдиреА рдФрд░ рдХреЛрд╣рд░реЗ рдХреА рдЫрд╛рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред рдЖрдкрдиреЗ рдЬреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдХрд╛рд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХреБрдЫ рд╣реИред
рдкрд╛рдиреА рдХреЗ рд╢реЗрдб рдХреЛ рдкрд╛рд╡рд░рд╡реАрдЖрд░ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╕рд░рд▓реАрдХреГрдд (рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЕрдкрд╡рд░реНрддрди, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЧрдгрдирд╛ рд╕рд░рд▓ рд╣реЛ рдЧрдИ рд╣реИ)ред рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЛ рдПрдХ рдЫреЛрдЯреА рдмрдирд╛рд╡рдЯ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХреЗрд╡рд▓ 256 * 256ред
рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдПрдХ рдЬрдЯрд┐рд▓ рдХреЛрд╣рд░реЗ рдЫрд╛рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдХреЛрд╣рд░реЗ рдХрд╛ рдШрдирддреНрд╡ рджреВрд░реА рдФрд░ рдКрдВрдЪрд╛рдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЛрд╣рд░реЗ рдХрд╛ рд░рдВрдЧ рдЪрдВрджреНрд░рдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдХреЛрд╣рд░реЗ рдХреЛ рдЪрдВрджреНрд░рдорд╛ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрд╣ рд╕рдм рдХреЗрд╡рд▓ рд╢реАрд░реНрд╖ рдЫрд╛рдпрд╛ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рд╡рд┐рдВрдб рдЯрд░реНрдмрд╛рдЗрди рд╕реЗ рд╡рд░реНрдЯреЗрдХреНрд╕ рдореЗрдВ рдлреЙрдЧ рд╢реЗрдбрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛, рдЬрд┐рд╕рдиреЗ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рджреАред
рдЕрдм рдЖрдХрд╛рд╢ рдХреА рдЫрд╛рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдЖрдХрд╛рд╢ 3 рдкрд░рддреЛрдВ рд╕реЗ рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рд╣реИ: рдЪрдВрджреНрд░рдорд╛ рдХреЗ рд╕рд╛рде рдЖрдХрд╛рд╢ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрдирд╛рд╡рдЯ, рддрд╛рд░реЛрдВ рдХреА рдПрдХ рдкрд░рдд (рд░рдВрдЧ рдмрдирд╛рд╡рдЯ рдХреЗ рдЕрд▓реНрдлрд╛ рдЪреИрдирд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд) рдФрд░ рдЪрд▓рддреА рдмрд╛рджрд▓реЛрдВред рддрд╛рд░реЛрдВ рдХреЛ рдЖрдХрд╛рд╢ рдХреА рдмрдирд╛рд╡рдЯ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рдХ рдЪрдордХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, shader рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛:
const float CLOUDS_COVERAGE = 12.0; vec4 base = texture2D(sTexture, vTextureCoord); vec4 clouds = texture2D(sClouds, vec2(vTextureCoord.x + fOffset, vTextureCoord.y)); float stars = (1.0 - base.a) * starsCoeff; stars *= pow(1.0 - clouds.r, CLOUDS_COVERAGE); base = base + stars; gl_FragColor = base + base * clouds * 5.0;
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдереЛрдбрд╝рд╛ рдХреЛрдб рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдкреНрд░рджрд░реНрд╢рди рдХрдо рдерд╛, рдХреБрдЫ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдореЛрдЯреА рдореЛрдЯреА () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рджрд▓реЛрдВ рдХреЗ рд╕рд╛рде рддрд╛рд░реЛрдВ рдХреЛ рдХрд╛рд▓рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рджрд▓реЛрдВ (рдмрд╛рджрд▓реЛрдВ * 5.0) рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрдордХ рдХреЛ рднреА рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдордиреЗ рддрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд▓реЗрдкрди рдХреЛ рдмрд╛рджрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд░реИрдЦрд┐рдХ рдХреНрд▓реИрдВрдк () рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рдФрд░ рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдн (рдмрд╛рджрд▓реЛрдВ * 5.0) рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рдЬрд┐рд╕рд╕реЗ рдлрд╝реЛрдЯреЛрд╢реЙрдк рдореЗрдВ рдмрд╛рджрд▓реЛрдВ рдХреА рдмрдирд╛рд╡рдЯ рдЙрдЬреНрдЬрд╡рд▓ рд╣реЛ рдЧрдИред рдЕрдВрддрд┐рдо рд╢реЗрдбрд░ рдиреЗ рдереЛрдбрд╝реА рддреЗрдЬрд╝реА рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛:
vec4 base = texture2D(sTexture, vTextureCoord); vec4 clouds = texture2D(sClouds, vec2(vTextureCoord.x + fOffset, vTextureCoord.y)); float stars = (1.0 - base.a) * starsCoeff; stars *= clamp(0.75 - clouds.r, 0.0, 1.0); base = base + stars; gl_FragColor = base + base * clouds;
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЕрднреА рднреА рдХрдореА рдереАред рд╕рд░рд▓реАрдХреГрдд рдЖрдХрд╛рд╢ рдХреЛ рдПрдХ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдмрдирд╛рд╡рдЯ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХреБрдЫ рднреА рдирд╣реАрдВ рдирд┐рдХрд▓рд╛ - рдмрдирд╛рд╡рдЯ рдХреЗрд╡рд▓ 256 * 256 рдереА, рднрд▓реЗ рд╣реА рдЖрдкрдиреЗ рдЖрдХрд╛рд╢ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЦреАрдВрдЪрд╛, рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ред рд╕рдорд╕реНрдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЧрдИ - рдХрд┐ рдЖрдХрд╛рд╢
рдкрд╣рд▓реЗ рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рдерд╛, рдЕрдВрддрд┐рдо рдирд╣реАрдВред рдпрд╛рдиреА рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЖрдХрд╛рд╢ рдХреЗ рдкреВрд░реЗ рдЧреЛрд▓рд╛рд░реНрдз рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдиреЗ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рдФрд░ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдкреЛрдВрдЫрддреЗ рд╣реБрдПред рд╣рдордиреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдСрд░реНрдбрд░ рдХреА рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╕рдореАрдХреНрд╖рд╛ рдХреА, рдЗрд╖реНрдЯрддрдо рдСрд░реНрдбрд░ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдП, рдФрд░ рдЗрд╕рдиреЗ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рджрд░реНрд╢рди рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ред рддреЛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рдпрд╣ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЕрдкрдирд╛ рдУрдкрдирдЬреАрдПрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЕрдВрдд рдореЗрдВ рдЕрдкрдиреЗ рдбреНрд░рд╛рдЗрдВрдЧ рдСрд░реНрдбрд░ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ - рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдХреЗ, рдЖрдк рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
"рдЯреНрдпреВрд▓рд┐рдк" - рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЫрд╛рдВрдЯрдирд╛

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

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

рд╢реБрд░реБрдЖрдд рдХрд░рддреЗ рд╣реИрдВ рд╢рд╛рджрд┐рдпреЛрдВ рд╕реЗред рдпрд╣рд╛рдВ рдкрд╛рдиреА "рд░реЛрд╢рдиреА" рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдмрджрд▓реЗ рд╣реБрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рдеред рджрд┐рди рдФрд░ рд░рд╛рдд рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рд╡реЗрд╢-рд░рдВрдЧ рд╕реЗ рдЧреБрдгрд╛ рдХреЛ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ:
... gl_FragColor *= ambientColor;
рдбреНрд░реИрдЧрдирдлрд▓реА рдкрдВрдЦреЛрдВ рдХрд╛ рдПрдиреАрдореЗрд╢рди рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдкрдВрдЦреЛрдВ рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдПрдирд┐рдореЗрдЯреЗрдб рдирд╣реАрдВ рд╣реИред рдкрдВрдЦреЛрдВ рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрдбрд╝рдлрдбрд╝рд╛рд╣рдЯ рдХреЛ рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рдПрдХ рдПрдиреАрдореЗрд╢рди рджреНрд╡рд╛рд░рд╛ рд╡реНрдпрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдкрдВрдЦ рд╣реЗрд▓реАрдХрд╛рдкреНрдЯрд░ рдмреНрд▓реЗрдб рдХреЗ рд╕рдорд╛рди рд╣реИрдВ - рд╡реЗ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ рдФрд░ рдирдЧреНрди рдЖрдВрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдзреАрд░реЗ-рдзреАрд░реЗ рдЭрд┐рд▓рдорд┐рд▓рд╛рддреЗ, рдШреВрдорддреЗ рд╣реБрдП рд╡рд┐рдорд╛рди рдореЗрдВ рд╡рд┐рд▓реАрди рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдХрдИ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд┐рдВрдЧ рд╡рд┐рдорд╛рдиреЛрдВ рд╕реЗ рдкрдВрдЦреЛрдВ рдХрд╛ рдПрдХ рдореЙрдбрд▓ рдмрдирд╛рдпрд╛, рдФрд░ рддреЗрдЬреА рд╕реЗ рдлрдбрд╝рдлрдбрд╝рд╛рд╣рдЯ рдХрд╛ рдкреНрд░рднрд╛рд╡ рдПрдХ shader рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпреВрд╡реА-рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдПрдХ рд╕рд░рд▓ рдкрд╛рд░реА рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред
рд╕реНрдЯреЗрдЯрд┐рдХ рд╡рд┐рдВрдЧ рдЬреНрдпрд╛рдорд┐рддрд┐:

рдЗрди рд╡реЙрд▓рдкреЗрдкрд░ рдореЗрдВ, рдЖрдк рдЪрд┐рдХрдиреА рд░рд╛рд╕реНрддреЛрдВ рдкрд░ рдЪрд▓рддреЗ рд╣реБрдП рдХрдИ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдбреНрд░реИрдЧрдирдлрд▓реАрдЬрд╝, рддрд┐рддрд▓рд┐рдпрд╛рдБ, рдордЫрд▓реА рдХреЗ рдкрд╛рдиреА рдХреЗ рдиреАрдЪреЗ рдФрд░ рдХреИрдорд░рд╛ред рд╡реЗ рд╕рднреА рд╕реНрдкрд╛рдЗрди рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ, рдФрд░ рдХреИрдЯрдореБрд▓-рд░реЛрдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдмрд╛рдЗрдмрд┐рдХ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди рдХреЛ рд╕реБрдЪрд╛рд░реВ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдВрддрд░ рдЙрд╕ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИ рдЬреЛ рдЪрд┐рдХрдиреА рдХреЛрдиреЗ рдХреЗ рд╕рд╛рде 3ds рдЕрдзрд┐рдХрддрдо рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реМ рдкреНрд░рддрд┐рд╢рдд рд╕рдЯреАрдХрддрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рдереАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓рд╛рдЧреВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдПрдХрд╕рдорд╛рди рдЧрддрд┐ рдХреЗ рд▓рд┐рдП, рддрдЦрд╝реНрдд рдХреЛрдиреЗ рдХреЗ рдмреАрдЪ рдХреЗ рдЦрдВрдбреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рд╕рдорд╛рди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП - рдЕрдиреНрдпрдерд╛ рдЫреЛрдЯреЗ рдЦрдВрдбреЛрдВ рдкрд░ рдЧрддрд┐ рдзреАрдореА рд╣реЛ рдЬрд╛рдПрдЧреА, рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдпрд╣ рдЧрддрд┐ рджреЗрдЧрд╛ред рдФрд░ рдХреИрдорд░реЗ рдХреА рдЖрд╡рд╛рдЬрд╛рд╣реА рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рдорд╛рди рдЦрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдкрд▓рд╛рдЗрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк 3ds рдореИрдХреНрд╕ рдореЗрдВ "рдиреЙрд░реНрдорд▓рд╛рдЗрдЬрд╝ рд╕реНрдкрд▓рд╛рдЗрди" рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓рдВрдмреЗ рдЦрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рджреЛрд╖ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╣рдордиреЗ 3 рдбреА рдореИрдХреНрд╕ рд╕реЗ рдкрд╛рда рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдиреАрдореЗрд╢рди рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдерд╛ (рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдПрдиреАрдореЗрд╢рди рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ "рдирд┐рд░реНрдпрд╛рдд рдПрдиреАрдореЗрд╢рди" рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдПрдиреАрдореЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ XML рдлрд╝рд╛рдЗрд▓ (* .xaf) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЖрдк рди рдХреЗрд╡рд▓ рд╡рдХреНрд░ рдХреЗ рд╕рднреА рд╢реАрд░реНрд╖реЛрдВ рдХреЛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдСрдмреНрдЬреЗрдХреНрдЯ рдШреВрдо рд░рд╣рд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЯреНрд░реИрдХ рдмрд╛рд░ рдкрд░
рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рднреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдХрд┐рд╕реА рднреА рдирд┐рдпрдВрддреНрд░рдХ, рдХреАрдлрд╝реНрд░реЗрдо рдПрдиреАрдореЗрд╢рди, рдкрдереЛрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ - рдЬреИрд╕реЗ рднреА рдЖрдк рдЕрдкрдиреА рд╡рд╕реНрддреБ рдХреЛ рдЪреЗрддрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдордп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рднрд╛рдордВрдбрд▓ рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП, рдлрд╛рдпрд░рдлреНрд▓рд╛рдЗрдЬрд╝ рдиреЗ рдПрдХ рд╡рд░реНрдЯреАрдХрд▓ рд╢реЗрдбрд░ рдмрдирд╛рдпрд╛ рдЬреЛ рд╣реЗрд▓реЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рд╕реНрдерд┐рддрд┐ рдФрд░ рдорд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ:

рдЫрд╛рдпрд╛рдВрдХрди рд╕рдВрдЧреНрд░рд╣
Shaders рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдпрд╣рд╛рдБ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
dl.dropbox.com/u/20585920/shaders.zipрд╕рднреА рд╢реЗрдбрд░ RenderMonkey рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдмрдиреЗ рд╣реИрдВ, рдЖрдк рдЗрд╕реЗ AMD рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
developer.amd.com/resources/archive/archived-tools/gpu-tools-archive/rendermonkey-toolsuite/#downloadрдпрджрд┐ рдЖрдк рдПрдХ GeForce рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛рд░реНрдб рдХреЗ рдорд╛рд▓рд┐рдХ рд╣реИрдВ, рддреЛ RenderMonkey рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ 'nvemulate' рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
developer.nvidia.com/nvemulate рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ 'GLSL рдХрдВрдкрд╛рдЗрд▓рд░ рдбрд┐рд╡рд╛рдЗрд╕ рд╕рдкреЛрд░реНрдЯ' рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ 'NV40' рдореЗрдВ рдмрджрд▓реЗрдВ:

UPD: рдЦреБрдж рдХреЛ рдХрд╣рд╛рдБ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ
OpenGL рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рд▓рд╛рдЗрд╡ рд╡реЙрд▓рдкреЗрдкрд░ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ GLWallpaperService рдФрд░ рдЕрдиреНрдп рд╕реНрдорд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рд╕рдм рдХреБрдЫ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдХреЛрдб рд▓реЗрдВ рдФрд░ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ:
Google OpenGL ES 2.0 рдЙрджрд╛рд╣рд░рдг:
code.google.com/p/gdc2011-android-openglOpenGL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЗрд╡ рдбреЗрд╕реНрдХрдЯреЙрдк рдЙрджрд╛рд╣рд░рдг:
github.com/markfguerra/GLWallpaperService