在GPU Metal和CPU核心图形之间呈现文本的区别

4

我正在考虑在低级别的金属GPU上将文本渲染为视频,或者只需继续使用核心图形在视频帧上绘制文本。

使用GPU似乎需要几个月的工作才能做到并且即使如此也只是简单的静态渲染。 如果我改用GPU,我会看到显著的性能提升吗? 我正在制作动画视频字幕渲染器应用程序,而在金属上的文本似乎很复杂。

我已经使用一些绘图运行了金属管道


你可以尝试的一件事是使用CALayer.drawsAsynchronously标志 - 这使得CoreGraphics使用GPU进行渲染,你可以检查是否加速了文本渲染。 - ldoogy
1个回答

4
如果我换成GPU,我能看到显著的性能提升吗?
这取决于很多因素,但无论如何都会有显著的改善。在我的程序中,我必须处理高分辨率视频(16K、60FPS),而没有本地文本渲染,我的程序根本无法工作。
使用GPU似乎需要几个月的工作才能做好,即使那样也只是简单的静态渲染。
这不需要那么长时间,网上有很多文章,以下是其中一些: 使用 Metal 渲染文本 使用 OpenGL 渲染文本 文本渲染库

“and without native text rendering, my program simply will not work.” 的意思是什么?谢谢。 - masaldana2
1
我正在进行16K分辨率的实时视频处理,如果我在CPU上将文本渲染到视频中,我的程序将会变得非常缓慢。不客气! - Hamid Yusifli
2
另一个需要考虑的问题是:如果您选择使用自己的字体图集等自行渲染文本,那么在支持不使用拉丁字母或根本不使用字母(如简体中文、日语等)的不同本地化时,可能会在未来遇到问题。 - Gary
很好。我在想是否可以完全替换CoreAnimation,使用单一的Metal渲染引擎来处理视频帧。不过,使用Core Text与Metal一起渲染也是可以的。 - Deepak Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接