我遇到了OpenGL中的顏色採集和抗鋸齒問題。激活AA時,glReadPixels的結果在對象邊界和對象交點處顯然是錯誤的。例如:在OpenGL中採用AntiAliasing進行顏色採集?
我在#32(RGBA:32,0,0,0)附近渲染了一個盒子#28(RGBA:28,0,0,0)。使用AA時,由於AA算法,我可以得到一個錯誤的ReadPixel值(例如30),其中立方體和三角形重疊,或者盒邊緣的值爲14。
我有4000萬個物體需要我可以挑選(這是一個拼圖遊戲)。能夠按形狀選擇對象是至關重要的。
我試着glDisable(GL_MULTISAMPLE)來禁用AA,但它不與某些AA模式下運行(我讀這取決於AA實施 - SS,MS,CS ..)
那麼,怎麼辦我選擇一個基礎對象?
- 有辦法暫時禁用AA嗎?
- 使用不同的緩衝區或甚至渲染上下文?
- 還有其他建議嗎?
大多數圖形驅動程序都可以選擇強制消除鋸齒而忽略設置。 [嘗試使用FBO](http://www.gamedev.net/topic/570321-glreadpixel-selection--driver-forced-anti-aliasing/)。 – 2011-05-25 11:21:02
如何獨立於光柵器/ OpenGL實現拾取?有易於使用,高性能庫光線三角相交測試,如OPCODE http://www.codercorner.com/Opcode.htm – datenwolf 2011-05-25 14:37:06
@datenwolf當他工作與拼圖(我將實施爲阿爾法測試四邊形或類似的東西),我認爲這對他不起作用。 – 2011-05-25 14:39:10