Какой самый простой способ выбрать аспект в OpenGL? - PullRequest
0 голосов
/ 04 февраля 2009

Я хочу выяснить, какой фасет находится под курсором мыши в приложении OpenGL. Использование буфера выбора мне кажется довольно неточным. Есть ли другие решения?

Ответы [ 3 ]

4 голосов
/ 05 февраля 2009

Делайте это вручную, используя пересечение лучей. Используйте матрицу камеры (если она не указана явно, вы можете запросить ее из OpenGL), используйте ее для генерации луча в мировом пространстве и посмотрите, пересекает ли он ваше конкретное лицо или нет. Сортируйте пересечения по глубине (t), и у вас будет самая близкая грань под курсором.

В зависимости от вашей структуры данных (иерархии и т. Д.) И размера это может быть либо очень медленным, либо очень эффективным.

2 голосов
/ 04 февраля 2009

Обычный трюк - рисовать каждый фасет другим цветом (просто от 0x000001 до n), отображать за кадром и получать цвет под точкой мыши.

0 голосов
/ 05 февраля 2009

Также взгляните на этот раздел FAQ по OpenGL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...