【发布时间】:2016-04-16 05:37:06
【问题描述】:
我正在尝试让一个对象始终面向相机。我寻找了一种方法来做到这一点,但问题是当我将这部分放入视图矩阵时,模型矩阵不会影响任何东西。我怎样才能让它使用模型矩阵来翻译它?代码:
GLuint transformLocation=glGetUniformLocation(textureShaders,"transform");
glm::mat4 transform;
glm::mat4 model;
glm::vec3 playerPosition=user.getPosition();
model=glm::translate(model,glm::vec3(xpos,0.0f,zpos));
glm::mat4 view;
view=glm::lookAt(cam.getPositionVector(),cam.getPositionVector()+cam.getFrontVector(),cam.getUpVector());
glm::mat4 rotationMatrix=glm::transpose(glm::lookAt(glm::vec3(xpos,0.0f,zpos),playerPosition,glm::vec3(0.0f,1.0f,0.0f)));
view*=rotationMatrix;
glm::mat4 projection;
projection=glm::perspective(45.0f,(float)900/(float)600,0.1f,100.0f);
transform=projection*view*model;
【问题讨论】:
-
“模型矩阵不会影响任何东西”是什么意思?
-
我放在那里的翻译似乎不起作用。 (它停留在(0,0,0))
-
嗯,你检查过你的变换矩阵现在是什么样子了吗?
-
代码在我看来没问题。问题可能源于它之外。您是否将“变换”矩阵设置为着色器统一(或只是投影*视图)?
-
我将制服正确设置到着色器中,因为旋转有效,这只是我遇到问题的翻译。
标签: c++ opengl matrix glm-math