簡體   English   中英

使用OpenGL調整圖像大小

[英]Resizing an image using OpenGL

我想使用OpenGL調整圖像大小。 我更喜歡Java,但C ++也沒問題。

我對整個事情都很陌生,所以這就是我所看到的文字過程:

  1. 將圖像作為紋理加載到OGL中
  2. 設置一些關於狀態和過濾的東西
  3. 將不同大小的紋理繪制到另一個紋理上
  4. 將紋理數據轉換為數組或其他內容

您認為使用OpenGL和GPU比使用基於CPU的BLIT庫更快嗎?

謝謝!

您可以簡單地使用硬件blit功能: glBlitFramebuffer ,而不是將四元組渲染到目標FBO中。 它的論點是直截了當的,但它需要仔細准備你的源和目標FBO:

  • 確保FBO完整( glCheckFramebufferStatus
  • 設置讀取FBO目標並獨立寫入FBO目標( glBindFramebuffer
  • 設置繪制緩沖區和讀緩沖區( glDraw/ReadBuffers
  • 調用glBlitFramebuffer ,在參數中設置GL_LINEAR過濾器

我敢打賭它在GPU上要快得多,特別是對於大型圖像。

取決於,如果圖像很大,使用OpenGL可能會更快。 但是,如果它只是在調整大小進程而在GPU端沒有更多的處理,那么它不值得,因為它很可能比CPU慢。

但是如果你需要調整圖像大小,並且可以在OpenGL中實現進一步處理,那么這是一個值得的想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM