I have right now one VBO for each terrain size, and the terrain mesh gets updated, as they are used in my editor. As of now I am calling glBufferSubData() to update my VBO data.
Would it be faster to call
glMapBuffer() instead and not setup a VBO for each terrain size?
Try it out and see for yourself. While I don’t think it will be faster, glMapBuffer will probably offer some performance benefits if you update the data in another thread.
Hmm, I thought I read somewhere that someone did a test example that the glMapBuffer was faster, but it could have been due to threads…
So what about the memory footprint? With my current situation I have 65x65-513x513 VBO sizes for the terrain. Which takes up quite a bit or RAM with all the vertex attributes. With the mapped buffer would it just allocate the 513x513 and resize itself when you update it with smaller sized VBOs?
So what I am asking is if the largest is 513x513x80bytes = ~22MBs that is the most that will be allocated with the map buffer vs. making a VBO for each size which will allocate ~30MBs or so for the 65-513 range of VBOs?