我正在製作一個小型的Java遊戲庫,我想爲更多面向Java的繪圖製作繪圖代碼,而不是調用一些C++方法來繪製API。無論如何,我擔心它可能會比其他圖形API更慢。那麼這會是一個不錯的選擇嗎?另一個問題是我找不到一個有用的OpenCL教程(我需要先學習它),有人知道嗎?OpenCL是OpenGL和DirectX的快速替代品嗎?
-2
A
回答
5
OpenCL是而不是一個圖形API。它並不意味着渲染,並且它通常不會做得很好。
此外,OpenCL並不比OpenGL更「面向Java」。它仍然是一個基於C的API,所以你仍然會「調用一些C++方法來吸引API」。
2
嘛,OpenCL不是gpraphics API,但異構計算架構,可以使用你的顯示卡(或其他特定的設備),以使非圖形計算(GPGPU),類似於DirectCompute,Compute shader in OpenGL,CUDA等。 它不是面向對象的,因爲使用純C接口。雖然可以找到綁定(對於java:JOCL)。
0
另外;你知道有幾個很好的面向對象的java圖形庫。例如Jmonkey引擎。據我所知,如果你想要與圖形卡交談的快速圖形,你必須通過OpenGL *(與openCL不同,它是用於圖形)。所有的java API都是在後臺執行的,像LWJGL這樣的功能非常薄,基本上只是將OpenGL的方法暴露給Java:根本沒有任何對象方向。其他人在沒有用戶實現其OpenGL的情況下這樣做,這些往往是「場景圖」類型的圖形引擎,並且完全以對象爲導向。
如果你想要爲最終用戶創建「感覺像java」的東西,但是在底層使用OpenGL,我會先從LWJGL開始,然後再構建它。這是JMonkey引擎所做的。
所有這一切都假設你在3D中工作,如果你在2D中工作,那麼性能不太可能成爲問題。
所以要回答你的問題,如果一個完整的Java圖形解決方案是一個好主意: 它不會與圖形卡交談,所以你會依靠你的CPU來完成這項工作; 在2D中:這可能是好的,但速度會更慢,但速度比非常快仍然非常快。 在3D中:我懷疑你可以在任何現實場景下以實時速度工作。
*或directX,但您也會遇到同樣的問題
相關問題
- 1. 什麼是OpenCL最快的memset()替代品?
- 2. 快速替代object.size?
- 3. 快速替代`resize`?
- 4. 快速替代SortedMap.mapValues
- 5. 快速替代drawInRect
- 6. 快速替代CreateProcess
- 7. 更快的替代品.Distinct()
- 8. 是否有快速替代棄用`SKPaymentTransaction.transactionReceipt`?
- 9. Future.get()是Thread.join()的替代品嗎?
- 10. MongoDB是Memcached的更好替代品嗎?
- 11. Silverlight是activeX的替代品嗎?
- 12. 這是KProf的最佳替代品嗎?
- 13. Feature/Scenerio是Describe/It的替代品嗎?
- 14. WPF是WinForms的替代品嗎?
- 15. MPICH Hydra是MPD的替代品嗎?
- 16. MVVM是Expression Blend的替代品嗎?
- 17. angularJS是JSF的替代品嗎?
- 18. Kinesis Firehose是Kinesis Streams的替代品嗎?
- 19. OpenCL快速輕鬆數學
- 20. 快速替代doBy/summaryBy
- 21. 快速替代分割R
- 22. 快速替代Flash Builder
- 23. 快速替代到grep -f
- 24. DebugView的替代品嗎?
- 25. document.title的替代品嗎?
- 26. exec/eval的替代品嗎?
- 27. 混合DirectX和OpenGL
- 28. 瞭解DirectX和OpenGL
- 29. NewSQL是一個替代品嗎?
- 30. 替代和快速替換android中的findViewById