C++ OpenGL多个视口和透视图()
因此,我试图学习如何使用glViewport(),“多次”。下面是我的代码,我试着跟随其他示例,但它们要么与其他与我正在做的事情无关的事情纠缠不清,要么我不理解它们在做什么。顺便说一下,我正在使用glut管理我的窗口系统。所以,对我来说,最好的学习方法是让自己运行一个简单的例子,然后从中推断。下面是我为一个简单程序编写的代码,该程序将屏幕一分为二并绘制两个相同的球体,我不明白为什么当两个视口的gluPerspective()相同时,右侧的球体会拉伸。请,如果你能向我解释一下我在代码中犯了什么错误,这将非常有帮助。外部资源很好,但我需要简单的例子(不是Nate Robinson的例子) 请注意,我在等待响应时正在四处游荡,我让它做了我想做的事情,但解决方案不起作用,因为,请看代码行,基本上我将视口开始位置移动到屏幕的1/4,而不是一半,并且我不再在透视图上除以2C++ OpenGL多个视口和透视图(),c++,opengl,C++,Opengl,因此,我试图学习如何使用glViewport(),“多次”。下面是我的代码,我试着跟随其他示例,但它们要么与其他与我正在做的事情无关的事情纠缠不清,要么我不理解它们在做什么。顺便说一下,我正在使用glut管理我的窗口系统。所以,对我来说,最好的学习方法是让自己运行一个简单的例子,然后从中推断。下面是我为一个简单程序编写的代码,该程序将屏幕一分为二并绘制两个相同的球体,我不明白为什么当两个视口的gluPerspective()相同时,右侧的球体会拉伸。请,如果你能向我解释一下我在代码中犯了什么错误
/*
* THE SECOND VIEW PORT
*/
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(width/4, 0, width , height);
gluPerspective(45, ((float)width)/(((float)height)), 1, 2000);
glViewport的第二对参数是宽度和高度,而不是结束x/y位置。第二个glViewport应该是
glViewport(宽度/2,0,宽度/2,高度)
/*
* THE SECOND VIEW PORT
*/
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(width/4, 0, width , height);
gluPerspective(45, ((float)width)/(((float)height)), 1, 2000);