OpenGL переворачивает или зеркально отображает объект чертежа

Как я могу откинуть, от зеркала вверх/слева от изображения OBJECT, а не на экране в методе 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);

Ответ 1

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

Изменить на основе дополнительной информации. Если все, что вы хотите сделать, - это отобразить объект точно так же, но при перетаскивании текстуры вам нужно изменить координаты текстуры вершин в объектах - перевернуть координаты текстуры, заменив старый u текстурная координата с 1-u.

Ответ 2

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