Original Post
Let's suppose I'm building a 2D sprite-based game engine and wish to proceed in one of two ways...
1- I create a large dynamic VB and dump all of my sprites into it each frame with their absolute screen position as their coordinates. (1 draw call total)
2- I create a static buffer and use model transformations to position the sprites. (1 draw call per buffer)
The research I've done seems to show that creating a large dynamic VB would be the best way to go. Would this also hold true if, instead of a 2D engine, I were dealing with static models in a 3D engine? (I don't really see why not but I figure other things may play into this...) And is there some "tradeoff point" where exceeding a certain arbitrary amount of vertices would make the other solution better, or something similare?
Thanks!
Edit: Actually, now that I think of it, what constitutes a "static" mesh? I can't seem to find a better explanation than "vertices that don't change very often at all", but how permissive is that? Would a mesh that changes once every couple of seconds (like the score display in a game) be better suited for a dynamic VB, for instance, or is that infrequent enough to use a static VB?
1- I create a large dynamic VB and dump all of my sprites into it each frame with their absolute screen position as their coordinates. (1 draw call total)
2- I create a static buffer and use model transformations to position the sprites. (1 draw call per buffer)
The research I've done seems to show that creating a large dynamic VB would be the best way to go. Would this also hold true if, instead of a 2D engine, I were dealing with static models in a 3D engine? (I don't really see why not but I figure other things may play into this...) And is there some "tradeoff point" where exceeding a certain arbitrary amount of vertices would make the other solution better, or something similare?
Thanks!
Edit: Actually, now that I think of it, what constitutes a "static" mesh? I can't seem to find a better explanation than "vertices that don't change very often at all", but how permissive is that? Would a mesh that changes once every couple of seconds (like the score display in a game) be better suited for a dynamic VB, for instance, or is that infrequent enough to use a static VB?