1

我正在设计一个 C# 框架来使用Cairo制作基于矢量的游戏。目前我正在使用TaoMono.Cairo创建一个绘制到 SDL 表面的 Cairo 上下文,然后将该表面绘制到屏幕上。源代码可在此处获得。

起初我认为它工作得非常好,以不错的速度渲染大量内容......但后来我尝试以 1080p 全屏运行它,它突然变慢

我读了很多关于它的内容,在某处我看到有人说,也许使用 OpenGL 进行渲染会比使用 SDL 提高 2D 绘图的性能……是这样吗?值得吗?或者我还有其他选择吗?

在我看来,在屏幕上绘制一些形状是如此困难,这让我觉得很疯狂,尤其是看到开罗的其他地方看起来有多棒。

4

1 回答 1

1

我不特别了解 Cairo,特别是因为它是它的单声道变体,但是当使用Helix 3D(与 Tao 类似的 WPF 渲染工具包)开发一个看似简单的引擎来渲染网格集时,我注意到当我渲染我的样本和小网格效果很好,但是当我尝试以更大的分辨率渲染更大的区域时,性能表现不佳。

我认为这一切都归结为这样一个事实,即这些工具包非常适合您的日常渲染和小型项目,但是当您正在寻找开发游戏或即使在高分辨率下也应该表现良好的东西时,OpenGL 和DirectX 在他们身后是无与伦比的,而且他们几乎总是会胜过小鱼。

就我个人而言,当我转而使用 DirectX 时,在渲染与 Helix 3D 完全相同的一组网格时,我获得了近乎完美的性能。所以是的,使用更大的框架有一定的好处。这可能是值得的。

于 2013-07-25T21:33:45.607 回答