Итак, я только начал работать над чем-то в Open GL ES 2.0. У меня складывается общее впечатление, что переход с шаблона 1.1 на шаблон 2.0 в XCode вызвал некоторую путаницу у всех, поэтому в 2.0 мало что может помочь (если есть что-то действительно хорошее и информативное, например 71squared видео по шаблону 1.1, кроме 2.0, вы можете опубликовать ссылку на него).
Моя проблема заключается в отображении изображения на экране.
Прямо сейчас, у меня есть это в моем методе drawFrame.
[(EAGLView *)self.view setFramebuffer];
// Replace the implementation of this method to do your own custom drawing.
static float transY = 0.0f;
glClearColor(0.0f, 1.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
[playerCube drawAtPoint:CGPointMake(160.0f, 240.0f)];
if ([context API] == kEAGLRenderingAPIOpenGLES2)
{
// Use shader program.
glUseProgram(program);
// Update uniform value.
glUniform1f(uniforms[UNIFORM_TRANSLATE], (GLfloat)transY);
transY += 0.075f;
// Validate program before drawing. This is a good check, but only really necessary in a debug build.
// DEBUG macro must be defined in your debug configurations if that's not already the case.
if (![self validateProgram:program])
{
NSLog(@"Failed to validate program: %d", program);
return;
}
}
else
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0f, (GLfloat)(sinf(transY)/2.0f), 0.0f);
transY += 0.075f;
}
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
[(EAGLView *)self.view presentFramebuffer];
По сути шаблон без квадрата подпрыгивая. Это в моем ViewController.m кстати. Это прекрасно работает само по себе. Однако мне не очень повезло с кодом для отображения изображения. Я использую файл Texture2D из примера аварийной посадки Apple, но мне не очень повезло с этим, независимо от того, где находится код, связанный с изображением.
Я использовал playerCube = [[Texture2D alloc] initWithImage:[UIImage imageNamed:@"Cubix.png"]];
для его выделения, что, вероятно, правильно, даже если я не поместил его в нужное место, и [playerCube drawAtPoint:CGPointMake(160.0f, 240.0f)];
.
Подождите, это не показало бы ничего в начале, потому что я не установил высоту и ширину изображения, верно? Я думаю, что вроде как ответил на эту часть моего вопроса. Будет ли это работать, если я использую что-то вроде image.frame = CGRectMake ();
или это не будет работать с текстурой 2D? Кроме того, где я должен поместить этот код, чтобы он работал, как это было бы?
Надеюсь, у меня был какой-то смысл в этом. Я никогда не публиковал вопрос о StackOverflow.