一、为什么图像会变形
二、视口变换
void glViewport(GLint x,GLint y,GLsizeiwidth,GLsizei height);
老惯例,先找一下官网介绍
上面的单词中dimensions[dɪˈmɛnʃənz]是尺寸的意思,coordinates[koʊˈɔːrdɪneɪts]是坐标的意思 affine transformation是2D仿射变换,其他的没有什么难度,自行翻译。
1.设置当前窗口中的视口区域
2.参数中的值都是以屏幕像素为单位的。
投影函数(如gluPerspective())定义了投影窗口的大小比例;
glViewport()定义了视口的大小比例;
视口的坐标原点在左下角;投影窗口的原点在中心
glViewport(0, 0, w, h);
gluPerspective(60.0, (GLfloat)w/(GLfloat)h, 1.0, 30.0);
设置第2个参数为w/h的目的:保持投影窗口与视口的比例一 致,使不变形