1.一定要注意坐标系,在opengl中分为左手坐标系和右手坐标系,如下图:
1.其中设备系统使用的是左手坐标系(例如鼠标交互操作)
2.世界坐标,物体坐标还有摄像机都是使用的右手坐标系
所以在写交互程序(opengl)的时候一定要注意鼠标坐标的转换
2.关于绘制先后顺序,如果在同一个屏幕上绘制图像(没有清空)那么有可能会出现上一次的绘制全部被覆盖.
3.一定要注意正交投影矩阵和透视投影矩阵的使用,例如在opengl交互编程中使用正交投影矩阵,在非交互中选择使用
4.在opengl中坐标点为(x,y,z,w),其中w为缩放因子因为在三维坐标系中,在opengl中坐标向量使用的是齐次坐标,齐次坐标使图形的投影和平移等操作成为可能。如果初始化的时候没有写入w,那么默认为1.
5.如果在当前坐标系下,想要旋转物体,那么首先将物体平移至原点,然后rotate,再平移回原物体的中点坐标.
6.关于放缩的话,有两种实现方式,一种是通过设置摄像头,改变摄像头位置来改变观察到的物体大小,第二种是通过矩阵中的scale接口设定好缩放因子来实现.
7.注意矩阵变换有结合律但是没有交换律。
8.vsh文件是每一次点变换操作的文件,fsh是每一次点颜色或透明度变换的文件,如果想传递vsh中的变量到fsh最好通过定义的varying变量