Я новичок в OpenGL и испытываю "эффект черного экрана".Я потратил целую вечность, пытаясь понять, почему я ничего не вижу, и у меня не было большого успеха.Я использую LWJGL, и вот фрагмент кода, который я пытаюсь запустить:
glViewport(0,0,DISPLAY_WIDTH,DISPLAY_HEIGHT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho( 6200000.0f, 6300000.0f, 350000.0f, 380000.0f, -10000000.0f, 100000000.0f);
gluLookAt(368000.0f, 6250000.0f, -10000.0f, 368000.0f, 6250000.0f, 10000.0f, 0.0f,1.0f,0.0f);
glPushMatrix();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glPushMatrix();
if(ready)
{
glColor3f(1.0f,0.5f,1.0f);
glPointSize(100);
glBegin(GL_POINTS);
for(int i = 0; i < data.length; i += 100)
{
glColor3f(1.0f,1.0f,1.0f);
glVertex3f((float) data[i][1], (float) data[i][2],0.0f);
System.out.println((float) data[i][1] + ", " + (float) data[i][2]);
}
glEnd();
System.out.println("\n\nfinished drawing\n\n");
glFlush();
Я рисую другим цветом, который я использовал для очистки экрана.
Мойнабор данных довольно большой (более 100 000 точек), поэтому я попытался построить каждую сотую точку, но это не работает.
Я также пытаюсь построить точки в таких позициях, как (400 000, 6 800 000).это дарит мне проблемы?Я почти уверен, что 32-разрядные числа с плавающей запятой должны обрабатывать эти значения.
Я почти уверен, что пиксель с размером = 1 будет пытаться построить как 1 пиксель на экране, независимо от того, насколько малэто сравнивается с границами ортографической проекции.
Возможно, я неправильно разбираюсь с матрицей проекции.