Я думаю, что это уже обсуждалось ранее, но я не могу найти ответ, который мне подходит.
Я занимаюсь разработкой приложения для 2D-рисования для iPad с OpenGL ES 2.0.
Я создаю матрицу проекции орто с функцией, описанной в книге «Программирование на iPhone 3D», и, насколько я знаю, эта матрица верна.Вызов функции выглядит примерно так:
proj = identity.Ortho(-width/2, width/2, -height/2, height/2, -1.0f, 1.0f);
Он работает нормально, но он помещает начало координат в центр области просмотра.Мне нужно получить сенсорную информацию от пользователя, чтобы нарисовать, поэтому я хотел бы, чтобы источник находился в верхнем левом углу.
Я знаю, что мне это не нужно, поскольку я могу просто вычесть (ширина / 2, высота / 2), но все было бы проще, если бы источник находился в TL.
Итак, я попробовал это:
proj = identity.Ortho(0, width, 0, height, -1.0f, 1.0f);
Но это не работает вообще, если я рисую прямоугольник, я просто вижу некоторые линии или треугольники, когда я вращаю матрицу viewModel, это как будто оно искажается.*
Спасибо.