gpt4 book ai didi

c++ - 可以使用 OpenGL 将实值三角形绘制到缓冲区中吗?

转载 作者:太空狗 更新时间:2023-10-29 23:40:01 24 4
gpt4 key购买 nike

我需要实现图像重建,其中涉及在表示图像像素的缓冲区中绘制三角形。这些三角形被分配了一些要填充的浮点值。如果绘制的三角形重叠,则重叠区域的值必须加在一起。

是否可以使用 OpenGL 来实现?我想利用这样一个事实,即光栅化三角形是一项可以在显卡上加速的基本图形任务。我已经有了这个算法的 cpu-only 实现,但它对我的目的来说不够快。这是由于需要绘制大量的三角形。

具体来说我的问题是:

  1. 我可以使用 openGL 绘制具有实数值的三角形吗? (或者我可以想出一个使用颜色等的技巧吗?)
  2. OpenGL 可以添加三角形重叠的值吗? (再一次,我可以处理 hack,比如颜色混合)
  3. 我能否将像素的实际值恢复为 float 组或类似数组以进行进一步处理?
  4. 我是否对在 OpenGL 中绘图 -> 使用 GPU 绘图 -> 可能执行速度更快的想法有误解?

此外,据我所知,我想在虚拟机上运行此代码,因此加速使用 OpenGL 比在 Cuda 之类的东西中滚动我自己的实现更可行。这是真的吗?

编辑:累积缓冲区是这里的一个选项吗?

最佳答案

  1. 如果 32 位 float 就足够了,那么答案似乎是肯定的:http://www.opengl.org/wiki/Image_Format#Required_formats
  2. 即使在旧的固定管道下,您也可以使用函数 GL_FUNC_ADD 的混合模式,尽管我确信片段着色器现在可以更轻松地做到这一点。
  3. glReadPixels() 将在绘制后将数据从缓冲区中取出。
  4. 有 OpenGL 的软件实现,但您可以在设置上下文时进行选择。使用 GPU 应该比 CPU 快得多。
  5. 不知道。我从未在 VM 上使用过 OpenGL 或 CUDA。我从来没有用过 CUDA。

关于c++ - 可以使用 OpenGL 将实值三角形绘制到缓冲区中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23918451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com