2010-12-10 4 views
1

J'essaie de rendre des effets de particules sous Android en utilisant OpenGL. Chaque particule sera un quad texturé avec panneau d'affichage et chaque particule est rendue avec une rotation (c'est-à-dire autour de l'axe z). Je suis limité à l'utilisation d'OpenGL ES 1.1, donc les sprites de points et les pixels shaders ne sont pas une option. Qu'est-ce qu'une manière rapide de rendre et de mettre à jour les positions de nombreuses particules (par exemple 100 à 5000)? Je sais que l'utilisation d'un appel de dessin OpenGL pour chaque particule va être très lente, mais je suis confus sur la façon d'utiliser des choses comme les VBO quand j'ai besoin de mettre à jour mes positions de particules à chaque image.Dessiner rapidement de nombreuses particules texturées dans OpenGL ES 1.1

+0

Attention avec VBO - de nombreux téléphones, même le Droid d'origine, ne prennent pas nécessairement en charge leur. – EboMike

+0

Vraiment? J'utilise les VBO sur un Milestone en ce moment. Je pensais que les VBO étaient nécessaires pour le support OpenGL 1.1? N'est-il pas vraiment impossible d'obtenir des performances OpenGL rapides si vous avez beaucoup d'objets dynamiques et pas de VBO? – RichardNewton

+0

Découvrez cette question: http://stackoverflow.com/questions/2093594/opengl-extensions-available-on-different-android-devices. Le Droid ne liste pas GL_ARB_vertex_buffer_object. La chose amusante est la réponse de Lance Nanek où il souligne que cela semble être un problème dans le rapport de capacité, puisque le Droid devrait avoir VBO (que vous venez de confirmer). – EboMike

Répondre

1

Idée aléatoire. Peut ou peut ne pas bien fonctionner. Utilisez un appel de dessin, ou au moins des particules de lot dans des groupes (disons, 32 par groupe). Vous pouvez construire chaque groupe par image sur le CPU, puis l'envoyer. Construisez simplement un grand tableau avec GL_TRIANGLE_FAN (IIRC vous un fan de "terminer" en ajoutant deux fois le même sommet).

L'un des défis, je crois, est de créer ce tampon. Est-ce Java ou JNI? Utilisez-vous un tampon java.nio? D'après ce que j'ai lu dans les forums, la modification de ces tampons en Java peut être terriblement lente. (Btw - Je ne suis pas si familier avec la gestion de tampon interne sur Android, vous pouvez ou ne pas besoin de double-buffer les.)

Questions connexes