How to visualize non-trivial particles in OpenGL

I have a particle system where positions and various properties are stored in a vertex buffer object. Values ​​are constantly updated by the CUDA core. I am currently just passing them using GL_POINTS as flat circles. I am interested in the fact that these particles are more attractive, for example, 3D-animated bird models. I'm trying to figure out what is best for what. For the sake of conversation, we can say that the animation of the bird model consists of three frames (the position of the wings, and what is not)

I can see the loading of models into display lists and cyclic movement across all particles during translation, rotation, etc., after which the matrix calls up the display list. This does not seem like an ideal approach, because for this it would be necessary to bring all the particle data to the host from gpu only to perform matrix operations in order to return to the GPU (unless I can call the drawing functions from the cuda kernel ??)

I don’t know much about shaders, can they handle something like this?

At this point, I'm mostly looking for advice on which path to pursue, but if you know any articles or tutorials that relate to the subject, then it’s inconvenient.


I work with OpenGL initially on Windows 7 64bit with C ++. I do not use GLUT

+3
2

, : EXT_draw_instanced. Instancing, GPUS (GF6 , -, ) .

, ....

, , , .

http://www.opengl.org/registry/specs/ARB/draw_instanced.txt

+4

, - . CUDA 2 3- , "" 1 , , , , 2 . , .

0

Source: https://habr.com/ru/post/1733390/


All Articles