我不知道为什么这样:
glPushMatrix();
GL11.glBindTexture(this.target, this.textureID);
glColor3f(1, 1, 1);
glTranslated(posX, posY, 0);
glBegin(GL_QUADS);
{
glTexCoord2d(posXLeft, posYTop);
glVertex2d(0, 0);
glTexCoord2d(posXLeft, posYBottom);
glVertex2d(0, verH);
glTexCoord2d(posXRight, posYBottom);
glVertex2d(verW, verH);
glTexCoord2d(posXRight, posYTop);
glVertex2d(verW, 0);
}
glEnd();
glPopMatrix();
可以完美地工作,其中posX和posY显然是像素位置,posXLeft等是要显示的纹理比率。
但是这个:
glPushMatrix();
GL11.glBindTexture(this.target, this.textureID);
glColor3f(1, 1, 1);
glTranslated(posX, posY, 0);
glBegin(GL_LINES);
{
glVertex2d(10, 10);
glVertex2d(800, 600);
}
glEnd();
glPopMatrix();
不是。而且,绘制线条而不是一块纹理应该更加容易。
我要达到的目的是在纹理上添加一些之字形线,以模拟由于损坏或折断而产生的裂缝,但是我什至不能画一条线,所以我被困在这里。
有什么建议吗?
最佳答案
您的线条图代码中仍启用了纹理化。但是您没有指定纹理坐标,因此您将在当前设置的纹理坐标处使用由纹理定义的纯色绘制线条。
我的建议:禁用绘制该线条的纹理。