LWJGL无法正确渲染纹理?

时间:2011-12-23 17:12:45

标签: java rendering lwjgl

我使用LWJGL来渲染我正在制作的游戏中的所有内容,并且我用它来渲染背景,这是可以的,但是当我渲染的东西小于显示器的全尺寸时,它会显示随机线条,图像是倾斜。这是截图;

查看大约三分之一的分割线和左侧的线。

http://i.stack.imgur.com/6O9dI.png

这是我的代码;

        ImageLoader.STAT_BAR.bind();

    GL11.glBegin(GL11.GL_QUADS);
        GL11.glTexCoord2f(0,0); //TOP LEFT
        GL11.glVertex2f(0,0);
        GL11.glTexCoord2f(1,0); //TOP RIGHT
        GL11.glVertex2f(ImageLoader.STAT_BAR.getTextureWidth(),0);
        GL11.glTexCoord2f(1,1); //BOTTOM RIGHT
        GL11.glVertex2f(ImageLoader.STAT_BAR.getTextureWidth(), ImageLoader.STAT_BAR.getTextureHeight());
        GL11.glTexCoord2f(0,1); //BOTTOM LEFT
        GL11.glVertex2f(0, ImageLoader.STAT_BAR.getTextureHeight());
    GL11.glEnd();

PS。 ImageLoad只是我制作的一个类,它可以获取图像并加载它们。它非常简单,适用于所有图像。这只是渲染无效。

编辑:即使将GL11.glVertex2f更改为2i,它仍然无效:/

1 个答案:

答案 0 :(得分:1)

抱歉,我不能确定问题是什么。不幸的是,我似乎无法在之后重现它。但我认为它应该通过以下之一解决:

  • 不支持的图像尺寸

OpenGL在很大程度上依赖于这样的图像,其分辨率的宽度和高度是2的幂(宽度/高度= n * 2时)。如果图像文件不符合该规范,LWJGL可能会表现得很奇怪。此外,不要担心图像文件被压扁。这取决于顶点输入,而不是纹理输入。

  • 不支持的图片扩展程序

尝试将图像文件保存为非隔行扫描PNG文件。 Slick_Util或用于加载图像文件的任何内容可能无法完全支持您提供给它的图像。

  • 更正提示

作为最后的手段,您可以在初始化代码中添加以下代码行:

glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);

希望其中一个技巧可以帮到你。