   Vertex Buffer deletion speed problem?
  This is really an irritation, and I suspect it''s got more to do with using Visual Basic than with actual vertex buffers. What''s happening is this:I am creating a large array of vertex buffers (two dimensional, each vertex buffer corresponds to a 1x1 map unit). So, I create an array of 200x200 and can then draw any terrain unit by saying, for example,setstreamsource= map(x,y).VertexBufferThis all loads up and runs quite fine. The map loading takes about 4 seconds on a 200x200 map and the thing renders with plenty speed to spare.My problem is that exiting the application takes up to a minute, and if I try and re-load a map (over-writing the existing Vertex buffer array) it takes a similar time (I assume because it has to destroy the VB and then re-create it... and the destruction slowdown is the same as when the app exits).I have taken a look at what''s happening and this problem is definitely being caused by the destruction of the VB''s (if I run a loop that manually destroys them before terminating the program, the loop takes about a minute to run, and then the app exits in seconds so... this means it''s the VB''s that are slowing it down).I don''t know if this is a problem with Visual Basic not handling the memory efficiently, or if it''s a problem with VB''s in general in DX8. I note the Max Payne has a ''Please wait while quiting game'' period... my game waits for about the same amount of time so maybe it''s a common prob.Anyway, if anyone could tell me either how to fix the problem or that I must just accept it because that''s the way things are, I would appreciate it.  
  Use one vertex buffer only. Each unit of terrain (assuming it's a quad) consists of 2 triangles.Then you can locate any terrain unit you want to render.Width of each row of terrain units : wWidthTriangle number in each row : wWidth * 2Vertex number in each row : wWidth * 2 * 3 = wWidth * 6For Terrain Unit (x,y)wVertexOffset = (x + (y * wWidth)) * 6; (don't take this formula for granted. I make stupid makes sometimes)Rendering : You can create a dynamic buffer (Default Pool) and then refill it each frameORUse an index buffer to define the tris you want to renderEdited by - Coder on November 14, 2001 6:58:08 AM  