Как реализовать выбор цвета на кубе в Android OpenGL ES - PullRequest
0 голосов
/ 18 февраля 2012

Я уже реализовал куб, который может вращаться жестами в Android OpenGL ES.Теперь я хочу реализовать, что когда я щелкаю где-то на кубе, он может сказать, какое лицо было затронуто, и дать какой-то ответ.

Я искал в Интернете и нашел хороший способ выбора цвета, вот несколько уроков:http://www.lighthouse3d.com/opengl/picking/index.php?color1

Но мне все еще трудно для меня.

Как назначить каждому лицу свой цвет?

Какчитать пиксель, в котором была нажата мышь из заднего буфера?

Может кто-нибудь показать мне больше подробностей?Большое спасибо!

Если вы не возражаете, оставьте мне адрес электронной почты, и я смогу отправить вам работу, которую я проделал.Спасибо:)

1 Ответ

0 голосов
/ 19 февраля 2012

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

Вы должны назначить каждому лицу свой цвет для выбора, как и для любого другого вида рендеринга, будь то путем изменения того, что вы передаете на glColorPointer (при использовании ES 1), или путем переключения на однопиксельную, одноцветную текстуру или любым другим способом. Если у вас включено освещение, обязательно отключите его.

Вы можете использовать glReadPixels, чтобы прочитать цвет обратно из буфера кадра. На устройстве с сенсорным экраном вы, вероятно, захотите захватить, скажем, область 20x20 пикселей и выбрать тот цвет, который наиболее часто появляется в нем, или что-то в этом роде, потому что пальцы не очень точные.

...