2014-04-11 78 views
2

由於其硬件加速,我想使用Opengl用於2d圖形。你寧願推薦我使用現代的Opengl還是使用固定管道來做這件事?整個着色器編寫 似乎對我來說太多開銷。我只想繪製一些2D基元。用於2D圖形的現代OpenGL

+0

您最好使用像SDL這樣的庫。有很多在後臺使用opengl,因此硬件加速繪圖 – acrilige

+0

這正是我不想做的。我想獨立於這些圖書館 – user3425881

回答

0

現代OpenGL更好。不要害怕着色器。如果沒有它們,除了使用一些混合來繪製圖像之外,您無法做任何事情......您無法過分... 使用着色器,您可以完成幾乎所有的任務(例如Photoshop等效果)。

2

即使是使用可編程流水線而不是固定功能流水線的微不足道的2d圖形,也是您想要的。最後,可編程管線爲您提供了更多表達圖形的自由。你如何決定程序管道取決於你,是由你的圖形需求驅動的。它可能是,你只需要一個着色器。沒有書面規則,你需要有數百個着色器才能成爲'現代opengl'。

在這方面,如果現代的opengl真的是非常努力的話,這是值得商榷的。它是着色器,頂點/索引緩衝區和一些紋理。與固定功能流水線相比,是否真的改變了很多,你甚至不得不考慮堅持固定功能流水線?

爲什麼你更喜歡可編程管線的一個更有說服力的理由是固定功能管線已被棄用。換句話說,等待刪除。在概念上,IHV可以隨時決定放棄對它的支持。

+0

勞倫斯,如果2D圖形只是圖像,即你正在尋找相當於一個bitblt?我做了一些比較,並且無法接近DirectX的速度。我仍然懷疑我是否做了錯誤的事情(比如使用「舊」的OpenGL)或者DirectX(Direct2D真的)更快。 –

+1

性能是一個困難的課題,尤其是在硬件加速的世界裏,對於大多數人來說,你根本不知道硬件或者說駕駛員在做什麼。有很多路徑容易使性能惡化。您可以做的最好的事情是閱讀行業專業人士在演示/會談等方面給出的建議 - 例如「在OpenGL中接近零驅動程序開銷」gdc 2014.請記住,DirectX具有廣泛使用性能的歷史關鍵的應用程序(即遊戲),它可能是更快的。 –