Opengl es 更改Opengl ES 2.0坐标原点

Opengl es 更改Opengl ES 2.0坐标原点,opengl-es,opengl-es-2.0,Opengl Es,Opengl Es 2.0,在Opengl ES 2.0中,是否有一种简单的方法可以在绘图时将左下角原点改为左上角原点? 感谢通过应用适当的投影矩阵或在顶点着色器中翻转Y坐标进行常规绘图操作。您没有指定要使用的投影,也没有发布代码,所以这就是我可以给您的答案。您可以使用简单的顶点着色器,添加一些逻辑以使tex右上角处于正确的位置 attribute vec4 position; varying vec2 texCoord; void main() { texCoord = position.xy * vec2(1

在Opengl ES 2.0中,是否有一种简单的方法可以在绘图时将左下角原点改为左上角原点?
感谢通过应用适当的投影矩阵或在顶点着色器中翻转Y坐标进行常规绘图操作。您没有指定要使用的投影,也没有发布代码,所以这就是我可以给您的答案。

您可以使用简单的顶点着色器,添加一些逻辑以使tex右上角处于正确的位置

attribute vec4 position;
varying vec2 texCoord;

void main()
{
    texCoord = position.xy * vec2(1.0, -1.0);
    gl_Position = position;
}
像素着色器只是将这些texCoord和传递给采样器

varying vec2 texCoord;
uniform sampler2D sampler;

void main(void)
{
    gl_FragColor = texture2D(sampler, texCoord);
}

我有一个四边形,我正在画一个位图。问题是我应该从左上角绘制它,但是opengl从左下角绘制它。需要注意的是,位图比四边形小,但我需要从左上角开始绘制,因此未被位图填充的空白区域位于四边形的右侧和底部。@Zhenya:谢谢您的解释,但是如果您在问题中添加了一些您到目前为止尝试的代码,我可以稍微修改一下。我看到一个问题,该位置是一个vec4,这将不适合作为vec2的texCoord。我不知道是打字错误还是应该是什么else@Zhenya这是一个打字错误,因为您正在绘制一个四边形,您只需要xy坐标。更新了答案。