高性能OpenGL二维形状动画库

高性能OpenGL二维形状动画库,opengl,animation,layout,vbo,graph-visualization,Opengl,Animation,Layout,Vbo,Graph Visualization,我正在寻找一个高性能的库,它可以绘制大量(10个甚至100个)相对简单的向量形状(圆、圆弧或圆角矩形),用于二维图形布局的可视化 我想能够只传输动画开始和停止几何体,然后“产卵”一个插值动画的GPU 在每一帧,我想通过简单地更新一个全局插值参数(通常从0到1)来最小化从CPU到GPU的数据量 因为我想基于OpenGL,我相信顶点缓冲区对象(VBO)是我应该选择的 我选择的语言是C++11,我的平台是Ubuntu 12.10 能够将高质量的文本和形状分层是一大优势 您应该推荐哪些库/API 我相信

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

我想能够只传输动画开始和停止几何体,然后“产卵”一个插值动画的GPU

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

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

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

能够将高质量的文本和形状分层是一大优势

您应该推荐哪些库/API


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

如果你是OpenGL的初学者,你会遇到一些困难。这是完全可行的,但需要一些巧妙的手段。你需要

  • 实例
  • 顶点着色器中的曲线插值基于从包含动画控制点的“纹理”中获取的值,该控制点由每个实例的ID索引
    • 为了使曲线插值适用于更复杂的运动,您必须能够将曲线分割为段(或面片)并索引到这些段(或面片)
在处理实例之前,您至少应该知道如何使用OpenGL绘制简单的形状,以及如何编写顶点着色器。这并不难做到,但是第一次做通常会产生奇怪的结果,因为你错过了一些索引

您应该推荐哪些库/API

我建议首先学习所需的智能工具,这样使用这样的库不会以cargo cult编程结束

你需要

  • 线性代数
  • 多元微积分
  • 非线性插值
    • 多项式
    • 贝塞尔样条
  • 四元数(用于球面线性插值)

如果你是OpenGL的初学者,你会在路上遇到一些颠簸。这是完全可行的,但需要一些巧妙的手段。你需要

  • 实例
  • 顶点着色器中的曲线插值基于从包含动画控制点的“纹理”中获取的值,该控制点由每个实例的ID索引
    • 为了使曲线插值适用于更复杂的运动,您必须能够将曲线分割为段(或面片)并索引到这些段(或面片)
在处理实例之前,您至少应该知道如何使用OpenGL绘制简单的形状,以及如何编写顶点着色器。这并不难做到,但是第一次做通常会产生奇怪的结果,因为你错过了一些索引

您应该推荐哪些库/API

我建议首先学习所需的智能工具,这样使用这样的库不会以cargo cult编程结束

你需要

  • 线性代数
  • 多元微积分
  • 非线性插值
    • 多项式
    • 贝塞尔样条
  • 四元数(用于球面线性插值)

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

除此之外,如果您的目标是NVidia卡,您应该看一看。它基本上允许您直接在GPU上加载和渲染矢量形状,而无需三角测量等。缺点是此过程应使用固定管道(如果使用现代OpenGL,请将配置文件设置为兼容)。但其优点是易于使用且分辨率独立。

此处的固定管道是否意味着一旦对象位于GPU上,我就无法对其进行变换(移动或旋转)?如果否,这意味着什么?此处的固定管道是否意味着我无法变换(移动或旋转)一旦对象在GPU上,它将被删除?如果不是,它意味着什么?