Странный срез по текстуре - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь реализовать текстурирование в моей программе opengl, но получающееся отображение является неожиданным. Срез слева отображается с правой стороны четырехугольника.

enter image description here

Я не могу понять, что не так в коде. Вот координаты.

var 
    vertices = @[OGLfloat(0), 0, 0, # Position 
                            0, 0, # Texcoords
                      225, 0, 0,
                            1.0, 0.0,
                      225, 225, 0,
                            1.0, 1.0,
                      0, 225, 0,
                            0.0, 1.0
                      ]

    indices = @[OGLuint(0), 1, 2, 2, 3, 0]

Вот код, связанный с текстурой.

var 
    textureID:OGLuint
    texWidth:OGLint
    texHeight:OGLint
    channelCount:OGLint
    imageData = stbi_load("awesome_face.png", addr texWidth, addr texHeight, addr channelCount, 0)

#texture
glGenTextures(1, addr textureID)
glBindTexture(GL_TEXTURE_2D, textureID)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texWidth, texHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, addr imageData[0])

И шейдеры.

var
shadID:OGLuint
vertSrc:cstring = """
    #version 330 core

    layout (location = 0) in vec3 aPos;
    layout (location = 1) in vec2 aTexCoord;

    out vec2 texCoord;
    uniform mat4 projection;

    void main()
    {
        gl_Position = projection * vec4(aPos, 1.0f);
        texCoord = aTexCoord;
    }
    """
fragSrc:cstring = """
    #version 330 core

    out vec4 FragColor;
    in vec2 texCoord;

    uniform sampler2D matTexture;

    void main()
    {
        FragColor = texture(matTexture, texCoord);
    }

    """

Полный пример программы (при необходимости). https://bitbucket.org/Neotry/2d-rendering-test./src/e1081893f0f61dcbca39c959b869bc27e6ae31d2/WIPtest.nim?at=master

...