我正在尝试使用视口(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);
}
任何人都可以在这里给我一些建议。
答案 0 :(得分:1)
在每个矩形的绘图例程中,检查zoomlevel是否低于某个因子。
如果是,则绘制尺寸为4的2D点(GL_POINT),否则(高变焦等级)绘制通常的2D矩形。
答案 1 :(得分:0)
您可以使用几何着色器。
测试四边形的区域,您可以应用缩放矩阵,并可能相应地划分颜色