I'm currently evaluating the possibilities to implement a navigable 3D scene which allows to render multiple 2D layers. To be a bit more precise, I would like to display multiple graphs in a 3D environment in order to pinpoint simularities and differences between those graphs. Considering the following screenshot, there would be two graphs (one black, one grey), which are equivalent - for different graphs, deviant nodes might, i.e, be highlighted in red.
I am working with Qt's Graphic View Framework and established an editable graph editor using QGraphicsScene
and several QGraphicsItem
s, which I separately from this project.
Qt provides OpenGL support, e.g., the QGLWidget
and I had a look at the provided examples. Given, that I have not worked with OpenGL (I did some work with Java3D though) I would love if some people can share their experience.
Several solutions came to my mind:
QGraphicsView
to a QPixmap
and display them in 3D, which would make the graphs navigatable but would prohibit any picking of elements etc.QGraphicsView
into an 3D representation. I guess this would be quite some work (espacially as I have not worked with OpenGL)QGraphicScene
s, the view, or just the QGraphicsItem
s in a QGLWidget
without many adaptions and still register the usual "mouseclickevents" etc.For a first implementation a plain navigable "viewer" which displayes multiple graphs in different layers would sufficient. But I would like to keep it extendable in order to add, e.g., picking, in the future.
The Qt3D project provides a class called QGraphicsEmbedScene which does exactly what you are asking for.