Пишу игру с помощью android ndk. Я использую пикировку для выбора объектов в opengl. Для этого у меня есть закадровый объект фреймбуфера, в который я выполняю рендеринг, и я использую glReadPixels (), чтобы получить цвет из FBO. Затем цвет кодирует идентификатор объекта, по которому щелкнули мышью.
Проблема в том, что glReadPixels () не работает. Он просто не считывает значения цвета. Что мне нужно сделать, чтобы это сработало?
GLubyte pixel[4] = {0,0,0,0};
glReadPixels(x, y , 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, (void *)pixel);
Вот как я пытаюсь использовать readpixels. Но результат всегда (0,0,0,0). Я проверил координаты (x, y). Они в порядке. Комбинация GL_RGBA, GL_UNSIGNED_BYTE также должна поддерживаться любой реализацией opengl es 2.0, согласно документации opengl.
Я читал кое-что о разрешениях, которые мне нужно установить в манифесте Android. Я пытался добавить такое разрешение:
<uses-permission android:name="android.permission.READ_FRAME_BUFFER"/>
но это тоже не сработало.
Есть ли у кого-нибудь идеи, какое может быть решение? или где я могу посмотреть?