我有一个512x512窗口,我正在生成262144(即512 * 512)2D点并使用glVertex2f显示它们。这些点在(-2,-2)到(2,2)之间的范围内均匀地间隔开。过了一段时间,我正在生成一组不同的262144点,其范围不同,如(-1,-1)到(1,1)。我将glOrtho定义为(0,512,0,512,0,512)。第二个点矩阵占据窗口的一半,而第一个占据整个窗口。如何在不改变gluLookAt或指定不同的旋转,平移或glOrtho的情况下使第二个点矩阵占据整个窗口? (它基本上就像一个缩放,但重新绘制不同的值,我需要新的值来适应整个窗口)
答案 0 :(得分:4)
如何在不更改gluLookAt或指定不同的旋转,平移或glOrtho的情况下使第二个点矩阵占据整个窗口?
你完全一样。您不应该将投影或模型视图矩阵“设置一次”。你应该根据需要经常更改这些矩阵。
OpenGL是一个绘图 API。不要将OpenGL视为不是它(场景图,3D模型显示器等)。在一天结束时,OpenGL只绘制点,线或三角形,应用一些变换。根据需要改变转换并有选择地改变某些绘图步骤不仅是可以接受的,而是采取行动的方式。