gpt4 book ai didi

java - LWJGL 屏幕外 2D 纹理映射

转载 作者:行者123 更新时间:2023-12-01 15:47:46 25 4
gpt4 key购买 nike

我正在尝试将 2D 图像映射到四边形作为背景图像。图像绘制在屏幕的中心,因此它最终只覆盖了右上角的四分之一,其余部分则超出了屏幕。我是否可以翻译或更改 TexCoord,以便它从左下角绘制?下面是我正在使用的代码。

        background.bind();          
GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(1,1);
GL11.glVertex2i(0,0);
GL11.glTexCoord2f(1,0);
GL11.glVertex2i(0,600);
GL11.glTexCoord2f(0,0);
GL11.glVertex2i(800,600);
GL11.glTexCoord2f(0,1);
GL11.glVertex2i(800,0);
GL11.glEnd();

最佳答案

这与纹理无关;如果你拿走纹理,它的渲染效果将与现在完全相同。

OpenGL 自然不会采用窗口坐标中的顶点。为了允许它这样做,您通常需要设置某种形式的正交投影矩阵,通常使用 glOrtho。这看起来像:

glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0, width, 0, height, -1.0, 1.0);

glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();

//Render stuff in window coordinates here.

glPopMatrix();

glMatrixMode(GL_PROJECTION);
glPopMatrix();

矩阵压入和弹出可确保保留先前的矩阵。

关于java - LWJGL 屏幕外 2D 纹理映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6789447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com