У меня проблемы с блоком 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);