Проблема с рендерингом LWJGL/Slick-Util

Я работаю над игрой и пытаюсь нарисовать наш логотип, и когда я рисую, он имеет черную рамку, вот часть кода (только для рендеринга логотипа)

код для рисования логотипа в GuiLoading.java

    @override
    public void ex() throws IOException{
            GL11.glColor3f(255, 255, 255);
            drawRec(0, 0, Client.width, Client.height);

            Texture logo = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("misc/hslogo.png"));
            logo.bind();
            drawRecWithTexture(Client.width / 4 , Client.height / 4, Client.width / 4 + 400, Client.height / 4 + 356);
    }

и код для пустот 'drawRec' и 'drawRecWithTexture'

public void drawRecWithTexture(int i, int j, int k, int l)
{
    GL11.glPushMatrix();
    GL11.glBegin(GL11.GL_QUADS);
        GL11.glTexCoord2d(0, 0);
        GL11.glVertex2i(i, j);
        GL11.glTexCoord2d(0, 1);
        GL11.glVertex2i(i, l);
        GL11.glTexCoord2d(1, 1);
        GL11.glVertex2i(k, l);
        GL11.glTexCoord2d(1, 0);
        GL11.glVertex2i(k, j);
    GL11.glEnd();
    GL11.glPopMatrix();
}

public void drawRec(int i, int j, int k, int l)
{
    GL11.glPushMatrix();
    GL11.glBegin(GL11.GL_QUADS);
        GL11.glVertex2i(i, j);
        GL11.glVertex2i(i, l);
        GL11.glVertex2i(k, l);
        GL11.glVertex2i(k, j);
    GL11.glEnd();
    GL11.glPopMatrix();
}

и изображение вывода:

Вывод


person Liam Haworth    schedule 18.11.2011    source источник
comment
Вы говорите, что это игнорирует alhpa?   -  person James 'Cookie' Cook    schedule 18.11.2011
comment
что ты имеешь в виду под словом "альпа"   -  person Liam Haworth    schedule 18.11.2011
comment
Извините, опечатка, альфа.. как в альфа-канале.   -  person James 'Cookie' Cook    schedule 18.11.2011
comment
Я не знаю, что не так, и, кстати, я впервые использую OpenGL.   -  person Liam Haworth    schedule 18.11.2011


Ответы (2)


Ok. Я знаю, что у меня есть работающий код дома. Но я считаю, что вы хотите добавить:

GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

Ниже

GL11.glColor3f(255, 255, 255);

Кроме того, если вы делаете это полностью в 2D, ознакомьтесь с библиотекой Slick, которая полностью упрощает жизнь.

person James 'Cookie' Cook    schedule 18.11.2011
comment
Нет, похоже, вы используете Slick-Util, а не полную библиотеку slick. - person James 'Cookie' Cook; 18.11.2011
comment
в любом случае, я делаю рендеринг с помощью собственного кода, а не с помощью системы Slick. - person Liam Haworth; 18.11.2011
comment
Честное слово, однажды я пошел по этому пути, отлично подходит для изучения системы. Но вскоре узнал, если это предусмотрено, то используйте его. - person James 'Cookie' Cook; 18.11.2011
comment
Итак, есть ли причина, по которой я могу исправить проблему? - person Liam Haworth; 18.11.2011
comment
Я просто собираюсь начать снова - person Liam Haworth; 19.11.2011

Если я не ошибаюсь, это потому, что размеры изображения текстуры не являются степенью двойки (32, 64, 128 и т. Д.), Попробуйте использовать программное обеспечение, такое как Paint.net или Gimp, чтобы изменить его размер.

person Mathew Fulton    schedule 10.09.2012