【发布时间】:2013-08-13 01:50:28
【问题描述】:
我正在尝试在 OpenGL/LWJGL 中制作一个简单的按钮,
我可以正确渲染我的 2D QUAD,但是当我实现纹理时,整个四边形只有大约 3/4 部分被纹理化,如下所示:https://dl.dropboxusercontent.com/u/60223805/glerror1.png
如果我删除纹理坐标,我会得到:https://dl.dropboxusercontent.com/u/60223805/glerror2.png
none.bind();
co.Enable2D_GUI();
GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0, 0);
GL11.glVertex2f(co.width/2-200, co.height/2);
GL11.glTexCoord2f(1, 0);
GL11.glVertex2f(co.width/2+none.getTextureWidth(),co.height/2);
GL11.glTexCoord2f(1, 1);
GL11.glVertex2f(co.width/2+none.getTextureWidth(), co.height/2+none.getTextureHeight());
GL11.glTexCoord2f(0, 1);
GL11.glVertex2f(co.width/2-200, co.height/2+none.getTextureHeight());
GL11.glEnd();
co.Disable2D_GUI();
其中 none 是 Texture(来自 slick-util 库),函数 Enable2D_GUI 和 Disable2D_GUI 只是启用和禁用 Ortho 和其他东西。
有什么问题吗?我对 OpenGL 很陌生,所以如果我的问题有点不明白,我很抱歉
这是我的 Enable2D_GUI 和 Disable2D_GUI 函数:
public void Enable2D_GUI() {
GL11.glMatrixMode (GL11.GL_PROJECTION);
GL11.glPushMatrix();
GL11.glLoadIdentity ();
GL11.glOrtho (0, width, height, 0, 1, -1);
GL11.glDisable(GL11.GL_DEPTH_TEST);
GL11.glMatrixMode (GL11.GL_MODELVIEW);
GL11.glPushMatrix();
GL11.glLoadIdentity();
}
public void Disable2D_GUI() {
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glPopMatrix();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glPopMatrix();
GL11.glDisable(GL11.GL_BLEND);
GL11.glEnable(GL11.GL_DEPTH_TEST);
}
现在,当我使用 3D QUAD 对其进行测试时,它也不起作用,结果相同。这是我的 OpenGL 初始化代码:
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glClearColor(0f, 0.0f, 0.0f, 0.0f);
GL11.glClearDepth(1.0);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glDepthFunc(GL11.GL_LEQUAL);
GL11.glViewport(0, 0, width, height);
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GLU.gluPerspective(
45.0f,
(float)width/(float)height,
0.5f,
50.0f);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glHint(GL11.GL_PERSPECTIVE_CORRECTION_HINT, GL11.GL_NICEST);
【问题讨论】:
-
能否也添加实际的纹理图像文件?
-
那你能评论一下图片的链接吗?
-
@Vallentin 确定:dl.dropboxusercontent.com/u/60223805/button_none.png
-
好吧,你一定是做错了什么,因为我刚刚使用了与你完全相同的代码,这就是我的结果。 gyazo.com/65dae85d4a4d9ed2064f1d2c590a605e.png
-
嗯。好的,我会更深入地检查它,我会尝试找到解决方案