From what I've gathered, vertex arrays in OpenGL are meant to reduce bandwidth consumption by uploading vertices into video memory during initialization. The problem is that once they are in video memory, the data cannot be read except by the vertex shader. Even if the data could be read, this would mean that it would have to pass through the AGP bus, which results in the same bandwith consumption that vertex arrays are supposed to eliminate. BSP Trees require that one finds out where a polygon is in relation to the viewpoint in order for rendering to take place in the correct order. Finding out this relation requires vertex coordinates.
The only solution I can think of is to have a second copy of the vertex coordinates in system memory for quick access. The result, however, is increased memory usage. Is this simply how it must be done in order to combine vertex arrays with BSP trees or is there another solution? Or is there a much better system to use than BSP trees when one uses vertex arrays?
The only solution I can think of is to have a second copy of the vertex coordinates in system memory for quick access. The result, however, is increased memory usage. Is this simply how it must be done in order to combine vertex arrays with BSP trees or is there another solution? Or is there a much better system to use than BSP trees when one uses vertex arrays?