我不知道为什么这样:

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();


不是。而且,绘制线条而不是一块纹理应该更加容易。

我要达到的目的是在纹理上添加一些之字形线,以模拟由于损坏或折断而产生的裂缝,但是我什至不能画一条线,所以我被困在这里。

有什么建议吗?

最佳答案

您的线条图代码中仍启用了纹理化。但是您没有指定纹理坐标,因此您将在当前设置的纹理坐标处使用由纹理定义的纯色绘制线条。

我的建议:禁用绘制该线条的纹理。

07-24 16:02