Существует много факторов к оптимизации 3D рендеринга. обычно существует 4 узких места:
Ваш тест дает скошенные результаты, потому что у Вас есть много ЦП (и шина), истратив пиксельная пропускная способность или вершина. VBOs используются для понижения ЦП (меньше вызовов API, параллельных передачам DMA ЦП). Так как Вы не являетесь зависящими от ЦП, они не дают Вам усиления. Это - оптимизация 101. В игре, например, ЦП становится драгоценным, поскольку он необходим для других вещей как AI и физика, не только для издания тонн вызовов API. Легко видеть, что запись данных вершины (3 плавания, например) непосредственно к указателю памяти намного быстрее, чем вызывание функции, которая пишет 3 плавания в память - по крайней мере Вы сохраняете циклы для вызова.
Вы можете использовать:
string baseclassName = typeof(MyClass).BaseType.Name;
Type type = obj.GetType();
Type baseType = type.BaseType;
string baseName = baseType.Name;