我想使用OpenGL調整圖像大小。我更喜歡用Java,但是C++也可以。使用OpenGL調整圖像大小
我真的很新的整個事情,所以這裏的文字的過程中,我看到它:
- 負載圖像作爲紋理到OGL
- 設置一些東西,關於國家&過濾
- 繪製在不同尺寸紋理到另一個紋理
- 得到紋理數據到一個數組或東西
您是否認爲使用OpenGL和GPU比使用基於CPU的BLIT庫更快?
謝謝!
我想使用OpenGL調整圖像大小。我更喜歡用Java,但是C++也可以。使用OpenGL調整圖像大小
我真的很新的整個事情,所以這裏的文字的過程中,我看到它:
您是否認爲使用OpenGL和GPU比使用基於CPU的BLIT庫更快?
謝謝!
您可以簡單地使用硬件blit功能:glBlitFramebuffer
,而不是將四邊形渲染到目標FBO中。它的參數是直線前進,但它需要你的源和目標FBO的的精心準備:
glCheckFramebufferStatus
)glBindFramebuffer
)glDraw/ReadBuffers
)glBlitFramebuffer
,在參數設定GL_LINEAR濾波器我敢打賭,GPU上的速度會更快,特別是對於大圖像。
非常感謝說明! :-)高度讚賞! – 2011-02-24 14:33:59
取決於,如果圖像很大,使用OpenGL可能會更快。但是如果只是在調整大小的過程並且不在GPU方面進行更多的處理,那麼這是不值得的,因爲這很可能會比CPU慢。
但是,如果您需要調整圖像大小,並且可以在OpenGL中實施進一步的處理,那麼這是一個值得的想法。
我認爲這會更快。如果你這樣做了很多,瓶頸將是GPU的RAM鏈接。因此,如果您需要幾種不同格式的相同圖像,則可以在VRAM中加載一次,然後一次生成所有圖像。 – 2011-02-24 08:47:40
這就是我的想法。然而,我仍然想知道如何去做... – 2011-02-24 08:56:04
我真的懷疑它會快很多,因爲與上面評論相同的原因 - 在GPU和RAM之間傳輸內容通常很慢。但願意被證明是錯誤的:D – 2011-02-24 08:56:10