天空盒绘制问题

天空盒cubemap立方体绘制时由于六个面三角形绘制顺序问题造成纹理左右颠倒,修改void Skybox::initBuffers()为如下代码即可解决

void Skybox::initBuffers()
{
    if (Configuration::getInstance()->supportsShareableVAO())
    {
        glGenVertexArrays(1, &_vao);
        GL::bindVAO(_vao);
    }

    // init vertex buffer object
    Vec3 vexBuf] =
    {
        Vec3(-1, 1, 1), Vec3(-1, -1, 1), Vec3(1, -1, 1), Vec3(1, 1, 1),
        Vec3(-1, 1, -1), Vec3(-1, -1, -1), Vec3(1, -1, -1), Vec3(1, 1, -1)
    };

    glGenBuffers(1, &_vertexBuffer);
    glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
    glBufferData(GL_ARRAY_BUFFER, sizeof(vexBuf), vexBuf, GL_STATIC_DRAW);

    // init index buffer object
    const unsigned char idxBuf] = {
        7, 6, 5, 4, 7, 5,// font
        3, 2, 6, 7, 3, 6,// right
        0, 1, 2, 3, 0, 2,// back
        4, 5, 1, 0, 4, 1,// left
        0, 3, 7, 4, 0, 7,// up
        1, 2, 6, 5, 1, 6// down
    };

    glGenBuffers(1, &_indexBuffer);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _indexBuffer);
    glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(idxBuf), idxBuf, GL_STATIC_DRAW);

    if (Configuration::getInstance()->supportsShareableVAO())
    {
        glEnableVertexAttribArray(GLProgram::VERTEX_ATTRIB_POSITION);
        getGLProgramState()->applyAttributes(false);

        GL::bindVAO(0);
    }
}


```