Похоже, вы не импортировали требуемые заголовки.Для разработки приложения OpenGL ES 1.0 необходимо включить следующие заголовки:
#import <OpenGLES/EAGL.h>
#import <QuartzCore/QuartzCore.h>
#import <OpenGLES/ES1/gl.h>
#import <OpenGLES/ES1/glext.h>
Не забудьте добавить каркасы: OpenGLES.framework
и QuartzCore.framework
.
Редактировать:
В OpenGL ES 2.0 у вас нет каких-либо матричных операций, доступных в 1.0, таких как glTranslatef
, glRotatef
, glFustrum
и многие другие.Больше.Реализовать их самостоятельно нелегко, но это цена, которую вам нужно заплатить, если вы хотите программируемый конвейер.Короче говоря: вам нужно написать свои собственные функции для представления и манипулирования матрицами 4x4: умножить их, умножить на векторы, создать матрицы поворота, перемещения и масштабирования, вам также нужна функция для создания матрицы проекции, такой как fustrum.После этого вам нужно объявить uniforms в ваших вершинных шейдерах для прохождения projection
и modelview
матриц.Затем вам нужно умножить их, чтобы применить преобразование и проекцию к вершине:
// Simple vertex shader
uniform mat4 projection;
uniform mat4 modelview;
attribute vec3 position;
void main(){
gl_Position = projection * modelview * vec4(position, 1.0);
}
Есть отличная книга, которая научит вас, как использовать ES1 и ES2 на iPhone - Программирование iPhone 3d ,Если у вас нет времени, придерживайтесь ES1.Это нормально, если вам не нужен программируемый конвейер.Но, на мой взгляд, это стоит изучить.