2011-12-23 4 views
1

Я использую 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 - это класс, который я сделал, чтобы получить изображения и загрузить их. Это очень просто и работает для всех изображений. Это просто рендеринг, который не работает.

EDIT: Даже при изменении GL11.glVertex2f к 2i, она по-прежнему не работает:/

ответ

1

К сожалению, я не совсем уверен, что проблема есть. К сожалению, я не могу воспроизвести его позже. Тем не менее, я полагал, что она должна быть решена одним из следующих способов:

  • Размер Неподдерживаемое Image

OpenGL в значительной мере опирается на так что изображения, разрешение которого игровая ширина и высота степени 2 (когда ширина/высота = п * 2). Если файлы изображений не соответствуют этой спецификации, LWJGL может действовать странно. Кроме того, не беспокойтесь о том, что файлы изображений сжимаются. Это зависит от ввода вершин, а не от ввода текстуры.

  • Неподдерживаемое Extension Image

Попробуйте сохранить ваши файлы изображений без чересстрочной PNG файлов. Slick_Util или все, что вы используете для загрузки файлов изображений, может не полностью поддерживать изображения, которые вы им предоставляете.

  • Коррекция Советы

В крайнем случае, можно добавить следующие строки кода в код инициализации:

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

Надеюсь, один из этих советов поможет вам.

+0

Спасибо! Оказалось, что изображение не было прямой силой 2. Мое изображение теперь перекрывает экран, но вы не можете сказать, и он отлично работает: D –

Смежные вопросы