I’m looking for a library on which to base a tool capable of rendering scientific visualizations based on potentially large (hundreds of thousands of rows) amounts of data in 3D.
My lab has used The Visualization Toolkit (www.vtk.org) to build such tools (but with much smaller datasets) in the past, but as we move up to larger amounts of data, we may require something lower-level (but not as far down as OpenGL) and more efficient and with greater flexibility. Panda3D seems promising as it looks like it’s well supported, efficient, and very flexible.
So my question is: would Panda3D be a good choice for rendering data-driven 3D visualizations?
Panda will certainly be useful, but you’ll likely have to do your own visibility algorithms, to reduce the visible dataset size down to something your graphics card can handle. Panda will make this easier for you, but it won’t do all the magic by itself.
Right, and that would be true for any graphics library. We’ll definitely be doing data aggregation and other such performance-oriented work; but it’ll still come down to working with large amounts of (mostly) point data.
Also, it is fairly easy to get Panda3D to render to an OpenGL context rather than a full window? I.e., I’d like to have a window with UI tools, and have a space inside that window in which to render the visualizations.
Thanks for the quick response, by the way!
Panda doesn’t want to share its OpenGL context, so no, that’s actually fairly difficult. On the other hand, if all you want is to share your window with UI tools, that usually doesn’t mean sharing the OpenGL context. It’s possible to render Panda’s OpenGL window on top of a wxWindow, for instance, or any other toolkit of your preference (though there’s some code out-of-the-box to support both wxWidgets and tk). Several people have posted examples of this sort of thing being done.
Sorry, I explained that wrong. I don’t want to share the context, but I do want to share the window; which sounds like it’s quite possible.
Thanks for the info!