0
我畫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();
}
它它的工作很好,但我可以」噸得到良好的1像素大小的線。不管我怎麼設定寬度。
這是我如何調用該函數:(!不管我有多低寬度)
DrawPoly(0.001,0x77777777,ofPoint(150,150),ofPoint(200,150),ofPoint(200,200),ofPoint(150,200));
,這是結果:
我不理解爲什麼會發生這種情況,我試圖從directX和等效代碼中切換出我需要的結果:
我該如何解決這個問題?這發生在我所有的線/聚形狀代碼中! :(
ofAntiAliasingDisable();做了詭計,謝謝:) – Gizmo
@Gizmo:嗯,它並不能真正解決問題,也就是說,不會像在像素中心一樣。 – datenwolf