在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