gpt4 book ai didi

c++ - 实时 2D 渲染到系统内存

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:43:37 24 4
gpt4 key购买 nike

通过编写处理系统(非视频)内存中的图像/帧数据的视频过滤器,呈现 2D 图形,应该是跨平台的(至少 Windows、Linux 和 OSX) 并且工作非常快,我查看了不同的渲染器,比如 Cairo , AGG和许多其他项目。我不希望有 GPU 要求,所以到目前为止我的重点是软件渲染。

遗憾的是,Cairo 在复杂的路径和梯度上可能会变得非常慢,并且会通过微小的路径段产生难看的几何错误,AGG 也很慢,因为缺少优化,这需要很多用户的工作,其他项目只是呈现到窗口或性能对他们来说并不重要。 Blend2D让我感到好奇,但他需要时间才能变得成熟。

现在我问我:我是否应该只渲染到 OpenGL 帧缓冲区并通过几何库处理 2D 到 3D 的东西,接受挑战从头开始开发软件渲染器(通过 SIMD 加速,线程管道,等)还是我错过了适合我的图书馆?

即使是 1080p 或更大的图像,插入与 GPU 相关的所有图形总是值得的,因为如今与视频内存之间的廉价数据传输也是如此吗?

最佳答案

OpenCV 的替代品可能是 SDL .至少有一个教程和文档专门讨论 streaming video data to the hardware .当然,您必须在 glsl 中重写您的过滤器才能获得任何体面的加速。

也就是说,听起来您的问题可能更多地受益于 GPU 计算解决方案,例如 OpenCL 或 Cuda。在这种情况下,不涉及渲染,而是将数据发送到 GPU 内核,并在处理后取回。或者可以将其发送到 OpenGL/DirectX(视频内存可以很容易地作为纹理重复使用而不会损失性能)进行渲染。如果您不热衷于超越 OpenGL api,您也可以使用 compute-shader。像传统着色器一样工作,除了它在一个 channel 中计算,但有一些额外的约束和限制。

关于c++ - 实时 2D 渲染到系统内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31982437/

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