高性能矢量图形解决方案


12

我正在寻找可以在游戏中使用的高性能矢量图形库。

我正在考虑使用SVG可以制作的矢量图形。

目前,我将考虑任何语言(但必须在Windows上运行)。利用GPU硬件的解决方案将是很棒的。

提前致谢。


您有任何理由要使用矢量图形吗?
AttackingHobo 2010年

是的:我喜欢这种样式,它们的压缩效果比纹理更好,并且对于动画而言更灵活。
CiscoIPPhone

Answers:


7

如果Windows(Vista及更高版本)是您唯一的平台,则应考虑Direct2D,它可提供GPU加速的2D矢量图形渲染和软件后备。对于更多的x平台解决方案,请查看Cairo,我相信它具有GPU加速的光栅化器。


有趣的是,我以前从未听说过Direct2D。它似乎并未得到广泛使用-也许是因为它仅适用于Windows 7。
CiscoIPPhone

由于使用了Direct3D 10,因此它仅是Vista和Windows7。它是相当新的:)
boki 2010年

2
请注意,一些知名的游戏程序员认为Direct2D很糟糕-braid-game.com/news/?p=455(也链接到播客)和braid-game.com/news/?p=466

我认为Direct2D 的托管包装往往比本机库更易于使用。我读过的有关Direct2D的大多数批评都列举了一些示例,这些示例可以在Direct3D中相对容易地实现相同的目的。当然,绘制矩形是过大的选择,但它对于具有平凡的纹理和/或笔触的曲线和形状效果很好。此外,D2D并非主要针对游戏开发人员,而是为GDI提供了更丰富,更高性能的替代产品。但它与Direct3D的互操作性很好。
Mike Strobel,2010年

3

OpenVG是硬件加速矢量图形的标准。面向手持设备(例如Mali / PowerVR / Vivante)的GPU支持它。Qt和Cairo可以使用OpenVG作为渲染支持。有些软件库使用OpenGL硬件(MonkVG,AmanithVG GLE)或仅使用软件(AmanithVG SRE,ShivaVG,AlexVG)来实现OpenVG。


2

Scaleform GFx是一个商业中间件库,用于将Adobe Flash电影(优化的渲染,ActionScript等)集成到引擎中。

在过去,Scaleform GFx的代码库是GameSWF的代码库。GameSWF是开源的。

我计划在此答案中添加更多内容,但是当我回到它的答案时,其他答案中都提到了我想强调的大多数要点。

我想提到的与基于Flash的方法有关的另一件事是,Adobe已将源代码发布到他们的ActionScript虚拟机,该虚拟机现在位于Mozilla 的Tamarin项目中。


1

如果您使用的是Windows XP,或者想要在大多数版本的Windows上都可以使用的东西,则应该签出DirectDraw(即使现在有点老了)或GDI +,或者可以使用Flash,这对于矢量渲染来说似乎非常不错,并且跨平台。


DirectDraw已经过时了一段时间,据我所知,它不具备用于渲染基于矢量的图形的本机功能。我的回忆是,它完全依赖于纹理和斑点。我相信GDI +并没有得到加速,而GDI虽然得到了加速,但却相当原始。最好使用像Cairo这样的库,它支持多个渲染器,其中至少一个支持GPU加速渲染。Direct2D的可能是为Vista和7的最佳选择
迈克·斯特罗贝尔

不好,我以为GDI +加速了!如您所说,我想Direct2D将是最佳选择。
点点

1

到处都有关于如何将SVG图形应用于XNA游戏引擎的讨论。 这里是一个:http : //wam-games.com/2010/04/svg-in-xna/,这是此站点上的帖子:直接在XNA中渲染SVG艺术

据我了解,XNA通过Direct3D传递了几乎所有内容,因此所有这些都由GPU加速。基本上,您必须使用C#进行编程才能使用它(您可以使用其他语言,但是您必须对此加以破解。)使用XNA可以确保Windows,但也可以移植到XBox360和几个便携式平台。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.