如何在大型OpenGL屏幕上显示非常小的矩形?

时间:2014-03-20 22:52:50

标签: c opengl

我正在尝试使用视口(680X530)在非常大的openGL画布(例如50000X500000)上绘制数百万个2D小矩形(例如,150X150)。 有没有办法让这些相对较小的矩形在屏幕上可见而不放大,这样屏幕一开始看起来不会是空的。

以下是我的绘制和重塑功能:

static void draw() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    //draw millions of rectangles
    glColor3f(0.0f, 1.0f, 0.0f);
    glRectf( 275240.0, 499860.0, 275380.0, 500000.0);
    glFlush();
}

static void reshape() {
    glViewport(0, 0, 680, 530);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D (0.0, 500000.0, 0.0, 500000.0);
}

任何人都可以在这里给我一些建议。

2 个答案:

答案 0 :(得分:1)

在每个矩形的绘图例程中,检查zoomlevel是否低于某个因子。

如果是,则绘制尺寸为4的2D点(GL_POINT),否则(高变焦等级)绘制通常的2D矩形。

答案 1 :(得分:0)

您可以使用几何着色器。

测试四边形的区域,您可以应用缩放矩阵,并可能相应地划分颜色