OpenGL 试图平移对象,但相机也平移,我不需要
OpenGL Trying to translate object, but the camera also translates, which I don't need
我正在尝试翻译云纹理。然而,相机也以这种方式翻译,这是我不想要的。所以只有移动的云,没有其他移动。
我是怎么翻译云朵的:
MatrixID = glGetUniformLocation(programID, "MVP");
transID = glGetUniformLocation(programID, "transformation");
glm::mat4 translate = glm::translate(glm::mat4(1.f), glm::vec3(cloudTranslation, 0.0f, 0.0f));
glUniformMatrix4fv(transID, 1, GL_FALSE,
glm::value_ptr(translate));
cloudTranslation += 1.0f;
顶点着色器:
#version 330 core
layout(location = 0) in vec3 position;
layout(location = 1) in vec2 uvVerts;
out vec2 uv;
uniform mat4 MVP;
uniform mat4 transformation;
void main(){
gl_Position = MVP * transformation * vec4(position,1);
uv = uvVerts;
}
希望大家能看到问题
注:
是的,我将 MVP(模型视图投影矩阵)与变换矩阵相乘,否则我什至不知道如何移动云。
希望我说得够清楚了。
好吧,我修好了,我忘了乘MVP矩阵的矩阵...
我正在尝试翻译云纹理。然而,相机也以这种方式翻译,这是我不想要的。所以只有移动的云,没有其他移动。
我是怎么翻译云朵的:
MatrixID = glGetUniformLocation(programID, "MVP");
transID = glGetUniformLocation(programID, "transformation");
glm::mat4 translate = glm::translate(glm::mat4(1.f), glm::vec3(cloudTranslation, 0.0f, 0.0f));
glUniformMatrix4fv(transID, 1, GL_FALSE,
glm::value_ptr(translate));
cloudTranslation += 1.0f;
顶点着色器:
#version 330 core
layout(location = 0) in vec3 position;
layout(location = 1) in vec2 uvVerts;
out vec2 uv;
uniform mat4 MVP;
uniform mat4 transformation;
void main(){
gl_Position = MVP * transformation * vec4(position,1);
uv = uvVerts;
}
希望大家能看到问题
注: 是的,我将 MVP(模型视图投影矩阵)与变换矩阵相乘,否则我什至不知道如何移动云。
希望我说得够清楚了。
好吧,我修好了,我忘了乘MVP矩阵的矩阵...