我有25个立方体,我想分别旋转每个立方体,这是我在x和y轴上的代码
我尝试使用rand(),但它不断奇怪地旋转它们,并且它们都沿相同方向旋转
这是在游戏循环中
for (unsigned int i = 0; i < 25; i++)
{
glm::mat4 model = glm::mat4(1.0f);
model = glm::translate(model, cubePositions[i]);
view = glm::translate(model, glm::vec3(0.0f, 0.0f, -10.0f));
float angle = 20.0f * i;
angle = glfwGetTime() * 20.0f;
model = glm::rotate(model, glm::radians(angle), glm::vec3(1.0f, 0.0f, 0.5f));
GLint modelLoc = glGetUniformLocation(ourShader.Program, "model");
glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glm::value_ptr(model));
GLint viewLoc = glGetUniformLocation(ourShader.Program, "view");
glUniformMatrix4fv(viewLoc, 1, GL_FALSE, glm::value_ptr(view));
GLint projLoc = glGetUniformLocation(ourShader.Program, "projection");
glUniformMatrix4fv(projLoc, 1, GL_FALSE,
glm::value_ptr(projection));
glDrawArrays(GL_TRIANGLES, 0, 36);
}
答案 0 :(得分:0)
由于没有实际的问题,我尝试对发布的代码提出一些意见 可以解释所生成程序的意外行为。
angle
变量,然后立即为其分配一个新变量
价值;只有这个新值才有意义,那么多维数据集应该全部旋转
以每秒20度的速度旋转。 (这不是问题)view
矩阵!它是
这根本不是您想要的。view
矩阵(以及projection
矩阵)。一些其他评论,没有直接关系:
glUniformMatrix4fv()
和projection
的{{1}}调用
在循环之前全部发生一次;只有view
矩阵从
一个物体到另一个物体。可能看起来像这样
model