2013-03-05 110 views
0

我想在白色背景中渲染幾何。問題是隨機白點出現在幾何體內部。當我調整窗口大小時,白色的點會切換......出現並隨機消失在幾何體內(當我調整窗口大小時)。OpenGL隨機白點

我進行了大量測試,發現點只出現在兩個三角形之間的邊緣。看起來這兩個三角形都無法呈現該像素(就好像該像素未被任何三角形包含),因此呈現白色背景。我應該注意到,在這些邊界只有幾個像素是白色的(不是全部)。而且它沒有某種紋理過濾問題,因爲即使我用純色渲染多邊形(我直接在着色器中設置),問題也會發生。

真的,它似乎是一種打擊測試問題,其中OpenGL實現無法檢測到兩個相鄰三角形邊界上的某些像素。

我正在使用NVIDIA GeForce GTX 675MX在27英寸iMac中運行此示例。我將在帶有英特爾集成顯卡的MacBook上測試這個相同的應用程序。

有人可以在這個話題上談一談嗎?

+1

如果相鄰三角形不共享頂點,則會由於精度/舍入誤差而發生這種情況。否則,只有在OpenGL實現被破壞時纔會發生(不太可能)。你分享頂點,還是他們分開? – Damon 2013-03-05 14:50:42

+0

@Damon我可以想到至少有一種其他方式可能發生,即使正確共享vert和一個好驅動程序,這是濫用GL_POLYGON_SMOOTH – JasonD 2013-03-05 15:21:02

回答

0

謝謝@Damon。我解決了不是頂點不完全相同的問題。真正的問題是(通過設計)需要保留在兩個三角形交點之間的一些頂點。這導致了OpenGL的問題。解決方案是稍微向下移動頂點(在三角形內)並相應地調整紋理座標。

非常感謝!