I am only slightly experienced in opengl (i am mostly doing
2d on blitter stuff) and i would like to clear some things with it,
maybe some will help me to clarify..
As i understand you need to transfer (ram -> vram upload)
two kinds of data :
- geometry data
- texture data
as i understand texture data you only upload mostly once (at app startup) not each frame (except if you got not sufficient vram then you could destroy
some upload some other, it is switch texture set for example between
game chapters,.. but in general you do not do it on perframe basis) [is this correct?]
- also if you need tochange texture data you usually change it on vram side
by shaders.. [is this correct?]
more confused i am with dealing with geometry data :
here i am not sure but it seem to me that geometry data is in
generall uploaded on perframe basis (it is you send heavy thousands of triangles each frame with cpu to gpu side - then after every frame
the vram set of it is destroyed/cleared (which opengl call clears it?
i do not know the thing here..) for example even if you have vertex
array you need to send it (ram->vram) each frame
is this correct or not? are there some mechanism that prevents
the uploaed geometry arrays on vram side and allow only for
manipulating them there? (for example heavy mesh is being uploaded to
vram and it stays there for hundreds of frames you can only send some
parameters like modifile position matrixes for each mesh nodes not whole
mesh data? could someone clear the thing?