Я использую этот учебник / пример , чтобы выполнить базовое отслеживание объектов на iPhone. Все отлично работает, я даже много подправил производительность, но я все еще застрял с одной проблемой.
Основная проблема в том, что я недостаточно хорошо понимаю OpenGL, и я должен быть наказан за то, что постыдно взял пример кода и превратил его во что-то, что мне подходит. На самом деле меня наказывают;
В примере показано, как преобразовать (с помощью шейдеров) камеру iPhone в текстуру за пределами экрана, чтобы можно было обрабатывать ее и отображать на экране. Теперь я понял, что он рисует текстуру / слой, используя массив атрибутов вершин (принцип, который я почти не понимаю, несмотря на мои поиски в Google).
Массивы вершин имеют следующий вид:
static const GLfloat squareVertices[] = {
-1.0f, -1.0f,
1.0f, -1.0f,
-1.0f, 1.0f,
1.0f, 1.0f,
};
static const GLfloat textureVertices[] = {
1.0f, 1.0f,
1.0f, 0.0f,
0.0f, 1.0f,
0.0f, 0.0f,
};
Я также выяснил, что эти атрибуты вершин могут изменить ориентацию нарисованной текстуры. Текстура теперь рисуется в портретной ориентации, что означает, что если я буду держать свой iPhone в горизонтальном положении (что я хочу) и позволю вращаться представлениям, все, что я вижу на экране, - это камера с углом 90 градусов.
Я думаю, что сузил проблему настолько, чтобы обвинить эти вершины, и я немного возился с их значениями, но без какого-либо приемлемого результата.
Есть ли кто-нибудь, кто может помочь мне нарисовать текстуру в ландшафте?
P.S .: если я инвертирую значения «квадрата», я смогу получить изображение, повернутое на 180 градусов. Но я хочу, чтобы текстура поворачивалась на 90 градусов, а не на 180.