变换矩阵TransformationMatrix

参考

OpenGL坐标变换CoordinateTransformation - 图1 OpenGL坐标变换CoordinateTransformation - 图2

  • 获取矩阵glGetFloat

    1. float mat[16];
    2. glGetFloatv(GL_MODELVIEW_MATRIX, mat);
    3. for (int i = 0; i < 16; i++)
    4. {
    5. printf("%f ", mat[i]);
    6. if ((i+1) % 4 == 0)
    7. {
    8. printf("\n");
    9. }
    10. }

    模型变换ModelTransformation

  • glTranslate*();``glScaled;``glRotated;

  • 坐标OpenGL坐标变换CoordinateTransformation - 图3 :::info

  • 模型变换矩阵ModelMatrix

  • OpenGL坐标变换CoordinateTransformation - 图4
  • OpenGL坐标变换CoordinateTransformation - 图5

  • 旋转矩阵OpenGL坐标变换CoordinateTransformation - 图6 ::: 矩阵推导https://www.cnblogs.com/WangGuiHandsome/p/10094784.html

    视点变换

  • gluLookAt;

  • 坐标OpenGL坐标变换CoordinateTransformation - 图7
  • 视点变换矩阵ViewCameraMatrixOpenGL坐标变换CoordinateTransformation - 图8

    投影变换

  • glOrtho();``glFrustum();gluPerspective();

  • OpenGL坐标变换CoordinateTransformation - 图9
  • OpenGL坐标变换CoordinateTransformation - 图10
  • 投影矩阵PROJECTIONMatrix
  • OpenGL坐标变换CoordinateTransformation - 图11OpenGL坐标变换CoordinateTransformation - 图12

    透视投影-近大远小正交投影

    OpenGL坐标变换CoordinateTransformation - 图13OpenGL坐标变换CoordinateTransformation - 图14OpenGL坐标变换CoordinateTransformation - 图15

视口变换glViewport();


OpenGL坐标变换CoordinateTransformation - 图16