[Interest] Using OpenGL with Qt

Till Oliver Knoll till.oliver.knoll at gmail.com
Tue Mar 18 09:37:58 CET 2014


Am 17.03.2014 um 16:49 schrieb Yves Bailly <yves.bailly at sescoi.fr>:

> ...
> That was 100k ;-) and each is a different piece of mesh, so no instances. Its
> 100k instances of a *class*, not 100k instances of a *model* - each "class
> instance" containing its own model.

That's exactly where the already mentioned "multi draw" flavour comes into play, such as

  glMultiDrawArraysIndirect

The entire mesh data - of multiple meshes! -  is given in one huge array (so the number of objects you can draw "simultaneously" is really only limited by how much VRAM you can allocate), and the "indirect" part comes from the fact that you pass along an offset into the GL_DRAW_INDIRECT_BUFFER, which is an array of a struct, DrawArraysIndirectCommand, which eventually specifies the vertex count and offset etc. in the actual vertex array.

Unfortunately those "multi draw" flavours require OpenGL >= 4.3 (or extensions), and since this rules out Mac OS X (again, *sigh*) I must admit that my knowledge is of theoretical nature only ;)

> Now to be honest, that 100k number is quite extreme, the usual common case is
> around 5k-10k nowadays (but increasing with time).

Off course the above only helps if you would manage with reasonable effort to place all your (static?) mesh data into one huge vertex array (so I understand), which might or might not be feasible in your case.

Still, for me it sound a little bit like you decided to implement a text processor and someone really fond of "OO design" came up with the idea to model each character with its own class instance ;)

By the way, what kind of application are we talking about? GIS? Finite Elements simulation? I strongly assume the 100k elements is calculated data, no?

Cheers,
  Oliver


More information about the Interest mailing list