Pregunta

Tengo un sistema de partículas donde se almacenan las posiciones y diversas propiedades en un objeto de memoria tampón de vértice. Los valores se actualizan de forma continua por un núcleo CUDA. Actualmente sólo estoy usando haciéndolos GL_POINTS círculos planos. Lo que me interesa es hacer que esas partículas son más las cosas que participan, como modelos de aves de animación en 3D, por ejemplo. Estoy tratando de averiguar cuál sería el mejor enfoque para. Por el bien de la conversación permite decir la animación del modelo de aves se compone de 3 marcos (posición de las alas y lo que no)

puedo ver la carga hasta los modelos en las listas de visualización y bucle sobre todas las partículas en la traducción, rotación, etc la matriz después de llamar a la lista de visualización. Esto no parece ser un enfoque ideal porque requeriría llevar a todos los datos de partículas hacia el anfitrión de la GPU sólo para hacer operaciones con matrices para empujar de nuevo a la GPU (a menos que pueda llamar a las funciones de dibujo a partir de un núcleo CUDA ?? ?)

No sé mucho acerca de shaders, ¿serían capaces de manejar algo como esto?

En este punto estoy en su mayoría en busca de consejo sobre qué camino a seguir, pero si usted sabe de cualesquiera artículos o tutoriales que tratan el tema, felicitaciones.


Estoy trabajando con el OpenGL de forma nativa en Windows 7 64 bits con c ++. No estoy utilizando GLUT

¿Fue útil?

Solución

Es posible que desee utilizar: EXT_draw_instanced. En realidad nunca he utilizado Instancing, pero la mayoría GPU moderna (GF6 y hasta creo) permite alimentar la GPU un modelo y una lista de puntos y tienen que dibujar el modelo en cada punto.

Voy a google alguna información más y ver lo que se me ocurra ....

Bueno, esto es la especificación oficial, y parece que tienen un tutorial sobre el mismo.

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

Otros consejos

Tendrá que ser creativo para hacer algo así. Si utilizó CUDA para calcular una posición y rotación en 2 3 componentes texturas flotador y luego despedido un "índice", junto con cada vértice y por incremento a 1 por ejemplo geometría entonces se podría escribir un shader que carga las texturas y luego utiliza vértice shader de textura Buscar para seleccionar el píxel correspondiente de los 2 texturas y construir una matriz de transformación. A continuación, transformar los vértices de la malla por la matriz transformar usted ha construido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top