小结:
- GLM的
projection
函数中的FoV代表视角,值越大就好像眼睛睁得越大,看到的东西就越多,所以你的图像会变小;值越大就好像眼睛睁得越小,看到的东西就很少,所以你的图像会放大。
- GLM的
projection
函数中的aspect-ratio代表宽高比,值越大宽被拉长,值越小高被拉长。
- 将观察矩阵在各个方向上进行位移,来看看场景是如何改变的。注意把观察矩阵当成摄像机对象。首先将右手坐标系对准自己,在各个方向上位移实际上就把坐标系位移,头不移动,然后偏头看向坐标系(你的右手),就是当前的视角了。
- 使用模型矩阵只让是3倍数的箱子旋转(以及第1个箱子),而让剩下的箱子保持静止
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 ... 2 3 4 glBindVertexArray(VAO); 5 for(unsigned int i = 0; i < 10; i++) 6 { 7 // calculate the model matrix for each object and pass it to shader before drawing 8 glm::mat4 model; 9 model = glm::translate(model, cubePositions[i]); 10 float angle = 20.0f * i; 11 if(i % 3 == 0) // every 3rd iteration (including the first) we set the angle using GLFW's time function. 12 angle = glfwGetTime() * 25.0f; 13 model = glm::rotate(model, glm::radians(angle), glm::vec3(1.0f, 0.3f, 0.5f)); 14 ourShader.setMat4("model", model); 15 16 glDrawArrays(GL_TRIANGLES, 0, 36); 17 } 18 19 ...
2019/11/28