OpenGL翻转或镜像绘图对象

时间:2011-02-03 13:14:26

标签: 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);

2 个答案:

答案 0 :(得分:15)

不是100%肯定你在这里问的是什么,但我认为你想做的是改变投影矩阵。如果你想翻转左边的东西出现在右边那么你需要将投影矩阵缩放(-1,1,1)。如果你想让顶部的东西出现在底部,你需要按(1,-1,1)缩放,如果你想要两者,你可以缩放(-1,-1,1)。

根据额外信息进行编辑:如果要做的只是显示完全相同的对象,但是翻转了纹理,则需要更改对象中顶点的纹理坐标 - 通过替换旧的纹理坐标来翻转纹理坐标u纹理坐标与1-u。

答案 1 :(得分:4)

如果您使用的是glFrustum(l,r,b,t,n,f),请将其更改为glFrustum(l,r,t,b,n,f),以防您需要垂直翻转。这也适用于glOrtho函数。