OpenGL/WebGL shader三维效果坐标变换
·
首先有两个坐标系。
世界坐标系
观察坐标系
世界坐标系是三维物体的绝对坐标
观察坐标是基于观察者的坐标,方便我们计算。
物体想要被描述,一般使用世界坐标。所以,会有坐标转换的过程。就是从一个坐标变换到另一个坐标。提到变换,用线性代数的矩阵是非常好表示的。
世界坐标左乘某矩阵,就可以得到观察坐标。而这个矩阵的向量组就是由观察空间的基构成。
所以,构建三维的观察坐标系(或者说观察空间),会需要
right:右向量
up:竖向量
front:前向量
恰好对应屏幕上x轴,y轴,z轴
为了符合视觉效果,通常会把物体在屏幕上拉伸,
right x轴拉伸
up y轴拉伸
front z轴拉伸,但表现上是整体拉伸(对应zoom)
对应变换观察向量组,就可以实现观察向量的整体移动
rd = mat3(r,u,f)*(uv,1.);
更多推荐
所有评论(0)