I implemented VBO and my engine became slower!!!!
it's slow when i refresh vertex and when i use dynamic texture(lightmap)
create my vbo buffer:
void VboSNE::endVertex() {
if(vVBO) {
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboid[0]);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, nver*3*sizeof(float), vertex, GL_STATIC_DRAW_ARB);
delete[] vertex;
vertex = NULL;
}
}
void VboSNE::endNormal() {
if(nVBO) {
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboid[1]);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, nnor*3*sizeof(float), norm, GL_STATIC_DRAW_ARB);
delete[] norm;
norm = NULL;
}
}
void VboSNE::endTextureCoord() {
if(tVBO) {
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboid[2]);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, ntex*2*sizeof(float), texver, GL_STATIC_DRAW_ARB);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboid[3]);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, ntex*2*sizeof(float), texver, GL_STATIC_DRAW_ARB);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboid[4]);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, ntex*2*sizeof(float), texver, GL_STATIC_DRAW_ARB);
}
}
apply it:
void VboSNE::drawVBO() {
if(vVBO) {
glEnableClientState(GL_VERTEX_ARRAY);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboid[0]);
glVertexPointer(3, GL_FLOAT, 0, 0);
}
if(nVBO) {
glEnableClientState(GL_NORMAL_ARRAY);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboid[1]);
glNormalPointer(GL_FLOAT, 0, 0);
}
if(tVBO) {
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glClientActiveTextureARB(GL_TEXTURE0_ARB);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboid[2]);
glTexCoordPointer(2, GL_FLOAT, 0, 0);
glClientActiveTextureARB(GL_TEXTURE1_ARB);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboid[3]);
glTexCoordPointer(2, GL_FLOAT, 0, 0);
if(lightModel==LIGHTMAP) {
glClientActiveTextureARB(GL_TEXTURE2_ARB);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vboid[4]);
glTexCoordPointer(2, GL_FLOAT, 0, 0);
}
}
glDrawArrays(mode, 0, nver);
if(tVBO) {glDisableClientState(GL_TEXTURE_COORD_ARRAY);}
if(nVBO) {glDisableClientState(GL_NORMAL_ARRAY);}
if(vVBO) {glDisableClientState(GL_VERTEX_ARRAY);}
}
what's wrong? please help me
[Edited by - raizen on March 26, 2006 7:01:10 AM]