Ukio_G
@Ukio_G
Незамысловатый юноша.

Как в openGL взаимодействовать с моделями?

Доброго всем времени суток.
Хочу уточнить такой небольшой момент - у меня есть 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

Всем откликнувшимся огромное спасибо и плюс к вселенской карме! с:
  • Вопрос задан
  • 223 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы