OpenGLES Color Picking на Android без мигания экрана - PullRequest
2 голосов
/ 03 мая 2010

Я написал алгоритм выбора объекта, который выбирает объекты по цвету. Я назначаю каждому объекту уникальный цвет, а затем мне просто нужно использовать метод glReadPixels, чтобы проверить, какой объект был выбран

это работает отлично и действительно быстро, но проблема в том, что на экране отображается рамка со всеми цветами комплектации, поэтому экран мигает каждый раз, когда вы что-то выбираете.

поэтому мой вопрос: как мне написать все в правильном буфере отображения, но не отображать его на экране, чтобы избежать этих вспышек?

Ответы [ 2 ]

2 голосов
/ 26 апреля 2011

Если у вас уже включена двойная буферизация, нет необходимости создавать еще один внеэкранный буфер. Просто пропустите буфер обмена. Таким образом, в режиме выбора вы визуализируете свою сцену с цветовой кодировкой в ​​задний буфер, читаете пиксель, на который нажали, с помощью glReadPixels, очищаете задний буфер, а затем рисуете нормальный кадр в тот же самый задний буфер, прежде чем поменять его на передний.

2 голосов
/ 18 августа 2010

у нас была такая же проблема. Вам нужен внеэкранный буфер. В этом буфере вы рисуете или меняете все элементы, не рисуя их на экране.

Вот хороший пример: 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

Я надеюсь, что вы можете использовать это.

Добрый привет: Mijat

...