[英]Open gl es - How to improve performance, render to texture, blending
我在這里是因為我正在開發一個OpenGL程序,而且我在性能方面存在一些問題。 我在iMX6 soc上使用OpenGL ES 3.0。
這是我的算法:
我從相機獲得一個直接映射到紋理的圖像。 使用FBO,我渲染到紋理以在特定表單上映射圖像。
我為另一個圖像執行相同的操作(使用第二個FBO),該圖像由另一個應用程序通過共享內存發送。 僅在更新圖像時才執行此步驟。 每秒只有一次。
我將這兩個紋理混合在默認的幀緩沖區中,以將結果呈現給屏幕。
如果我單獨執行這三個步驟,它運行良好,屏幕更新為30FPS。 但是當我在一個程序中包含三步時,渲染非常慢,而我只有0.5FPS。
我想知道iMX6上的GPU是否足夠強大,但我認為它不是一個復雜的算法。 我想我正在以錯誤的方式做某事,但是什么呢? 我使用3個不同的幀緩沖區,這是一個好方法還是應該只使用一個?
有人可以給我答案,線索,任何可以幫助我的東西嗎? :-)
我的圖片尺寸為1280x1024 x RGBA。 然后我正在做一些從浮點紋理到整數並返回到浮點數的轉換,這是為了對像素執行按位運算。
感謝@Columbo,問題來自於所有轉換,我使用浮點紋理,並且只針對按位操作我進行轉換,這提高了算法的性能。
降低性能的另一點是紋理格式。 第一步,圖像為1280x1024,但僅限於一個組合圖像(灰度圖像)。 為了保留灰度合成器並且不使用太多內存,我使用了GL_RED紋理,但這不是一個好主意,因為當我將其更改為GL_RGB時,我也將渲染的幀速率加倍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.