Я рисую 3 линии с функцией я сделал (упрощено, рабочий пример):линия вершина слишком толстая (независимо от того, что ширина)
template<class... Args> inline void DrawPoly(float width , int color, Args... args)
{
glLineWidth(width);
ofSetHexColor(color);
glBegin(GL_LINES);
std::array<ofPoint, sizeof...(args)> list = {args...};
for(size_t i = 1, j = list.size(); i < j; ++i)
{
glVertex3f(list[i-1].x, list[i-1].y, list[i-1].z);
glVertex3f(list[i].x, list[i].y, list[i].z);
}
glEnd();
}
Это его работу хорошо, но я могу» t получить хорошие линии размером 1 пиксель. Независимо от того, что я установил ширину тоже.
Это, как я вызываю функцию: (! И независимо от того, как низко я установить ширину)
DrawPoly(0.001,0x77777777,ofPoint(150,150),ofPoint(200,150),ofPoint(200,200),ofPoint(150,200));
и это не является результатом:
Я не понять, почему это происходит, я пытаюсь переключиться с directX, и эквивалентный код дает результат, который мне нужен:
Как это исправить? Это происходит со всем кодом моей линии/полиформы! :(
ofAntiAliasingDisable(); сделал трюк, спасибо :) – Gizmo
@Gizmo: Это действительно не решает проблему, а именно, что ваши координаты линий «То, что нужно лежать точно в пиксельных центрах. – datenwolf