【问题标题】:Rendering a n-body simulation [closed]渲染 n 体模拟 [关闭]
【发布时间】:2014-06-22 09:04:16
【问题描述】:

我正在使用 openCL 来模拟 n 体问题。我得到的输出是粒子在 3 维空间 (x,y,z) 中的位置。我现在想做的是逐帧渲染它们,只是想知道我将如何去做。我正在使用 C++,以前没有任何图形经验。

如果你能指出我正确的方向,那就太棒了。

谢谢

【问题讨论】:

  • 把 C 换成 G. Tah dah!
  • 在发布此类内容之前,您可能需要 Google 教程或查看以前的问题。
  • 我正在考虑使用 ncurses 并只是做一个文本显示之类的......但我想做一些更好的事情。

标签: c++ graphics opencl simulation gpu


【解决方案1】:

有很多方法可以实现您的目标。最常见的是使用 OpenGL 或 Direct3D。两者都可以与 OpenCL 挂钩。我是 OpenGL 专家,所以我建议你使用 OpenGL,但如果你打算只针对基于 Windows 的系统,Direct3D 是一个非常好的 API。

花点时间搜索关键字OpenCL/OpenGL interopOpenCL/Direct3D interop,你会发现很多东西。

【讨论】:

    【解决方案2】:

    这是一个宽泛的问题,可能会结束,但一些起点可能是:

    • 使用openCL/openGL interoperability 直接呈现您的数据
    • 如果速度不是关键,并且您不介意将数据传输回主机,则可以使用 openGL 库(陡峭的学习曲线)或特定于 Windows 的 DirectX(硬)或 GDI+(更简单的基本图形功能)
    • 其他更简单的替代方案:sfml 或 openGL 包装器,如 OGLplus

    请注意,您没有描述您将如何呈现该数据或您的期望是什么。这使得问题无法正确回答。只是猜测是可能的。

    【讨论】:

    • 我正在考虑将每个单独的更新步骤渲染为高分辨率 png 图像,然后将其拼接在一起制作电影。
    • 那么你不需要速度,你也可以在主机上传输数据并使用上面的库之一进行绘图
    【解决方案3】:

    如果您只是在寻找要使用的图形库,我推荐使用 SFML。我现在实际上正在将它用于类似的项目,并且效果很好! http://www.sfml-dev.org/

    【讨论】:

    • sfml 的学习曲线有多陡?
    • sfml 的学习曲线非常浅,我发现它易于使用,并且在一个小时内完成了我的图形实现(这比我寻找其他库的时间要少)。他们有一个易于理解的教程部分,将带您了解他们网站上“资源”下的基础知识。
    • 谢谢,我想我现在试试 sfml。
    • 很好,不知道这个,不过看起来它不适用于 Qt。
    猜你喜欢
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2020-04-10
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多