我試圖找出選擇使用着色器呈現信息的最佳方法。 窗口管理器緩衝區(窗口)用於輸出渲染。在用戶事件中,我應該選擇渲染的幾何圖形。使用gluPick很容易,但我試圖選擇僅使用着色器。採用OpenGL着色語言
着色器的靈活性不會幫助我找到正確的解決方案。我找到了以下解決方案:
- 使用系統提供的緩衝區(實際上使用顏色)進行渲染。使用glScissor限制某個區域的渲染,並使用glReadPixels提取顏色,並使用幾何標識符映射
- 使用單獨的幀緩衝區對象進行渲染。渲染緩衝區格式需要定義。也許我可以用普通整數來放置名字嗎?
- 使用幀緩衝區對象進行渲染,用於渲染和拾取。包含渲染名稱的額外渲染緩衝區對象。
看來,第二種解決方案是最好的,因爲不會改變窗口緩衝區,並且可以定義自定義方式來指定幾何名稱。
有什麼建議嗎?
PS:
由於在片段着色器我聲明vec4的陣列用於限定所述片段數據,如何我可以設置一個幀緩衝保持一個呈現只具有R成分緩衝器,存儲在尺寸整數內部格式?
是否有可能將片段着色器輸出變量與特定的附加渲染緩衝區鏈接起來?
如果有人對研究GPU射線交集感興趣,實際上有一篇關於它聲稱該方法爲「2」的[論文](http://www.hindawi.com/journals/ijcgt/2009/730894/)到基於GPU的傳統拾取速度的14倍「。我還沒有嘗試過。 – Loomchild 2012-12-12 14:05:48