Opengl VTK(可视化工具包)与OSG(OpenSceneGraph)的对比,其他?

Opengl VTK(可视化工具包)与OSG(OpenSceneGraph)的对比,其他?,opengl,graphics,vtk,openscenegraph,Opengl,Graphics,Vtk,Openscenegraph,有没有人有公平比较VTK和OpenSceneGraph的经验?我更熟悉VTK,但我很好奇是否有人已经广泛地尝试了这两种方法 我已经建立,5.6 vtk和2.9.9 osg,可以运行的例子。。。乍一看,OSG似乎更“粗糙”,但也许这没关系。我尤其担心在VTK中处理低级openGL;e、 我打赌glReadPixels在OSG上会表现得更好。评论 (或者我缺少一个好的“其他”吗?我知道还有其他的,但是请看一下OSG和VTK的巨大范围…VTK和OSG确实解决了不同的问题,所以你应该使用哪一个取决于你试

有没有人有公平比较VTK和OpenSceneGraph的经验?我更熟悉VTK,但我很好奇是否有人已经广泛地尝试了这两种方法

我已经建立,5.6 vtk和2.9.9 osg,可以运行的例子。。。乍一看,OSG似乎更“粗糙”,但也许这没关系。我尤其担心在VTK中处理低级openGL;e、 我打赌glReadPixels在OSG上会表现得更好。评论


(或者我缺少一个好的“其他”吗?我知道还有其他的,但是请看一下OSG和VTK的巨大范围…

VTK和OSG确实解决了不同的问题,所以你应该使用哪一个取决于你试图实现的目标!VTK主要用于科学可视化,因此更适合于数据可视化算法。它可能具有在场景图模式下工作的一些能力,但主要是这样,不同的数据集可以相互注册(覆盖)。它并不是真正用来表现任意场景的(尽管它可能被硬塞进其中)。您是对的,这并不是要您将OpenGL调用与VTK混合使用。同样,这是可以做到的,但并不一定容易

另一方面,OSG是SGI表演者的精神继承者,更多用于任意图形场景。它非常依赖于场景图隐喻,我鼓励您阅读(维基百科有一篇不错的文章)。我在这方面没有太多经验(更多地站在sci-vis这一边)


简而言之,如果您想查看体积数据的等值面、流场可视化或从科学数据衍生的其他可视化,请使用VTK。如果您试图实现某种虚拟世界,请使用OSG(或类似工具)。如果您正在尝试完成其他任务,请告知我们,也许有人可以根据您的需要推荐一个更合适的工具。

我真的处于灰色地带,因此我需要仔细决定。我确实需要一个“虚拟世界”,但它可以非常简单,我认为一些vtkPolyData建筑和一个大长方形的地面上粘贴纹理就可以了。我真正需要做的是读取渲染的图像数据,在图像提要的其他地方进行一些计算,然后可能会更新几何体。所以我真的需要一种有效地“截屏”的方法;e、 g.glReadPixels()如果VTK能做到这一点就太好了,我只是不知道该把这个调用放在哪里。我看到有一个“vtkOpenGLStateCache”,但我还是要将所有内容通过管道传输到OpenCV,所以我宁愿避免更多的VTK OO包装,而不是必要的。我明白了。首先,如果有vtkRenderWindow,可以调用vtkRenderWindow::Get[RGBA]PixelData,它将返回一个像素块,可以作为原始指针,也可以作为vtkArray类型。坦率地说,OSG和VTK听起来都有点过头了——您考虑过使用纯OpenGL吗?或者,根据您的编程语言,可能有一些轻量级的场景渲染库可以使用。如果我想要一个更复杂的场景和用户交互,它只是变得有点棘手。e、 vtkRenderWindowInteractor比glut回调要好得多!按下一个键后,它获得RGBA像素数据,然后说明a)RGBA/bgra顺序和b)opengl缓冲区的倒置。缓冲区被放入OpenCV图像,然后写入PNG图像。