1-8坐标系统

87 阅读1分钟

五个坐标系统:

局部空间(物体空间)

世界空间

观察空间(视觉空间)

裁剪空间

屏幕空间

三个变换矩阵:

模型(model),观察(view),投影(projection)

分别对应局部空间,世界空间,观察空间

局部空间指的是物体的起始坐标

世界空间指的是相对于世界的全局坐标

观察空间指的是从摄像机的位置进行观察的坐标

裁剪空间指的是从自己的坐标集变换到(-1,1)范围,最后进行透视除法,将x,y,z三个坐标同时除以w齐次分量,从四维空间变换到三维标准化空间

正射投影指的是规定一个裁剪空间,在空间外的所有坐标进行裁剪

glm::ortho(float,float,float,float,float,float);

这里的参数指的是左右上下近远的距离

透视投影指的是使用透视投影矩阵映射到裁剪空间内,使得z越大w越大,即创建一个定义了可视空间的大平截头体

glm::mat4 proj = glm::perspective(glm::radians(float),width/height,float near,float far);

想呈现最终的结果,即要在变换到裁剪坐标前乘以模型,观察和投影矩阵

进行3D绘图时,首先创建一个模型矩阵

glm::mat4 model;

将顶点坐标乘以模型矩阵时,代表全局世界

接下来创建一个观察矩阵,在场景内移动

最后创建投影矩阵,使用透视投影