I'm learning DirectX right now, I read alot about VertexBuffer. Since you cant learn from programming by just reading, I'm making a small Engine with DX11 (Well my question isn't really version dependent)
As far as I understood in a VertexBuffer I store Vertices, and actually I store it on the Graphic card. Well I read about dynamic and static buffers. So If I understand correctly, a static buffer is initialized with vertices and the initialized vertices wont change. OKay but when do I really need it. I mean in a Game or whatever, when do I have constant vertices? Maybe for some UI objects..? - but even these aren't constant everytime.. you can move their 2D position... etc..
The next point is about dynamic vertex buffers, for example: I have a Buffer with some vertices in it, these vertices are drawn. Then I want to add or remove some vertices. What now.. So I would simply "update" the buffer. But is this really right and good for performance? Imagine a terrain editor. There you have to update tons of vertices.