我将3D和z轴上的一些旋转添加到我的程序中,该程序使用OpenGL、CGLM、STB、GLFW和GLAD.程序没有警告或错误,程序的输出仍然只是我的清晰 colored颜色 .
下面是我应用转换的程序循环的一部分.
// Create transformations
mat4 model = {{1.0f}};
mat4 view = {{1.0f}};
mat4 projection = {{1.0f}};
glm_rotate(model, glm_rad(-55.0f), (vec3){1.0f, 0.0f, 0.0f});
// Translating the scene in the reverse direction of where the user wants to move
glm_translate(view, (vec3){0.0f, 0.0f, -3.0f});
glm_perspective(glm_rad(45.0f), (float)WINDOW_WIDTH / (float)WINDOW_HEIGHT, 0.1f, 100.0f, projection);
// Retrieve the matrix uniform locations and pass them to the shaders
GLint modelLoc = glGetUniformLocation(myShaderPtr->shaderID, "model");
GLint viewLoc = glGetUniformLocation(myShaderPtr->shaderID, "view");
GLint projectionLoc = glGetUniformLocation(myShaderPtr->shaderID, "projection");
glUniformMatrix4fv(modelLoc, 1, GL_FALSE, &model[0][0]);
glUniformMatrix4fv(viewLoc, 1, GL_FALSE, &view[0][0]);
glUniformMatrix4fv(projectionLoc, 1, GL_FALSE, &projection[0][0]);
这是我的顶点着色器:
#version 330 core
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec2 aTexCoord;
out vec2 TexCoord;
uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;
void main() {
gl_Position = projection * view * model * vec4(aPos, 1.0);
TexCoord = vec2(aTexCoord.x, aTexCoord.y);
}
如果需要更多代码,程序将在github here上运行.
代码的预期输出是下图,但带有我的个人资料图片,而不是笑脸.