由於其硬件加速,我想使用Opengl用於2d圖形。你寧願推薦我使用現代的Opengl還是使用固定管道來做這件事?整個着色器編寫 似乎對我來說太多開銷。我只想繪製一些2D基元。用於2D圖形的現代OpenGL
回答
現代OpenGL更好。不要害怕着色器。如果沒有它們,除了使用一些混合來繪製圖像之外,您無法做任何事情......您無法過分... 使用着色器,您可以完成幾乎所有的任務(例如Photoshop等效果)。
即使是使用可編程流水線而不是固定功能流水線的微不足道的2d圖形,也是您想要的。最後,可編程管線爲您提供了更多表達圖形的自由。你如何決定程序管道取決於你,是由你的圖形需求驅動的。它可能是,你只需要一個着色器。沒有書面規則,你需要有數百個着色器才能成爲'現代opengl'。
在這方面,如果現代的opengl真的是非常努力的話,這是值得商榷的。它是着色器,頂點/索引緩衝區和一些紋理。與固定功能流水線相比,是否真的改變了很多,你甚至不得不考慮堅持固定功能流水線?
爲什麼你更喜歡可編程管線的一個更有說服力的理由是固定功能管線已被棄用。換句話說,等待刪除。在概念上,IHV可以隨時決定放棄對它的支持。
勞倫斯,如果2D圖形只是圖像,即你正在尋找相當於一個bitblt?我做了一些比較,並且無法接近DirectX的速度。我仍然懷疑我是否做了錯誤的事情(比如使用「舊」的OpenGL)或者DirectX(Direct2D真的)更快。 –
性能是一個困難的課題,尤其是在硬件加速的世界裏,對於大多數人來說,你根本不知道硬件或者說駕駛員在做什麼。有很多路徑容易使性能惡化。您可以做的最好的事情是閱讀行業專業人士在演示/會談等方面給出的建議 - 例如「在OpenGL中接近零驅動程序開銷」gdc 2014.請記住,DirectX具有廣泛使用性能的歷史關鍵的應用程序(即遊戲),它可能是更快的。 –
- 1. 與現代Opengl的2D形狀座標
- 2. 2D圖形使用OpenGL庫
- 3. 用於OpenGL中的2D和3D圖形操作的單一API
- 4. 用於GUI的OpenGL 2d(正交)渲染,現代化的方法
- 5. Android上的OpenGL ES 2.0的2D圖形
- 6. OpenGL 2D矩形不被呈現
- 7. 使用java圖形API(2D/3D/OpenGL /等)的交互式圖形?
- 8. 如何在Android上使用OpenGL渲染2D圖形/圖形?
- 9. android ndk和opengl-es 1.0/1.1 - 2D圖形
- 10. 繪製2D七邊形OpenGL
- 11. 適用於iOS 2D遊戲的圖形
- 12. Opengl圖形代碼理解
- 13. 我們應該使用OpenGL的2D圖形?
- 14. 使用現代OpenGL進行2D渲染的正交投影
- 15. 的OpenGL - 使用現代化圖書館
- 16. 2D OpenGL場景變慢,出現大量重疊的形狀
- 17. 如何在MVS中使用OpenGL繪製實時2D圖形
- 18. 面向用戶的OpenGL 2d繪圖
- 19. 用於Android 2D遊戲的2D API或OpenGL ES?
- 20. 用於2D繪圖的OpenGL ES 1.0或2.0
- 21. 高性能的OpenGL的2D圖形動畫庫
- 22. 2d java圖形
- 23. 用於文本的基於Swing的2D圖形庫
- 24. 適用於圖形應用的快速Pixel Precision 2D繪圖API?
- 25. 如何在android中實現2D圖形?
- 26. 2D到3D地圖OpenGL
- 27. OpenGL 2D非矩形區域剪輯
- 28. 使用OpenGL for 2D
- 29. 2D例如用OpenGL
- 30. 尋找C#2D平面代圖形庫
您最好使用像SDL這樣的庫。有很多在後臺使用opengl,因此硬件加速繪圖 – acrilige
這正是我不想做的。我想獨立於這些圖書館 – user3425881