Thank not I have a new problem
vbo_Data[i].gl_Vertex[0] = p[i].c[0];
vbo_Data[i].gl_Vertex[1] = p[i].c[1];
vbo_Data[i].gl_Vertex[2] = p[i].c[2];
vbo_Data[i].gl_Normal[0] = (vn[i])[0];
vbo_Data[i].gl_Normal[1] = (vn[i])[1];
vbo_Data[i].gl_Normal[2] = (vn[i])[2];
vbo_Data[i].ambient[0] = ambient[0];
vbo_Data[i].ambient[1] = ambient[1];
vbo_Data[i].ambient[2] = ambient[2];
vbo_Data[i].diffuse[0] = diffuse[0];
vbo_Data[i].diffuse[1] = diffuse[1];
vbo_Data[i].diffuse[2] = diffuse[2];
vbo_Data[i].specular[0] = specular[0];
vbo_Data[i].specular[1] = specular[1];
vbo_Data[i].specular[2] = specular[2];
vbo_Data[i].shininess = shininess;
}
glEnableVertexAttribArray(gl_VertexID);
glEnableVertexAttribArray(gl_NormalID);
glEnableVertexAttribArray(ambientID);
glEnableVertexAttribArray(diffuseID);
glEnableVertexAttribArray(specularID);
glEnableVertexAttribArray(shininessID);
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(VertexData)*n, vbo_Data, GL_STATIC_DRAW);
glVertexAttribPointer(gl_VertexID, 3, GL_DOUBLE, GL_FALSE, sizeof(VertexData)*n,0);
glVertexAttribPointer(gl_NormalID, 3, GL_DOUBLE, GL_FALSE, sizeof(VertexData)*n, (GLvoid*) offsetof(VertexData, gl_Normal));
glVertexAttribPointer(ambientID, 3, GL_FLOAT, GL_FALSE, sizeof(VertexData)*n, (GLvoid*) offsetof(VertexData, ambient));
glVertexAttribPointer(diffuseID, 3, GL_FLOAT, GL_FALSE, sizeof(VertexData)*n, (GLvoid*) offsetof(VertexData, diffuse));
glVertexAttribPointer(specularID, 3, GL_FLOAT, GL_FALSE, sizeof(VertexData)*n, (GLvoid*) offsetof(VertexData, specular));
glVertexAttribPointer(shininessID, 1, GL_FLOAT, GL_FALSE, sizeof(VertexData)*n, (GLvoid*) offsetof(VertexData, shininess));
glDrawArrays(GL_TRIANGLE_FAN, 0, n);
glDisableVertexAttribArray(gl_VertexID);
glDisableVertexAttribArray(gl_NormalID);
glDisableVertexAttribArray(ambientID);
glDisableVertexAttribArray(diffuseID);
glDisableVertexAttribArray(specularID);
glDisableVertexAttribArray(shininessID);
delete [] vbo_Data;
glDrawArrays(GL_TRIANGLE_FAN, 0, n); generates an error when n is larger than 3