2010-05-03 4 views
2

J'ai écrit un algorithme de sélection d'objet qui sélectionne les objets par leur couleur. Je donne à chaque objet une couleur unique et ensuite je dois juste utiliser la méthode glReadPixels pour vérifier quel objet a été sélectionnéopengl es choix de couleur sur android sans écran clignotant

Cela fonctionne très bien et est vraiment rapide mais le problème est que le cadre est affiché sur l'écran avec tout le picking -colors pour que l'écran clignote chaque fois que vous sélectionnez quelque chose. Donc, ma question est: comment puis-je tout écrire dans le tampon d'affichage correct, mais ne pas l'afficher à l'écran pour éviter ces flashs?

Répondre

2

Si vous avez déjà une double mémoire tampon activée, il n'y a pas besoin de créer un autre tampon hors-écran. Il suffit d'ignorer l'échange de tampon. Ainsi, en mode picking, vous rendez votre scène codée en couleur dans le back-buffer, lisez le pixel cliqué avec glReadPixels, effacez le back-buffer, puis dessinez un frame normal sur le back-buffer SAME, avant de l'échanger vers le de face.

+0

@Sponge Pouvez-vous poster ces 4 lignes s'il vous plaît? – Fr4nz

+0

@ Fr4nz voici le code où je l'ai implémenté https://github.com/bitstars/droidar/blob/master/droidar/src/gl/GL1Renderer.java –

+0

Merci de m'avoir aidé à résoudre mon problème :) – Fr4nz

2

nous avons eu le même problème. Vous avez besoin d'un tampon hors écran. Dans ce tampon, vous dessinez ou modifiez tous les éléments sans les dessiner à l'écran.

Voici un bon exemple: http://webcache.googleusercontent.com/search?q=cache:vdjsjfIiwYwJ:developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/FrameBufferObjectActivity.html+opengl+es+android+EGL+offscreen+render&cd=6&hl=de&ct=clnk&gl=de&client=firefox-a

J'espère que vous pouvez utiliser.

Kind Salutations: Mijat

Questions connexes