Я делаю приложение для ipad в OpenGLES 2.0, и у меня есть некоторые объекты, которые я могу перевести с помощью события касания. Поэтому мне нужны координаты объекта (x, y, z), соответствующие координатам экрана (X, Y, Z). Мне удалось получить в Интернете этот учебник:
http://softwareprodigy.blogspot.com/2009/08/gluunproject-for-iphone-opengl-es.html
Но проблема в том, что поскольку я работаю над OpenGL ES 2.0, у меня есть собственная проекция, модель и матрица камеры, которые я передаю вершинному шейдеру. Сначала мне нужна матрица окна просмотра (я упоминаю окно просмотра, использующее встроенную функцию glViewPort ()). Как я могу это получить?
Во-вторых, мне не удалось получить описанный процесс пересечения луча с плоскостями? Может кто-нибудь объяснить это или предложить альтернативный метод ??
ОК Я понял все сверху и все работает, теперь у меня новая проблема: P
Я могу получить координаты объекта (x, y), а также координату z на основе пересечения луча. Однако, когда я переворачиваю или поворачиваю свои объекты, матрица моей модели изменяется, и это приводит к изменению координат объекта, но я знаю только начальные координаты, которые я использовал для рисования объектов (поэтому я не могу определить, является ли объект, на который попал луч, верный).
Есть ли способ отслеживать координаты объекта ??? Один из способов - применить те же преобразования к центральной точке объекта и сохранить его значение, но это будет работать только со сферическими (симметричными объектами). Любые идеи???