   question about vbo update tricks
  i'm using a single vbo for my gui, another one for all the character for my textured font mechanism and I have to update the visible gui elements and chars on screen every frame. I also want to update all vbos of my meshes every frame to perform backface culling. or frustum culling on a tesselated surface using some technique like octree (actually although it's a little off topic, i'm not sure if octree is the right thing to frustum cull meshes like height maps in face scale because all the tutorials show how to use AABB to cull a mesh entirely from the scene instead of culling invisible faces of it. I probably miss something here.)so I try to create an optimize() method in the scope of my vertexbuffer class which takes camera & frustum info and perform these optimizations. the problem is i can't decide how to update these vbos, in my opinion, updating visible vbo data every frame can be a bottleneck and instead, i can upload all the mesh data (no matter visible or invisible) in gpu controlled memory only once in scene setup time and update the ibo only everyframe. this may reduce the drawing time and reduce the overhead of vertex data uploading every frame although no benefit from resource usage.is this approach right or is there a better way to achieve these stuff?   
  ok I'll simplify my question..which one is faster:upload all vertices to gpu once at scene setup and update culled ibo every frame orcull vertices every frame and upload culled vbo and ibo to gpu every frame??   