Использование Android OpenGL ES 1.1 (HTC Desire) ...
Проблема, которая у меня вообще есть, такова:
У меня есть различные 3D-объекты, которые отображаются в сложной сцене. Я хочу проверить, нажал ли пользователь на конкретный объект. Этот объект может быть частично скрыт и, следовательно, может выглядеть как практически любая фигура на сцене. Я хочу разрешить выбор объекта только в том случае, если пользователь нажимает на часть объекта, видимую на сцене. Это означает, что я не могу использовать векторные вычисления для пересечения объектов, поскольку они не могут легко учитывать скрытые области объекта.
Итак, у меня возникла идея ...
Я настроил буфер трафарета таким образом, чтобы там, где объект был виден, буфер трафарета был заполнен единицами, а везде в буфере трафарета - 0. Когда пользователь нажимает на определенный пиксель в сцене, мне просто нужно проверить трафаретный буфер, чтобы видеть, содержит ли он 1 или 0, который указывает, был ли объект нажат или нет.
Это прекрасно работает на ПК, но на Android OpenGL ES 1.1 кажется, что я не могу читать из буфера трафарета с помощью glReadPixels (), поскольку GL_STENCIL_INDEX не поддерживается.
Кто-нибудь знает, есть ли способ прочитать это 0/1 из буфера трафарета? Или кто-нибудь может придумать лучший алгоритм определения, был ли нажат мой объект?
Большое спасибо