在CG(OpenGL)中使用OpenMP在動畫的情況下渲染3D多邊形圖像是否高效?使用openMP進行OpenGL 3D渲染
1
A
回答
1
試圖將渲染命令並行排隊到GPU沒有任何好處。渲染在GPU上已經並行發生,並行地發送命令只會在驅動程序中產生很多開銷,必須檢查命令流中的同步點並可能需要重新排序。
另外多線程OpenGL操作很難得到正確的結果。
0
試圖讓多個CPU線程同時訪問PCIe總線到圖形卡最有可能不會比單個線程更好,因爲只有一個線程將真正能夠一次訪問該IO總線。
相關問題
- 1. Java Opengl 3D渲染
- 2. 使用Blender和Python進行3D渲染
- 3. 使用OpenGL進行Qt渲染
- 4. Android:使用NDK進行OpenGL渲染
- 5. 使用webgl/opengl進行輪廓渲染
- 6. 渲染使用OpenGL
- 7. 使用OpenGL在Android智能手機上進行立體(3D)渲染?怎麼樣?
- 8. 如何在OpenGL中渲染3D文字?
- 9. OpenGL:渲染圖像3D點雲
- 10. 使用D3DPT_LINELIST渲染3D線
- 11. 3D渲染庫
- 12. 使用OpenGL渲染錯誤
- 13. 使用OpenGL渲染QImage
- 14. 如何使用OpenGL進行渲染但仍然使用SDL進行事件?
- 15. 使用Libgdx進行高效3D塊渲染
- 16. 使用Android中的metaio在openCV中進行3D對象渲染
- 17. 使用opengl渲染圍繞3d對象的框架
- 18. 如何在3D中使用opengl渲染海浪?
- 19. 3D渲染工具
- 20. 在Unity項目中使用OpenGL ES進行紋理渲染
- 21. 在Web服務器上使用OpenGL進行渲染
- 22. 如何加快使用OpenGL(ES)2進行渲染Android
- 23. 使用延遲渲染(OpenGL)進行陰影貼圖
- 24. 使用現代OpenGL進行2D渲染的正交投影
- 25. 使用OpenGL ES進行Windows Embedded XAML渲染
- 26. openGL渲染glulookat
- 27. OpenGL分層渲染只渲染零點
- 28. Android:雙重渲染使用OpenGL渲染到SurfaceTexture
- 29. OpenGL渲染可以用於3D顯示器嗎?
- 30. 使用C繪製3D渲染場景#
同意,我想說的是試圖允許多個CPU線程同時訪問PCIe總線到顯卡最有可能不會比單個線程更好,因爲只有一個線程將真正成爲能夠一次訪問該IO總線。 – trumpetlicks
@trumpetlicks:對PCIe來說並不是那麼糟糕,因爲PCIe在具有特定數據包長度的所謂「事務」中執行所有操作(實際上有一整套長度,但實際上它們很短)。多個線程可以交錯處理這些事務。所以這主要是一個帶寬問題。但是在任何寫得很好的OpenGL程序中,無論如何都要首先將幾何圖形上傳到GPU RAM,然後使用單個命令觸發整個渲染批處理。 – datenwolf
完全同意打包(並讓GPU執行幾何結構的並行處理等),但是PCIe總線的帶寬(+開銷)比即使是1個核心要慢得多(RAM比PCIe快得多並且它仍然可以在單個線程停頓到內存的時候停止運行),擁有多個內核(或HT中的線程)嘗試訪問該總線會在大多數時間內使大多數線程處於阻塞狀態。收集所有數據發送到GPU並嘗試以更少但更大的數據包發送(因此開銷更少)要好得多。 – trumpetlicks