高性能OpenGL 2D形状动画库

时间:2013-01-14 00:03:12

标签: opengl animation layout vbo graph-visualization

我正在寻找一个高性能的库,它可以绘制大量(10个甚至100个数千个)相对简单的矢量形状(圆形,圆弧形或圆角矩形),用于2D图形布局的可视化。

我希望能够只传输动画开始和停止几何体,然后在GPU上“生成”插值动画。

在每个帧中,我想通过简单地更新通常从0到1的全局插值参数来最小化从CPU到GPU的数据量。

由于我想以OpenGL为基础,我相信顶点缓冲对象(VBO)是我应该选择的。

我选择的语言是C ++ 11,我的平台是Ubuntu 12.10。

能够将高质量的文本与形状结合起来是一个很大的优势。

您应该推荐哪些库/ API?

我相信oglplus是一个很好的候选人,但我不确定它是否对我的任务来说太低了。

2 个答案:

答案 0 :(得分:5)

如果你是OpenGL的初学者,你会在路上遇到一些障碍。这是完全可行的,但它需要一些先进的技巧。你需要

  • 实例化
  • 顶点着色器中的曲线插值基于您从保持动画控制点的“纹理”中获取的值,由每个实例的ID索引
    • 并且要使曲线插值适用于更复杂的运动,您必须能够将曲线分割成段(或补丁)并将其编入索引。

你至少应该知道如何使用OpenGL绘制简单的形状,以及如何在处理实例化之前编写顶点着色器。这并不难,但是第一次这样做通常会产生奇怪的结果,因为你错过了一些索引。

  

您应该推荐哪些库/ API?

我建议首先学习所需的智力工具,以便使用这样的图书馆不会以货物编程为目标。

你需要

  • 线性代数
  • 多元微积分
  • 非线性插值
    • 多项式
    • Bezíerspline
  • 四元数(用于球面线性插值)

答案 1 :(得分:1)

除了已经说过的内容之外,如果你的目标是NVidia卡,你应该看看NVidia path extension。它基本上允许你直接在GPU上加载和渲染矢量形状而不需要三角测量等。这里的缺点是你应该使用固定管道进行这个过程(如果使用现代OpenGL将配置文件设置为兼容性)。但优点是易于使用和分辨率独立。