0

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

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

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

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

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

能够将高质量的文本与形状叠加在一起是一大优势。

您应该推荐哪些库/API?

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

4

2 回答 2

5

如果你是 OpenGL 的初学者,你会遇到一些困难。这是完全可行的,但它需要一些高级技巧。你需要

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

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

您应该推荐哪些库/API?

我建议首先学习所需的智能工具,这样使用这样的库就不会以货物崇拜编程而告终。

你需要

  • 线性代数
  • 多元微积分
  • 非线性插值
    • 多项式
    • 贝塞尔样条
  • 四元数(用于球面线性插值)
于 2013-01-14T00:09:57.500 回答
1

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

于 2013-01-14T07:45:59.967 回答