我刚开始阅读蓝皮书的最初章节,并了解到投影矩阵可用于修改我们所需坐标系到真实屏幕坐标的映射。可用于重置坐标系,并通过以下方式将其从左、右、上、下从-1更改为1(以示例为例)
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); //With 1's in the diagonal of the identity matrix, the coordinate system is rest from -1 to 1 (and the drawing should happen then inside those coordinates which be mapped later to the screen)
另一个例子:(宽度:1024,高度:768,纵横比:1.33)要更改坐标系,请执行以下操作:
glOrtho (-100.0 * aspectRatio, 100.0 * aspectRatio, -100.0, 100.0, 100.0, 1000.0);
我希望 OpenGL 的坐标系在左侧变为 -133,在右侧变为 133,在底部变为 -100,在顶部变为 100。使用这些坐标,我知道绘图将在这些坐标内完成,并且这些坐标之外的任何内容都将被剪裁。
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-100 * aspectRatio, 100 * aspectRatio, -100, 100, 100, 1000);
glMatrixMode(GL_MODELVIEW);
glRectf(-50.0, 50.0, 200, 100);
但是,上面的命令并没有在屏幕上给我任何输出。我在这里想念什么?