【发布时间】:2017-10-26 16:36:36
【问题描述】:
这是我的 opengl-es 2.0 代码:
{
for (surfnum=0;surfnum<surftotal;surfnum++){
for (i=0;i<triNum[surfnum];i++){
GLfloat *Vertices[] = { triArray[surfnum][i].normpt1, triArray[surfnum][i].normpt2,triArray[surfnum][i].normpt3};
glGenBuffers(1, &ui32Vbo);
glBindBuffer(GL_ARRAY_BUFFER, ui32Vbo);
unsigned int uiSize = 3 * (sizeof(GLfloat) * 1);
glBufferData(GL_ARRAY_BUFFER, uiSize,*Vertices, GL_STATIC_DRAW);
}
}
}
for(int i = 0; i < 80000; ++i)
{
glClear(GL_COLOR_BUFFER_BIT);
int i32Location = glGetUniformLocation(uiProgramObject, "projmatrix");
glUniformMatrix4fv( i32Location, 1, GL_FALSE, pfIdentity);
glEnableVertexAttribArray(VERTEX_ARRAY);
glVertexAttribPointer(VERTEX_ARRAY, 3, GL_FLOAT, GL_FALSE, 0, 0);
glDrawArrays(GL_TRIANGLES, 0,i);
eglSwapBuffers(eglDisplay, eglSurface);
}
这是我的 opengl-es 2.0 代码。我正在研究 opengl 1.1,我能够在其中显示 iso 表面形式数据。
这是我的 Opengl 1.1 代码:
void drawTriangle()
{
int surfnum, i;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0,0.6,0.1);
for (surfnum=0;surfnum<surftotal;surfnum++)
{
for (i=0;i<triNum[surfnum];i++)
{
glBegin(GL_POLYGON);
glNormal3fv(triArray[surfnum][i].normpt1);
glVertex3fv(triArray[surfnum][i].pt1);
glNormal3fv(triArray[surfnum][i].normpt2);
glVertex3fv(triArray[surfnum][i].pt2);
glNormal3fv(triArray[surfnum][i].normpt3);
glVertex3fv(triArray[surfnum][i].pt3);
glEnd();
glFlush();
glutSwapBuffers();
}
}
}
我得到的结果与我在 opengl 中得到的结果不同,在 opengl-es 2.0 中也是一个
警告如下:libegl:使用软件后备;
输出非常缓慢
这里输出超出窗口
如果您想了解其他信息,请询问我。
【问题讨论】:
-
这对于正交投影矩阵看起来是正确的。正在发生什么,您预计会发生什么?
标签: opengl opengl-es glsl opengl-es-2.0