Ios GLDRAWARY不工作

Ios GLDRAWARY不工作,ios,uiview,opengl-es,Ios,Uiview,Opengl Es,我想使用OpenGL对图像进行一些更改 因此,在加载图像后,我准备了纹理并输入了以下代码。但是图像没有变成三角形 我做错了什么 glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); static const Vertex3D vertices[] = { {-1.0, 1.0, -0.0},

我想使用OpenGL对图像进行一些更改

因此,在加载图像后,我准备了纹理并输入了以下代码。但是图像没有变成三角形

我做错了什么

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

static const Vertex3D vertices[] = {
    {-1.0,  1.0, -0.0},
    { 1.0,  1.0, -0.0},
    { 0.0, -1.0, -0.0},

};
static const Vector3D normals[] = {
    {0.0, 0.0, 1.0},
    {0.0, 0.0, 1.0},
    {0.0, 0.0, 1.0},
};
static const GLfloat texCoords[] = {
    0.0, 1.0,
    1.0, 0.0,
    0.0, 0.0,
};

glLoadIdentity();
glTranslatef(0.0, 0.0, -3.0);




glBindTexture(GL_TEXTURE_2D, texture[0]);
glVertexPointer(3, GL_FLOAT, 3, vertices);
glNormalPointer(GL_FLOAT, 0, normals);
glTexCoordPointer(2, GL_FLOAT, 0, texCoords);
//initiate the drawing process, we want a triangle, start at index 0 and draw 3 vertices

glDrawArrays(GL_TRIANGLES, 0, 3);

glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);`

我对你的glVertexPointer(3,GLU浮点,3,顶点)感到惊讶;第二个3表示步幅(数字之间的一种间距)。。。我认为应该是0而不是3

glVertexPointer(3,GL_浮点,0,顶点)

实际上,你看到的是三角形还是什么都没有

祝你好运! 皮埃尔

好的:我试过你的代码,所以我可以说:

1) 您应该放置glVertexPointer(3,GL_FLOAT,0,顶点);步幅为0而不是3,显然对3不起作用(即使检查也没用):你的值之间没有差距

2) 它可能来自视图的初始化(常见问题):如何设置投影和模型视图矩阵?例如,要看到三角形,我必须

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, 1.0, 1.0, 10.0); // field of view=45°, zNear..zFar = 1 to 10

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0, 0, -3.0);
i、 e.在做之前别忘了告诉你想要设置哪个矩阵,并正确地设置投影:zNear=max(你的顶点.z)(Oooo现在结束了,使用OpenGL 4,没有更多的隐式矩阵)

我希望你能找到虫子


干杯

还是没什么。这是我之前做的:glActiveTexture(GL_TEXTURE_2D);glEnable(GL_纹理_2D);glBlendFunc(GL_SRC_ALPHA,GL_ONE_减去GL_SRC_ALPHA);glBindTexture(GL_TEXTURE_2D,纹理[0]);glGenTextures(1,&纹理[0]);glEnable(GL_混合物);glEnable(GL_线_光滑);GLTEXAGE2D(GL_纹理_2D,0,GL_RGBA,宽度,高度,0,GL_RGBA,GL_无符号_字节,图像数据);我不明白你所说的视图初始化以及投影和模型视图矩阵的设置是什么意思?我指的是“OpenGL相机”的初始化。我可以看到两行
glLoadIdentity();glTranslatef(0.0,0.0,-3.0)但它们不足以完成视图的定义。看看[