Доброго всем времени суток.
Хочу уточнить такой небольшой момент - у меня есть 17 моделей на сцене openGL, использую библиотеки glfw и glew.
Не могу никак понять - вот у нас есть курсок мыши, который мы прячем:
glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_HIDDEN);
Однако это не меняет того, что мы так же можем вычситать координаты, и именно отклонение координат используется для поворотов камерой, с последующим возвратом курсора в центр.
С openGL начал работать относительно недавно, поэтому можно данный код - более адаптация из туториалов, но никак не авторская работа, по крайней мере в большей части.
Сам вопрос - так как у нас есть координаты курсора, у нас есть единичный вектор (есть же, я не ошибаюсь? Тоже важный момент) направления камеры (у нас должна быть матрица из ортогональных векторов камеры - положения и поворота), то мы можем вычислить, на какой объект вы смотрим, и, соответственно, можем как-нибудь задать некий логический флаг, который проверяется в обработчике нажатия левой кнопкой мыши стандартными средствами glfw, и, допустим, изменить текстуру какого-либо объекта ( у меня сейчас это просто повешено на событие ЛКМ без проверки наведения, так что с этим проблем нет)
Ниже привожу код как на C++, так и вершинных и фрагментных шейдеров ( залил на ideone - сюда все не влезает ) :
С++ -
https://ideone.com/ZOplfT
Вершинный шейдер -
https://ideone.com/41DOoY
Фрагментный шейдер -
https://ideone.com/QV6cVh
Всем откликнувшимся огромное спасибо и плюс к вселенской карме! с: