Конечные точки OpenGL GL_LINES не присоединяются

alt text У меня проблемы с блоком GL_LINES ... линии в приведенном ниже примере не соединяются на концах (хотя иногда случайным образом решает соединить угол или два). Вместо этого конечные точки находятся в пределах 1 пикселя друг от друга (оставляя угол, который не полностью возведен в квадрат; если это имеет смысл). Это простой блок для рисования сплошного прямоугольника размером 1 пиксель.

 glBegin(GL_LINES);

  glColor3b(cr, cg, cb);

  glVertex3i(pRect->left, pRect->top, 0);
  glVertex3i(pRect->right, pRect->top, 0);

  glVertex3i(pRect->right, pRect->top, 0);
  glVertex3i(pRect->right, pRect->bottom, 0);

  glVertex3i(pRect->right, pRect->bottom, 0);
  glVertex3i(pRect->left, pRect->bottom, 0);

  glVertex3i(pRect->left, pRect->bottom, 0);
  glVertex3i(pRect->left, pRect->top, 0);

 glEnd();

Пример ниже, кажется, решает проблему, давая мне острые, квадратные углы; но я не могу принять это, потому что не знаю, почему это так ...

 glBegin(GL_LINES);

  glColor3b(cr, cg, cb);

  glVertex3i(pRect->left, pRect->top, 0);
  glVertex3i(pRect->right + 1, pRect->top, 0);

  glVertex3i(pRect->right, pRect->top, 0);
  glVertex3i(pRect->right, pRect->bottom + 1, 0);

  glVertex3i(pRect->right, pRect->bottom, 0);
  glVertex3i(pRect->left - 1, pRect->bottom, 0);

  glVertex3i(pRect->left, pRect->bottom, 0);
  glVertex3i(pRect->left, pRect->top - 1, 0);

 glEnd();

Любые программисты OpenGL, которые могут помочь, я был бы признателен :)

Картинка увеличена. скриншота. Как видите, левый верхний угол не подключен. Правый верхний угол. Не видны нижний левый и правый, которые не связаны.

Окно просмотра настроено на от 1 до 1 пикселя на координату.

glDisable(GL_DEPTH_TEST);
glDisable(GL_LIGHTING);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
glOrtho(0, __nRendererWidth, __nRendererHeight, 0, -1, 100);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();
glEnable (GL_TEXTURE_2D);
12
задан Cœur 30 July 2018 в 04:29
поделиться