代码之家  ›  专栏  ›  技术社区  ›  Felix

GLM:旋转矩阵初始化

  •  0
  • Felix  · 技术社区  · 8 年前

    glm::旋转(m4、a、v3) 并尝试检查其组件,快速 输出约1 800 000 000.0000000。。。对于每个元素。我认为这不是正确的功能~

    注:

    本质代码:

    int main(int argc, char **argv){
        InitGL(); // openGL, GLFW..
        CreateShaders();            // vertShader: "mat4 trans"-uniform
        GenerateTextures();
    
        glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    
        uniTrans = glGetUniformLocation(shaderProgram, "trans");
        glm::mat4 trans;
    
        while(!glfwWindowShouldClose(window)){
            glClear(GL_COLOR_BUFFER_BIT);
    
            trans = glm::rotate(trans, glm::radians(180.0f), glm::vec3(0.0f, 0.0f, 1.0f));
            glUniformMatrix4fv(uniTrans, 1, GL_FALSE, glm::value_ptr(trans));
    
            glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
    
            glfwSwapBuffers(window);
            glfwPollEvents();
        }
    
        CleanUp();
        glfwDestroyWindow(window);
        glfwTerminate();
        return 0;
    }
    

    当不使用旋转矩阵时,程序按预期工作。矩阵值用 等等你知道从哪里开始吗?不会引发错误甚至警告。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Felix    8 年前

    自我回答:

    矩阵必须初始化:

    glm::mat4 trans(1.0f);