Пример комплектации jogl
Привет, ребята, у меня проблемы с добавлением объекта в проекте JOGL. я знаю, что это можно сделать с помощью буфера выбора... но я не могу найти примеры никому?
1 ответ
В целом, как вы, вероятно, знаете, код JOGL транслируется напрямую из любых других примеров OpenGL, которые вы можете увидеть в Интернете.
GL_SELECT
основанный выбор, кажется, очень не в пользу в эти дни; устарела в спецификации и плохо реализована драйверами.
Альтернативы, которые вы можете использовать:
Визуализация каждого объекта с уникальным цветом (и все освещение / туман и т. Д. Отключены), чтобы вы могли определить, над каким объектом находится мышь, с помощью
glReadPixels
, (Очистка буферов после этапа выбора, чтобы вы могли затем визуализировать вашу обычную графику). Этот подход объясняется лучшим ответом в OpenGL GL_SELECT или ручным обнаружением столкновений? например.Приведение лучей в вашу геометрию (см. Ссылку "Часто задаваемые вопросы"). Это также означает, что вам не нужно иметь активный контекст gl в потоке, из которого вы вызываете код, fwiw.
Я использовал оба этих метода в одном и том же приложении, в настоящее время получая хорошие результаты с последним, но поскольку большинство объектов в этом приложении являются сферами, это намного дешевле, чем это может быть с произвольными моделями.