我有一个代表简单 3D 场景的学习项目。我正在修改模型视图矩阵以将视点移动到某个非原点,gluLookAt()
然后我将线球放置在原点。最后,我正在修改投影矩阵以接收带有一些参数的正交投影,使用glOrtho()
. 但是当调整窗口大小时,球体会变形。我想我应该修改reshape()
和glOrtho()
函数,但是如何?
void display(void){
glClear(GL_COLOR_BUFFER_BIT);
glColor3b(197, 96, 63);
glLoadIdentity();
gluLookAt(2, 0.5 ,2, 0, 0, 0, 0, 1, 0);
glutWireSphere(0.2, 20, 10);
glFlush();
}
void reshape(int w, int h){
glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1, 1, -1, 1, 0.8 , 100);
glMatrixMode(GL_MODELVIEW);
}