I’ve implemented and tested geometry instancing on a bunch of simple, 4 polygon tree models. I’m packing the tree positions in a texture buffer. My 285 takes close to 16 ms a frame to render about 10 batches of 5,000 trees.
I’ve also merged all the tree geometry together, so I have the same number of batches, but I’m just calling the good ol’ glDrawElements. If the tree groups are compiled into display lists, the frame time is just 5 ms. If not, then the frame time is about 10 ms.
So, in this simple case, I’ve found that instancing performs worse than straight GL calls. Have others reached a similar conclusion? Is there a batch size or model polygon count for which instancing would outperform regular GL calls for static objects?