
21 рд╡реАрдВ рд╕рджреА рдореЗрдВ рд░рд╣рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА iPhone рдХреИрдорд░реЗ рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реИред
рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛, рдПрдХ
рд▓реЗрдЦ рдореЗрдВ рдПрдХ рдлрд▓-рдХрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдХрд▓реНрдкрдирд╛ рдпрд╣реАрдВ рдирд╣реАрдВ рд░реБрдХреАред
рдкрд░рд┐рдгрд╛рдореА рддрд╕реНрд╡реАрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рддреАрди рдЖрдпрд╛рдореА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкрд╛рда рдХреЗ рдмрд╛рдИрдВ рдУрд░ рджреЗрдЦреЗ рдЧрдП рд╕рдорддрд▓ рдЪрд┐рддреНрд░ рдХреЗ рд╕рд╛рде рддреНрд░рд┐-рдЖрдпрд╛рдореА рд╡рд╕реНрддреБ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред
рдпрджрд┐ рдЖрдкрдХреЛ рдлреВрд▓рджрд╛рди рдХреА рдЫрд╡рд┐ рдкрд░ рд▓реЛрдЧреЛ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ
рдЫрд╡рд┐ рджреЗрдЦрдиреЗ рдХреЗ рдореЛрдб
рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред
рдиреАрдЪреЗ рдореИрдВ рдПрдХ рдлреНрд▓реИрдЯ рдЫрд╡рд┐ рдХреЛ рдЬреАрдПрд▓ рдмрдирд╛рд╡рдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ рдФрд░ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдореИрдВрдиреЗ рдЧреБрдкреНрдд рд░реВрдк рд╕реЗ
рдЖрдИрдУрдПрд╕ рд╕рдореАрдХреНрд╖рд╛ рдЯреАрдо рдкрд░ рдЬрд╛рд╕реВрд╕реА рдХреАред
рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐
iOS рд░рд┐рд╡реНрдпреВ рдЯреАрдо рд╡реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдРрдкрд╕реНрдЯреЛрд░ рдореЗрдВ рдЕрдиреБрдореЛрджрди рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдРрдк рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред
рдереЛрдбрд╝рд╛ рд╕рд╛ рдХреЛрдб
рдмрд┐рдЯрдореИрдк рдЫрд╡рд┐ рдХреЛ GL рдмрдирд╛рд╡рдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рд╕рдорд╛рд░реЛрд╣
uploadTexture- (GLuint) uploadTexture:(UIImage*) image { GLuint width = 256; GLuint height = 256; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); void *imageData = malloc( height * width * 4 ); CGContextRef ctx = CGBitmapContextCreate( imageData, width, height, 8, 4 * width, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big ); CGColorSpaceRelease( colorSpace ); CGContextClearRect( ctx, CGRectMake( 0, 0, width, height ) ); CGContextTranslateCTM( ctx, 0, height - height ); CGContextDrawImage( ctx, CGRectMake( 0, 0, width, height ), image.CGImage ); GLuint texName; glGenTextures(1, &texName); glBindTexture(GL_TEXTURE_2D, texName); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, imageData); CGContextRelease(ctx); free(imageData);
рдПрдХ рдЪреМрдХрд╕ рдкрд╛рдардХ рдпрд╣ рдиреЛрдЯрд┐рд╕ рдХрд░реЗрдЧрд╛ рдХрд┐ рдореИрдВ рддрд╕реНрд╡реАрд░ рдХреЛ рдЙрд▓реНрдЯрд╛ рдХрд░ рджреЗрддрд╛ рд╣реВрдВ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред
рдЗрдореЗрдЬ рдУрд░рд┐рдПрдВрдЯреЗрд╢рди рдУрдкрдирдЬреАрдПрд▓ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕реНрддрд░ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдФрд░ рднреА рд╕рд░рд▓ рд╣реИред
рдХреБрдореНрд╣рд╛рд░ рдХрд╛ рдЪрд╛рдХ
рдореИрдВрдиреЗ рддреБрд░рдВрдд рдЕрдкрдиреЗ рдкреНрд░рд╛рдЪреАрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЙрдЯрд░ рдХреЗ рд╡реНрд╣реАрд▓ рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЗрд╕рдореЗрдВ рдХреНрдпреЛрдВ рд╣реИ?
рдЖрд╡реЗрджрди рдиреЗ рдореБрдЭреЗ 2 рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд┐рди рдореЗрдВ 5 рд░реБрдкрдпреЗ рджрд┐рдП, рдЬрдм рдЕрдЪрд╛рдирдХ (рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ) рдкреИрд╕реЗ рдХрд╛ рдкреНрд░рд╡рд╛рд╣ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред
рдЖрд╡реЗрджрди рдЖрджрд┐рдо рдерд╛ - рдЖрдк рдПрдХ рдХреБрдореНрд╣рд╛рд░ рдХреЗ рдкрд╣рд┐рдпрд╛ рдХреЛ рдореЛрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣ рдХрддрд╛рдИ рд╣реИ, рдХрддрд╛рдИ рд╣реИред
рдФрд░ рдЖрдк рдЕрдкрдиреА рдЙрдВрдЧрд▓реА рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ рдФрд░ рд╕рд┐рд▓реЗрдВрдбрд░ рдХреЛ рдЕрдкрдиреА рдХрд▓рд╛рддреНрдордХ рдкреНрд░рддрд┐рднрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдлреВрд▓рджрд╛рди, рдХрд╛рдВрдЪ рдпрд╛ рдПрдореНрдлреЛрд░рд╛ рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред
рдЖрдк рдПрдХ рдлреВрд▓рджрд╛рди рдкрд░ рдПрдХ рддрд╕реНрд╡реАрд░ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкреЗрдВрдЯ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдХрд┐рд╕ рддрд░рд╣ рдХреА рдкрд░реЗрд╢рд╛рдиреА рд╣реБрдИ, рдореБрдЭреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЗрдЬ рджреЗрдЦрдирд╛ рдкрдбрд╝рд╛, рдФрд░ рдУрд╣! рдореИрдВ рдмреБрд░реА рддрд░рд╣ рдбрд░ рдЧрдпрд╛ред
рд░реЗрдЯрд┐рдВрдЧ рд╢реВрдиреНрдп рд╣реИ! рдФрд░ рдХреЗрд╡рд▓ рд╕рдореАрдХреНрд╖рд╛ рд▓рдЯрдХрддреА рд╣реИ: -рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЦрд░реАрдж рдирд╣реАрдВ! рдпрд╣ рдПрдХ рдмрд░реНрддрди рдкрд╣рд┐рдпрд╛ рдирд┐рдлрд╝рдЧрд╛ рдирд╣реАрдВ рд╣реИ! рдЕрдкрдирд╛ рдкреИрд╕рд╛ рд╡реНрдпрд░реНрде рдореЗрдВ рдЦрд░реНрдЪ рдХрд░реЛ!
рдЦреИрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ, рдпрд╣реВрджрд┐рдпреЛрдВ рдпрд╛ рдорд╛рдлрд┐рдпрд╛ред рдорд╛рд░рд┐рдпреЛ рдХреНрдпреВрдбрд╛ рд▓рд╛ рдлрд╝рд┐рдирд╕реНрддреЗрд░рд╛!
рдФрд░ рдЖрдк рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗред рдЪрд╛рд╣реЗ рд╡рд╣ Google Play рдкрд░ рдорд╛рдорд▓рд╛ рд╣реЛ, рдХрдо рд╕реЗ рдХрдо рдЖрдзреА рд░рд╛рдд рддрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВред
рдЗрд╕рд▓рд┐рдП рдореИрдВ рдРрдкрд╕реНрдЯреЛрд░ рдореЗрдВ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкрдиреНрдиреЛрдВ рдкрд░ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реВрдВ рдФрд░ рд╕рдореАрдХреНрд╖рд╛ рдирд╣реАрдВ рдкрдврд╝рддрд╛ рд╣реВрдВ - рдирд░реНрдХ рдХреА рдирд╕реЗрдВ, рдФрд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЕрдзрд┐рдХ рдорд╣рдВрдЧрд╛ рд╣реИред
рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░рдирд╛ рд╣реИ ред
рдЕрдЧрд░ рдирд╣реАрдВ, рддреЛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЛред
рд╡реАрдбрд┐рдпреЛ рдХреИрдкреНрдЪрд░ рдХреЗ рд╕рд╛рде рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг
рдХрд╣рд╛, рдиреЗ рдХрд╣рд╛, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдкреЗрдВрдЪ рдХрд░рдХреЗ рдПрдХ рдЕрджреНрдпрддрди рдЬрд╛рд░реА рдХрд┐рдпрд╛, рдЕрд░реНрдерд╛рддреН, рдЙрд╕рдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рддрд╕реНрд╡реАрд░ рдХреЛ рдордХреНрдЦреА рдкрд░ рдЦреАрдВрдЪрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдЗрд╕реЗ рдПрдХ рдлреВрд▓рджрд╛рди рдкрд░ рдСрдирд▓рд╛рдЗрди рдореВрд░реНрддрд┐рдХрд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдЙрд╕реА рд╕рдордп рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЫрд┐рдкрд╛ рджрд┐рдпрд╛ред
рдореИрдВрдиреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ред рдФрд░ 20 рд▓рдВрдмреА рд░рд╛рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рджреЗрдЦрд╛ рдЬрд╣рд╛рдВ рдирд┐рд░реАрдХреНрд╖рдХреЛрдВ рдХреА рддрд╕реНрд╡реАрд░реЗрдВ рджрд┐рдЦрд╛рдИ рдЬрд╛рдиреА рдереАрдВред рдвреАрда! рдЬреИрд╕рд╛ рдХрд┐ рдХреИрдЪ рдорд╣рд╕реВрд╕ рд╣реБрдЖ, рддреАрди рд╣рдлреНрддреЗ рддрдХ рди рддреЛ рд╕реБрдирд╡рд╛рдИ рд╣реБрдИ рдФрд░ рди рд╣реА рдЖрддреНрдорд╛ред
рдФрд░ рдХрд▓, рдзрдорд╛рдХрд╛! рд╣реЛ рдЧрдпрд╛, рдореБрдЭреЗ рдПрдХ рдЖрджрдореА рдорд┐рд▓рд╛, рдмрд╣реБрдд рд╕реБрдВрджрд░, рдпреБрд╡рд╛, рд▓рдЧрднрдЧ 30 рд╕рд╛рд▓ рдХрд╛, рдореЗрд░реЗ рдЖрд╡реЗрджрди рдФрд░ рдЙрд╕рдХреЗ рдЖрдИрдлреЛрди рдХреЛ рдШреВрд░рддрд╛ рд╣реБрдЖред
рдФрд░ рдЖрдЬ, рдХреНрд▓реЙрдкреНрд╕ -2, рдРрдкрд╕реНрдЯреЛрд░ рдореЗрдВ рдЖрд╡реЗрджрди рдХреЛ рдордВрдЬреВрд░реА рджреА рдЧрдИ рд╣реИ!
рдиреИрддрд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдПрдХ рдЖрджрдореА рдХреА рддрд╕реНрд╡реАрд░ (рдФрд░ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рд╕реЗ рдКрдирд╛ рдлреНрд░реВрдЯрд╛ рдХреА рдмреНрд░рд╛рдЬреАрд▓ рдХреА рдорд╣рд┐рд▓рд╛рдПрдВ) рдХрд┐рд╕реА рдХреЛ рдирд╣реАрдВ рджрд┐рдЦрд╛рдПрдЧреАред
рдХреЛрдИ рдордЬрд╛рдХ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдЪрд╛рд▓ рдЪрд▓рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХ рд░рд╣рд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдореА рддрд╕реНрд╡реАрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╕рд┐рджреНрдзрд┐ рдХреЗ рд╣реЙрд▓, рд░реЗрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рдФрд░ рджреИрдирд┐рдХ рдЪреИрдВрдкрд┐рдпрдирд╢рд┐рдк рдХреЗ рд╡рд┐рдЬреЗрддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЪрдкрдИ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред рдЦреЗрд▓ рдХреЗ рджрд░реНрд╢рдХ рдЫрд╣ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЧрдП рд╣реИрдВ, рд╡рд╣реА 100-200 рд▓реЛрдЧ рдЦреЗрд▓рддреЗ рд╣реИрдВ рдФрд░ рд╣рд░ рдХреЛрдИ (рдЬреЛ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП) рдмреЗрд╣рдж рдЙрддреНрд╕реБрдХ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╕реНрдерд╛рдпреА рдкреЗрд╢реЗрд╡рд░ рдЪреИрдВрдкрд┐рдпрди рд╕реНрд▓рд╛рд╡рд┐рдпрди74 рдпрд╛ рдмреНрд░рд╛рдЬреАрд▓ рдХреЗ рдбрд┐рдореЛрдирд╢рд╛рд░реНрдШрд┐рдХ рдпрд╛ рдлреИрдмрд┐рдпреЛрд╣реИрдбрдб рджрд┐рдЦрддреЗ рд╣реИрдВ ... рдЙрдирдХреЗ рдмреАрдЪ рдлреЗрд░реАрд╡рд╛рд▓реЗ рд╣реИрдВред
рдмреЗрд╢рдХ, рдЖрд╡реЗрджрди рдХреА рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рди рднреВрд▓реЗрдВред
рдФрд░ рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВред рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ, рд╕рдм рдХреЗ рдмрд╛рдж, рд╡рд╣рд╛рдБ рд╕рд┐рд░реНрдл рдЙрдирдХреЗ рдЪреЗрд╣рд░реЗ рдирд╣реАрдВ рд╣реИред