There is an existing real-time, scientific visualization application that uses OpenCL and OpenGL to render complex 2D graphs. My goal is to incorporate this application into a 3D rendered scene. At the very minimum, the desired application would render a 3D scene with multiple planes that each contain a graph from the existing application. Ideally, the existing application's output could be rendered as each plane's texture. Right now I am trying to pick the best 3D framework for this task.
Some additional details:
- Data is streaming in fast, so i am trying to preserve the Zero-copy mechanism between OpenCL/GL that is in the original 2D application
- The 3D scene needs to look professional meaning:
- I'd prefer to use a game engine (IE: Unity, Unreal, etc)
- If I must write my own scene in OpenGL to accomplish this, then additional references are very welcome
Update 1 - Additional Technical Details
The existing 2D application does the following:
- Initially, the application maps an OpenGL Texture and VBO to an OpenCL kernel using clCreateFromGLTexture and clCreateFromGLBuffer for to render two graphs in real-time
- Data comes from a networked device and is passed to the OpenCL kernel. The OpenCL kernel performs a mathematic transform and then passes the result to the OpenGL texture and VBO.
- OpenGL takes the data in the VBO and renders a graph. At this point, both graphs are rendered to the screen.
My goal is to render the 2D graphs in a 3D scene in real-time. The easiest way to accomplish this appears to be by sharing the texture and VBO with the 3D scene.
- I am asking if anyone knows if a game engine (Unity, Unreal, CryEngine, etc.) can access an OpenCL shared VBO or texture. This would allow me to leverage the game engine's ability to render pretty scenes.
- If there is no game engine that allows this, then I will have to write the 3D scene in OpenGL. In this case, I was wondering if there were any existing OpenGL frameworks that can be leveraged to more easily make an eye appealing scene.