向量和矩阵要点(math-vector and matrices)
链接:https://blog.youkuaiyun.com/wangdingqiaoit/article/details/51383052
坐标和变换的数学基础(math-coordinates and transformations)
链接:https://blog.youkuaiyun.com/wangdingqiaoit/article/details/51394238
二维纹理映射(2D textures)
链接:https://blog.youkuaiyun.com/wangdingqiaoit/article/details/51457675
其中讲解滤波时,终于明白了放大和缩小滤波的原理了!
模型变换(model transformation)
链接:https://blog.youkuaiyun.com/wangdingqiaoit/article/details/51531002
视变换(view transformation)
链接:https://blog.youkuaiyun.com/wangdingqiaoit/article/details/51570001
投影矩阵和视口变换矩阵(math-projection and viewport matrix)
链接:https://blog.youkuaiyun.com/wangdingqiaoit/article/details/51589825
该文章中应该有一个地方写错了,“利用zn与ze的映射关系为:(-n,-1)和(-f,1)”,这里的映射关系应该是(-1,1)和(-n,-f)才对,如果是我错了,欢迎指正,并告明原因。
OpenGL坐标变换过程(vertex transformation)
链接:https://blog.youkuaiyun.com/bu_xiang_zhu_ce/article/details/78495186
OpenGL ES —— Perspective Projection的推导
链接:https://blog.youkuaiyun.com/osle123/article/details/52755980
这篇文章写得很好,很清晰,推荐,看完就完全了解了投影矩阵。
注意!注意!注意!!!代码书写的顺序和我们实际变换的顺序是反的,例如:
先缩放在平移完成模型变换,但在代码中先调用translate再调用scale!
个人对投影矩阵中各个参数的理解:
1.角度fovy:视野的范围角,即看到的视野范围大小,在计算投影矩阵的时候都用fovy/2;
2. 近平面near:裁剪的近平面到相机的距离,小于near的所有物体都被裁剪;
3. 远平面far:裁剪的远平面到相机的距离,大于far的所有物体都被裁剪;
4. 推导过程中的(l,r)是近平面上x的范围;(t,b)是近平面上y的范围;根据视见体是对称的(正常情况下),
和
便可以直接等于0,而宽度
,高度
,所以得到了最后的投影矩阵;
坐标系统:
球体坐标旋转视角参数:
制作鼠标控制图像旋转缩放时的参数计算
d:平面x方向上的偏移;
h:平面y方向上的偏移;
z:鼠标滚轮滑动的距离;