OpenGL ES 2.0 Translation для Android - похоже, портит матрицы - PullRequest
2 голосов
/ 05 декабря 2011

Я пытаюсь перевести треугольную полосу. Моя программа получает позицию касания пальца человека и создает там коробку. У меня проблемы с применением перевода, форма создается при каждом касании в одном и том же месте, а затем переводится в положение касания с помощью Matrix.translateM. Когда я это делаю, у меня все идет в замешательство! коробки тонко растягиваются от края экрана к центру, становясь бесконечно меньше. По крайней мере, это регистрация касания. Может быть, это не сработает, потому что MotionEvent getX и y не нормализованы? но я не понимаю, как это испортит матрицу MVP.

В основном это так наDraFrame:

Для каждой фигуры установить указатели атрибутов перевести MMatrix умножить ММ, магазин ВМ в мвп умножить MVP, Proj рисовать

Я знаю, что матрицы view и proj работают, потому что, если я отключаю перевод, он работает нормально.

Как и ожидалось, он переводит на каждом кадре все больше и больше - я сделал перевод в конструкторе формы, но для простоты поместил его здесь и протестировал, тот же странный результат

1 Ответ

0 голосов
/ 05 декабря 2011

С этим крошечным кусочком псевдо-кода это немного сложно, но я все равно попробую;Во-первых, убедитесь, что вы вызвали Matrix.setIdentity () для вашей модели Matrix, во-вторых, убедитесь, что не ваша камера имеет странную перспективу, вызывающую «бесконечное растяжение».

...