我一直在嘗試在使用GLES 3的應用程序中實現渲染到紋理的方法,並且我已經得到了它的工作原理,但我對幀頻下降有點失望。將非多重採樣的FBO複製到多重採樣的FBO
到目前爲止,我們已經直接渲染到主FBO,它是使用EGL_SAMPLES = 8創建的多重採樣FBO。
我基本上想要的是能夠獲得已經繪製的像素,而我仍然在繪製。所以我認爲渲染紋理的方法應該做到這一點。然後,我只需要閱讀屏幕外FBO的紋理部分,當我完成渲染時,我會將整個內容粘貼到主FBO。
挖掘到這我發現我不得不實現一個多采樣FBO系統以及一個非多采樣紋理FBO,我不得不解決multisampled之一。然後將解決的問題提交給主FBO。
這一切都有效,但問題是,通過使用上述系統和一個非多重採樣主FBO(EGL_SAMPLES = 0),我得到了相當大的幀速率下降,這與我僅使用main EGL_SAMPLES = 8的FBO。
挖掘更多一點,我發現人們在線報告以及這裏的帖子https://community.arm.com/thread/6925,說最快的多抽樣方法是使用EGL_SAMPLES。事實上,這就是我們目標板上的jetson tk1上的樣子。
這最終導致我的問題,併爲長介紹道歉:
有沒有辦法,我可以設計這樣任何方式使用非多重採樣關屏FBO對所有最終的位圖混合渲染到使用EGL_SAMPLES的主多重採樣FBO?
最後一段完全倒退。你並不是先開始每像素1個樣本的光柵化處理,然後將其傳輸到多重採樣的幀緩衝器中。您想要轉向另一個方向並將多重採樣緩衝區解析爲單個樣本,否則您只會浪費VRAM。 –