OpenGL坐标系解析

左手坐标系与右手坐标系

  • 伸出左手,大拇指指向x轴正方向,食指指向y轴的正方向,其余三个手指指向z轴的正方向,满足这样条件的坐标系属于左手坐标系。
  • 同理,伸出右手,满足大拇指指向x轴正方向,食指指向y轴正方向,其余手指指向z轴正方向的都属于右手坐标系。
  • 在3D情景中,总共会有48种坐标系,其中24种是左手坐标系,24种为右手坐标系。
左右手坐标系.jpg

在3D图形学中常用的坐标系

  • 世界坐标系
    • 建立了描述其他坐标系所需要的参考框架。从另一方面说,能够用世界坐标系描述其他坐标系的位置,而不能用更大的、外部坐标系来描述世界坐标系。
  • 物体坐标系
    • 和特定物体相关联的坐标系。每个物体都有他们独立的坐标系。当物体移动或改变方向时,和该物体相关的坐标系将随之移动或改变方向。
  • 摄像机坐标系
    • 摄像机坐标系是和观察者密切相关的坐标系。
    • 摄像机坐标系中,摄像机在原点,x轴向右,z轴向前(朝向屏幕内或摄像机方向),y轴向上(不是世界的上方而是摄像机本身的上方)。
摄像机坐标系.jpg
  • 惯性坐标系
    • 为了简化世界坐标系到物体坐标系的转换而引入的一种新的坐标系。
    • 物体坐标系转换到惯性坐标系只需旋转,从惯性坐标系转换到世界坐标系只需要平移。
世界物体惯性坐标系.jpg

OpenGL中的物体、世界、照相机坐标系都属于右手坐标系,而规范化设备坐标系使用左手坐标系。

OpenGL坐标变换全局图

坐标系变换流程.png

OpenGL顶点计算流程图

顶点计算流程.png

矩阵的计算流程图


顶点矩阵计算流程.png
  • 顶点计算过程中(参考上图)模型变换、视变换,投影变换,这些变换可以由用户根据需要自行指定,这些内容在顶点着色器中完成;
  • 透视除法、视口变换,这两个步骤是OpenGL自动执行的,在顶点着色器处理后的阶段完成。

参考文章:
https://www.jianshu.com/p/3448f546eac4
https://www.jianshu.com/p/ebe8907aa07b

你可能感兴趣的:(OpenGL坐标系解析)