2011-01-24 88 views
6

我正在考慮重構我的渲染代碼的大部分,並且彈出一個問題: 是否可以在幀緩衝區對象中使用多個顏色附件渲染屏幕和紋理?即使它有許多有用的應用程序,我也無法找到任何信息。我想它應該足以將我的紋理作爲顏色attachment0和renderbuffer 0綁定到attachment1上?是否可以將默認渲染緩衝區附加到FBO?

例如,我想創建一個交互式應用程序,您可以在3D模型上「繪製」。我通過將UV座標渲染到紋理來解決用戶繪製的位置,以便我可以查看修改紋理的鼠標座標。在我的情況下,有一個着色器可以最快速地渲染UV紋理和實際紋理到屏幕。

有沒有更好的方法來做到這一點,或我在正確的軌道上?

回答

6

在OpenGL中沒有「default renderbuffer」這樣的東西。有窗口系統提供默認幀緩衝區保留名稱爲零,但基本上意味着「沒有啓用FBO」。所以不行,不幸的是,正常的OpenGL沒有提供任何方法來以某種方式將其顏色緩衝區用作任何其他FBO的顏色附件。我不知道有可能提供此功能的任何擴展程序。

使用渲染緩衝區還有保留名稱零,但它只是一個特殊的「無」變量,並允許解除渲染緩衝區的綁定。

+3

的確如此。 glspec的第4.4節中提到:「最初,GL使用默認幀緩衝區,連接到這個幀緩衝區的圖像的存儲,尺寸,分配和格式完全由窗口系統管理,因此默認幀緩衝區的狀態,包括其圖像,不能被GL改變,也不能由GL刪除默認幀緩衝區。「 – 2011-01-24 13:15:42

相關問題