OpenGL перевернуть или отразить рисунок объекта - PullRequest
11 голосов
/ 03 февраля 2011

Как мне перевернуть, не отразить зеркало вверх / влево от объекта ОБЪЕКТ, а не экран в методе onDraw?

Я пробовал масштаб (1, -1, 1), который не работал

мой код:

 opengl.selectVertex(vertexname)
                                .translate(x-1, y, -9);

                                if (opengl.getPathModifier(vertexname).getAngle()>-180 && 
                                    opengl.getPathModifier(vertexname).getAngle()<0 ) {
                                    opengl.selectVertex(vertexname).scale(-scale,scale,1);  
                                } else {
                                    opengl.selectVertex(vertexname).scale(scale,scale,1);
                                }

opengl.rotate(opengl.getPathModifier(vertexname).getAngle()+90, 0, 0, 1);

Ответы [ 2 ]

15 голосов
/ 03 февраля 2011

Не на 100% уверен, что вы спрашиваете здесь, но я думаю, что вы хотите сделать, это преобразовать матрицу проекции.Если вы хотите перевернуть изображение слева, то справа вы должны масштабировать матрицу проекции (-1, 1, 1).Если вы хотите, чтобы вещи сверху отображались снизу, вам нужно масштабировать их (1, -1, 1), а если вы хотите и то, и другое, вы можете масштабировать (-1, -1, 1).

Редактироватьна основе дополнительной информации: если все, что вы хотите сделать, это отобразить объект точно так же, но с перевернутой текстурой, вам нужно изменить координаты текстуры вершин в объектах - переверните координаты текстуры, заменив старую координату текстуры u1-у.

4 голосов
/ 03 февраля 2011

Если вы используете glFrustum(l,r,b,t,n,f), измените его на yo glFrustum(l,r,t,b,n,f), если вы хотите перевернуть по вертикали.Это относится также к функции glOrtho.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...