граница текстуры при использовании pyglet

Я пытался войти в pyglet и opengl и получил странные результаты при рисовании простого треугольника с текстурой. При рисовании треугольника текстура имеет черную рамку. Я пытался изменить min/mag_filter, но это не повлияло на границу. Я пропустил что-то важное здесь?

    img = pyglet.image.load('test.png')
    tex = img.get_texture()
    #left triangle
    vert = [0,0,0,100,100,100]
    #right triangle
    vert2 = [200,0,200,100,300,100]
    uv = [0.0,0.0,0.0,1.0,1.0,1.0]
    img.blit(200,200)

    pyglet.gl.glDisable(tex.target)
    pyglet.graphics.draw(3,pyglet.gl.GL_TRIANGLES,('v2f',tuple(vert2)))

    pyglet.gl.glEnable(tex.target)
    pyglet.gl.glBindTexture(tex.target,tex.id)
    pyglet.graphics.draw(3,pyglet.gl.GL_TRIANGLES,('v2f',tuple(vert)),('t2f',tuple(uv)))

введите здесь описание изображения


person Ziempniak    schedule 25.06.2012    source источник
comment
Можете ли вы объяснить, на какую часть изображения мы должны смотреть? Я действительно нигде не вижу «черной границы». (просто черный фон).   -  person Tim    schedule 25.06.2012
comment
Два треугольника внизу имеют одинаковый размер с той лишь разницей, что один из них нарисован текстурой. вот так   -  person Ziempniak    schedule 25.06.2012
comment
То же самое на красном фоне   -  person Ziempniak    schedule 25.06.2012


Ответы (1)


Скорее всего, это pyglet дополняет вашу текстуру до следующей степени двойки и заполняет остальную часть текстуры черным цветом вместо растяжения.

Есть два решения этой проблемы, на оба из которых я ответил на более ранний вопрос SO относительно LWJGL: this-happening/10568140#10568140">Текстура растягивается неправильно. Почему это происходит?

person Robert Rouhani    schedule 25.06.2012
comment
Спасибо! Вот в чем была проблема. - person Ziempniak; 26.06.2012